Strona 1 z 1

Ruter i problemy z przekierowaniem

: 19 kwietnia 2010, 15:19
autor: LordRuthwen
Witam.
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
Niektóre tablice jeszcze nie są wykorzystane, bo mają zostać później, najpierw chciałem sprawdzić czy działa, no i nie działa.

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
Ale też nic.
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
A dokładniej flow-control, gdzie indziej tego nie mam.

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.

: 19 kwietnia 2010, 22:20
autor: mariaczi
Przez firewalla musisz jeszcze przepuścić co nieco z flagą 'NEW' aby połączenie mogło zostać zestawione. Dopiero potem jest ESTABLISHED/RELATED.

Edycja:
Tak na marginesie, najprostsza konfiguracja to włączenie tylko samego NAT-a.