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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-07-01 14:53:54

  pietrucha - Użytkownik

pietrucha
Użytkownik
Zarejestrowany: 2010-06-30

kofiguracja iptables plus proxy

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:

Kod:

#!/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

 

#2  2010-07-02 16:44:53

  micromachine - Użytkownik

micromachine
Użytkownik
Zarejestrowany: 2010-02-04

Re: kofiguracja iptables plus proxy

Pokaz output z iptables -L

Offline

 

#3  2010-07-03 22:01:49

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: kofiguracja iptables plus proxy

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

 

#4  2010-07-06 10:57:52

  saiqard - Użytkownik

saiqard
Użytkownik
Skąd: Wałbrzych
Zarejestrowany: 2009-07-30

Re: kofiguracja iptables plus proxy

zainteresuj się jeszcze

Kod:

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:

Kod:

iptables -A FORWARD -o eth0 -j LOG --log-prefix "FWDoeth0:"

wynik będzie wyświetlał się w /var/log/syslog :)

Offline

 

#5  2010-07-06 11:20:03

  pietrucha - Użytkownik

pietrucha
Użytkownik
Zarejestrowany: 2010-06-30

Re: kofiguracja iptables plus proxy

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 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

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.009 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00015 SET CHARSET latin2
0.00015 SET NAMES latin2
0.00118 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='18.224.59.107' WHERE u.id=1
0.00085 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.224.59.107', 1732564251)
0.00046 SELECT * FROM punbb_online WHERE logged<1732563951
0.00066 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.00212 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.00111 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=17138
Total query time: 0.00673 s