[ROZW]Forwardowanie Portow IPTABLES

Serwery i sieci oparte na Slackware, wszelkiego rodzaju usługi, troubleshooting.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
szpuni
Użytkownik
Posty: 138
Rejestracja: 2006-08-16, 11:58

[ROZW]Forwardowanie Portow IPTABLES

Post autor: szpuni » 2009-04-29, 12:03

Witam.

Mam maly problem z serverem i forwardowaniem portow i firewalem.

Mam server w dwoma laczami gdzie jedno jest uzywane jako stale i jedno jako backupowe.
Gdzy server dziala na normalnym laczu strona www dziala normalnie na nim ale jak przelacze na backupowe to nie mam dostepu do strony z zewnatrz a z wewnatrz strona sie otwiera po adresie kanonicznym:
to kawalek tego skryptu:

Kod: Zaznacz cały

if (defined $num && $num == 0) {
	print "Switching to (main) Eircom line\n";
	print `ip route del default`;
	print `ip route add default via 10.0.0.1`;
	
	print `/usr/local/sbin/rules_init.sh`;
	print `/sbin/iptables -D POSTROUTING 1 -t nat`;
	print `/sbin/iptables -I POSTROUTING -t nat -s 192.168.0.0/16 -d ! 192.168.0.0/16 -j SNAT -m state --state NEW,ESTABLISHED --to-source $ip_eircomsubnet`;

	system("echo \\*\\*\\* We are using the MAIN line \\*\\*\\* > /tmp/linestatus");
}
elsif ($num == 1) {
	print "Switching to (backup) EsatBT line\n";
	print `ip route del default`;
	print `ip route add default via 192.168.2.1`;

	print `/usr/local/sbin/rules_init.sh`;
	print `/sbin/iptables -D POSTROUTING 1 -t nat`;
	print `/sbin/iptables -I POSTROUTING -t nat -s 192.168.0.0/16 -d ! 192.168.0.0/16 -j SNAT -m state --state NEW,ESTABLISHED --to-source $ip_btsubnet`;
	
	system("echo \\*\\*\\* We are using the BACKUP line \\*\\*\\* > /tmp/linestatus");
	
}
To skrypt perla gdy wywolam z opcja 1 nie moge dostac sie do servera wogole.
Domena jest utrzymywana przez ten server, nawet pingi z zewnatrz nie odpowiadaja.

Do tego jeszcze jest pare regol firewala:

Kod: Zaznacz cały

# setup dummy rules for bw monitoring purposes
/usr/local/sbin/rules_bwmon.sh

# setup hooks to send local computers into the bw-monitoring rules
$ipt -A FORWARD -s 192.168.1.0/24 -d \! 192.168.1.0/24 -j UPBWMON
$ipt -A FORWARD -d 192.168.1.0/24 -s \! 192.168.1.0/24 -j DOWNBWMON

#$ipt -A INPUT -s 10.0.0.4 -j UPBWMON
$ipt -A INPUT -d 10.0.0.2 -j DOWNBWMON
$ipt -A OUTPUT -s 10.0.0.2 -j UPBWMON
rules_bwmon.sh wyglada tak:

Kod: Zaznacz cały

$ipt -N UPBWMON 
$ipt -N DOWNBWMON 

$ipt -A UPBWMON -s 192.168.1.1 -j ACCEPT
$ipt -A UPBWMON -s 10.0.0.2 -j ACCEPT
$ipt -A UPBWMON -s 192.168.1.2 -j ACCEPT
$ipt -A UPBWMON -s 192.168.1.3 -j ACCEPT
$ipt -A DOWNBWMON -d 192.168.1.1 -j ACCEPT
$ipt -A DOWNBWMON -d 10.0.0.2 -j ACCEPT
$ipt -A DOWNBWMON -d 192.168.1.2 -j ACCEPT
$ipt -A DOWNBWMON -d 192.168.1.3 -j ACCEPT
Natowanie jest zrobione na jednym interfejsie, eth0 ma 5 adresow IP jeden z podsieci 10.0.0.0/24 drugi z podsieci 192.168.1.0/24 reszta jest nie istotna.

