Od rana siedzę i męczę maszynę próbując ją zmusić do przepuszczania ruchu przez siebie.
Firewall na niej wygląda tak:
Kod: Zaznacz cały
#!/bin/bash
IPTABLES='/usr/local/sbin/iptables'
# Interfejs od strony swiata
IFOUT="eth0"
# Interfejs od strony sieci
IFIN="eth1"
# Usuwam poprzednie reguly
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t nat -F
$IPTABLES -t filter -X
$IPTABLES -t filter -F
$IPTABLES -t mangle -X
$IPTABLES -t mangle -F
# Ustawienie domyslnej polityki
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Ochrona przed atakami typu Smurf
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Wlaczamy ochrone przed komunikacja ICMP error
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Wlacza logowanie dziwnych pakietow (spoofed. source routed. redirects)
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
# Nie akceptujemy datagramu IP z opcja "source route"
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
# Nie przyjmujemy pakietow ICMP redict, ktore moga zmienic nasza tablice routingu
echo "0" /proc/sys/net/ipv4/conf/all/accept_redirects
# Wszystkie karty nie beda przyjmowaly pakietow z sieici innych niz te z tablicy routingu
echo "1" /proc/sys/net/ipv4/conf/all/rp_filter
# Router
echo "1" /proc/sys/net/ipv4/ip_forward
# LOOPBACK
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# protokoly w trybie passive on
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# pingi
$IPTABLES -A INPUT -i $IFIN -p icmp -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -j ACCEPT
# SSH
$IPTABLES -A INPUT -i $IFOUT -p tcp -s xx.xx.xx.xx/32 --dport 22 -j ACCEPT
# Routing
$IPTABLES -t nat -A POSTROUTING -s 192.168.6.0/24 -d 0/0 -j MASQUERADE
# Klient
$IPTABLES -t nat -A FORWARD -i $IFIN -s 192.168.6.199/32 -j ACCEPT
Z komputera za tą maszyną polecenia ping idą do interfejsu eth1, do publicznego adresu eth0, ale dalej już nie, nazwy też nie są rozwiązywane.
Komputer na jakim testowałem dostaje adres z dhcp, który stoi na tej właśnie maszynie, z tego co widziałem, wszystko ładnie pobiera.
Próbowałem już najprostszą konfigurację:
Kod: Zaznacz cały
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P OUTPUT ACCEPT
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -A INPUT -t filter -i eth1 -s 192.168.6.199 -j ACCEPT
iptables -A FORWARD -t filter -i eth1 -s 192.168.6.199 -j ACCEPT
iptables -A INPUT -i eth1 -j DROP
iptables -A FORWARD -i eth1 -j DROP
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Porównywałem z innymi maszynami i nie widzę nigdzie dlaczego nie działa, jedyna różnica jest tu:
Kod: Zaznacz cały
# mii-tool
eth0: negotiated 100baseTx-FD, link ok
eth1: negotiated 100baseTx-FD flow-control, link ok
Może ktoś pomóc?
//edzia:
Błąd tkwi na pewno w firewallu, stworzyłem sobie skrypt za pomocą konfiguratora on-line i tamten działa.