Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Szanowni forumowicze,
mam kłopot z konfiguracją iptables. Buszując po internecie znalazłem pewne rozwiązania, ale nie spełniają się one w moim przypadku.
Napisałem skrypt ustawiający iptables:
#!/bin/bash echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter ip_wan=10.0.0.2 ip_dns=10.0.0.9 wan=eth0 lan=eth1 ip_lan=10.0.1.0/24 echo "Usuwanie wszystkich reguł i czyszczenie tablic" iptables -F iptables -F -t nat iptables -F -t mangle iptables -X echo "Blokada polaczen przychodzacych, zostawiony ruch wychodzacy" iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #dopuszczamy polaczenia z sieci 127. iptables -A INPUT -s 127.0.0.1 -j ACCEPT iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT # #echo "Pelny dostep do Internetu dla wszystkich hostow" #iptables -A FORWARD -i $lan -o $wan -p all -j ACCEPT # #echo "Odblokowanie DNS" #----forward---- #iptables -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -p udp --dport 53 -j ACCEPT #---------------- echo "Przekierowanie portu 80 na 3128 - squid" iptables -I OUTPUT -o $wan -p tcp -s $ip_wan --dport 80 -j ACCEPT iptables -A INPUT -i $lan -p tcp --src $ip_lan --dport 3128 -j ACCEPT iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80 -j REDIRECT --to-port 3128 # echo "Zezwolenie na ruch na porcie 80 i 443, port 80 przekierowany jest na 3128" # iptables -A FORWARD -m physdev --physdev-in $lan -o $wan -p tcp -s $ip_lan --dport 443 -j ACCEPT iptables -A FORWARD -m physdev --physdev-in $lan -o $wan -p udp -s $ip_lan --dport 443 -j ACCEPT # echo "Zezwolenie na SMTP,POP3 POP3SSH - odblokownaie portow 25, 110, 465 i 995" # iptables -A FORWARD -p tcp --dport 25 -j ACCEPT iptables -A FORWARD -p tcp --dport 110 -j ACCEPT iptables -A FORWARD -p tcp --dport 465 -j ACCEPT iptables -A FORWARD -p tcp --dport 995 -j ACCEPT # echo "Zezwolenie na ftp" # iptables -A FORWARD -p tcp --dport 20:21 -j ACCEPT # #----postrouting---- #iptables -t nat -A POSTROUTING -o $wan -s $ip_lan -j SNAT --to $ip_wan #
Efekt jest taki, że squid działa i rejestruje strony, natomiast gdy używam klienta pocztowego na stacji roboczej
w sieci 10.0.1.0/24 to przy próbie pobrania poczty pojawia się komunikat, że nie może znaleźć serwera.
Wygląda na to, że porty do obsługi pop i smtp na proxy są przyblokowane mimo że zawarłem regułkę odblokowujacą
prosiłbym o jakąś podpowiedź gdzie jest błąd?
Ostatnio edytowany przez pietrucha (2010-07-01 15:55:40)
Offline
Pokaz output z iptables -L
Offline
Wszystkie usługi typu tcp można "przetestować" za pomocą telnet.
jeżeli reguły są poprawne - musi zostać nawiązane połączenie, a jeżeli połączenie jest nawiązane problemu szukasz w innym miejscu.
Dla mnie komunikat "nie może znaleźć serwera" oznacza błąd rozwiązania nazwy - DNS
Jeszcze drobna uwaga odnośnie reguł - nie wiem czy to całość - jednak jaki ma sens akceptowanie jakichkolwiek pakietów w łańcuchu OUTPUT gdy polityka jest na ACCEPT w sytuacji gdy nie następują po nich reguły w które mogą wpaść :)?
Ostatnio edytowany przez bobycob (2010-07-03 22:05:04)
Offline
zainteresuj się jeszcze
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
natomiast do przeglądania pakietów odrzuconych przez firewall'a:
iptables -A FORWARD -o eth0 -j LOG --log-prefix "FWDoeth0:"
wynik będzie wyświetlał się w /var/log/syslog :)
Offline
Wszystkie usługi typu tcp można "przetestować" za pomocą telnet.
jeżeli reguły są poprawne - musi zostać nawiązane połączenie, a jeżeli połączenie jest nawiązane problemu szukasz w innym miejscu.
Dziękuję za podpowiedź. Sprawdziłem telnetem połączenia.
Serwer proxy ma dwa interfejsy sieciowe eth0 - internet, eth1 - wewnętrzny lan.
Można się z nim połączyć telnetem na następujące porty: 21, 25, 110, 80 i 3128.
Natomiast nie ma połączenia na porty 53, 995 i 465.
To dzieje się zarówno po stronie eth0 jak i eth1
Do celów testowych zrobiłem taką sieć:
z Internetem jest połączenie przez router DSL na wyjściu routera jest sieć 10.0.0.0/24, w której jest DNS i serwer proxy
połączony interfejsem eth0 do interfejsu eth1 poprzez switch podłączony jest jeden komp (sieć 10.0.1.0/24) z DNS-em w sieci
10.0.0.0/24
Jest to cała konfiguracja iptables.
jeśli zahaszuję następujące linijki kodu:
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -p udp --dport 53 -j ACCEPT
to mam dostęp do internetu - mogę przeglądać strony www a nie mogę korzystać z klienta pocztowego
(OutLook Express) - przy próbie połączenia się z serwerem (jest serwer pocztowy tpsa) daje
komunikat, że nie można odnaleźć hosta.
Jeśli z kolei w/w linijki nie będą zahaszowane to wyświetla się strona Squida z komunikatem, że nie można znależć serwera
Ostatnio edytowany przez pietrucha (2010-07-06 13:37:30)
Offline