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.[/quote]
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:Kod:
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT iptables -A FORWARD -p udp --dport 53 -j ACCEPTto 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żć serweraOstatnio edytowany przez pietrucha (2010-07-06 13:37:30)
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00091 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.90.236' WHERE u.id=1 |
0.00081 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.144.90.236', 1732573361) |
0.00039 | SELECT * FROM punbb_online WHERE logged<1732573061 |
0.00050 | SELECT topic_id FROM punbb_posts WHERE id=151238 |
0.00148 | SELECT id FROM punbb_posts WHERE topic_id=17138 ORDER BY posted |
0.00084 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=17138 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00119 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=17138 ORDER BY p.id LIMIT 0,25 |
0.00093 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17138 |
Total query time: 0.00726 s |