Bardzo nieciekawa konfigruacja jak dla mnie troche zbyt skonplikowana (nie ja to pisalem i robilem server przejety po poprzednim adminie)

Macie jakies pomysly dlaczego firewall mnie blokuje gdy probuje sie dostac do tego servera z zewnatrz?
Ostatnio zmieniony 2009-05-28, 13:21 przez szpuni, łącznie zmieniany 1 raz.
|-|/\(|< !/\/ :D

memus
Użytkownik
Posty: 245
Rejestracja: 2005-09-27, 17:17

Re: [ROZW]Forwardowanie Portow IPTABLES

Post autor: memus » 2009-04-29, 14:03

Zmniejsz maskę do 192.168.1.0/24 i przyjrzyj się tej regułce:

Kod: Zaznacz cały

iptables -I POSTROUTING -t nat -s 192.168.0.0/16 -d ! 192.168.0.0/16 -j SNAT -m state --state NEW,ESTABLISHED --to-source $ip_eircomsubnet
oraz tutaj:

Kod: Zaznacz cały

ip route add default via 192.168.2.1

Awatar użytkownika
szpuni
Użytkownik
Posty: 138
Rejestracja: 2006-08-16, 11:58

Re: [ROZW]Forwardowanie Portow IPTABLES

Post autor: szpuni » 2009-05-10, 20:47

Maska musi zostac taka jaka jest.
Problem w tym ze nie tylko siec 192.168.1.0 jest uzywana na masce 192.168.2.0 dzialaja telefony voip stad taka nie inna maska.

IPROUTE - co w tym dziwnego? ta regola mowi tylko ze trasa routowania ma uzywac bramy 192.168.2.1

Chodzi tutaj o przychodzace polaczenie nie wychodzace.

Jezeli uzywam dla przykladu bramy 2.1 wtedy nie moge sie polaczyc z zewnatrz do servera z drugiej bramy jaka jest 10.0.0.1.

Te dwa adresy pochodza z routerow polaczonych bezposrednio do tego servera wiec nie powinno miec to zadnego znaczenia.

Pozatym jest regola ktora ma akceptowac polaczenia dla 10.0.0.2 jakim jest ten wlasnie server

Czy czegos tutaj nie zauwazylem?
Moze mnie ktos oswiecic bo juz nie wiem
|-|/\(|< !/\/ :D

Awatar użytkownika
matryc
Użytkownik
Posty: 74
Rejestracja: 2005-10-30, 09:51
Lokalizacja: Dąbrowa Tarnowska

Re: [ROZW]Forwardowanie Portow IPTABLES

Post autor: matryc » 2009-05-27, 10:27

IMHO stwórz sobie stałe trasy do obu łącz, a za pomocą:

Kod: Zaznacz cały

ip rule ... 
pokierujesz pakiety w określone łącze w razie awarii.
NAT za pomocą iptables też może być stały, a ściślej:
- dodaj dwie tabele do pliku: etc/iproute2/rt_tables
- do tych tabel przenieś całą tablice routingu z tabeli main
- w iptables SNAT ustaw w zależności od interfejsu wyjściowego czyli:

Kod: Zaznacz cały

iptables -t nat -A POSTROUTING -o $ETH_LACZA_DOMYSLNEGO -j SNAT --to $ip_eircomsubnet
iptables -t nat -A POSTROUTING -o $ETH_LACZA_ZAPASOWEGO -j SNAT --to $ip_btsubnet
Ponieważ jak nic nie będzie wychodziło do INTERNETu przez łącze zapasowe ( o tym zdecydujesz za pomocą ip rule ) to pakiety zostaną wyłapane przez regułe pierwszą, a jeśli będzie szło przez łącze zapasowe to druga reguła wyłapie pakiety

Pomocny powinien być opis w Routing dla wielu łącz/do wielu dostawców usług
POZDRAWIAM

Awatar użytkownika
szpuni
Użytkownik
Posty: 138
Rejestracja: 2006-08-16, 11:58

Re: [ROZW]Forwardowanie Portow IPTABLES

Post autor: szpuni » 2009-05-28, 13:20

Dzieki,

Poczytam to sobie i zobaczymy co z tego wyjdzie;)

Pozdrawiam
|-|/\(|< !/\/ :D

ODPOWIEDZ