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  2009-09-16 12:52:43

  nox - Użytkownik

nox
Użytkownik
Skąd: Lublin
Zarejestrowany: 2008-03-19
Serwis

Iptables - brak internetu na komputerach w sieci

Próbuję pisać samemu firewall, na zasadzie - blokuje wszystko, wpuszczam tylko konkretne usługi. Problem jest taki, że przy tej konfiguracji (Domyślna polityka łańcuchów na DROP):

Kod:

#######         NET FORWARD     ####### 
echo "1" > /proc/sys/net/ipv4/ip_forward                        # KERNEL NET FORWARD 

#######         SECURITY        ####### 
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts       # ICMP ECHO REQUEST @ BROADCAST ignore 
echo "1" > /proc/sys/net/ipv4/tcp_syncookies                    # SYN FLOOD refuse 
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route      # SOURCE ROUTED PACKETS refuse 
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects 
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter                # SOURCE VALIDATION by REVERSED PATH 

#######  RULES CHAINS FLUSHING  ####### 
iptables -F                                                     # STANDARD CHAINS 
iptables -t nat -F 
iptables -t mangle -F 

#######  RULES CHAINS GENERATE  ####### 
iptables -P INPUT DROP                                                # STANDARD CHAINS POLICY 
iptables -P OUTPUT DROP 
iptables -P FORWARD DROP 

######## ESTABLISHED CONNECTIONS KEEP ####### 
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 

#######  ALLOWING PROTCOLS      ####### 
#---------- WWW ----------# 
iptables -A INPUT -p tcp --sport 80 -j ACCEPT                   # HTTP:80 
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT 
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT 
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT 
iptables -A INPUT -p tcp --sport 443 -j ACCEPT                  # HTTPS:443 
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT 
#---------- SSH ----------# 
iptables -A INPUT -p tcp -i eth0 --dport 22 -j DROP             # WAN SSH 
iptables -A INPUT -p tcp -i eth1 --dport 22 -j ACCEPT           # LAN SSH 
#---------- DNS ----------# 
iptables -A INPUT -p udp --sport 53 -j ACCEPT                   # DNS ALLOW 
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT 
iptables -A FORWARD -p udp --sport 53 -j ACCEPT 
iptables -A FORWARD -p udp --dport 53 -j ACCEPT 
#------ LO Interface -----# 
iptables -A INPUT -i lo -j ACCEPT                               # LO ALLOW 
iptables -A OUTPUT -o lo -j ACCEPT 

#######     NETWORK ROUTING     ####### 
iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE                  # LAN MASQUARADE 
iptables -A FORWARD -s 192.168.3.0/24 -j ACCEPT

nie działają strony WWW na komputerach w sieci wewnętrznej.

Kod:

nox-debian:~# iptables -L -v 
Chain INPUT (policy DROP 33 packets, 2931 bytes) 
 pkts bytes target     prot opt in     out     source               destination 
  119 25566 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:www 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:https 
    0     0 DROP       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  eth1   any     anywhere             anywhere            tcp dpt:ssh 
    1    61 ACCEPT     udp  --  any    any     anywhere             anywhere            udp spt:domain 
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere 

Chain FORWARD (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination 
   15  3138 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    52 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp spt:www 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp spt:domain 
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     all  --  any    any     localnet/24          anywhere 

Chain OUTPUT (policy DROP 0 packets, 0 bytes) 
 pkts bytes target     prot opt in     out     source               destination 
  126 25733 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    2   120 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:www 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https 
    3   194 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere

Nie bardzo mogę jakoś dojść przyczyny błędu. Prosiłbym o pomoc.

Kod:

#---------- WWW ----------# 
iptables -A INPUT -p tcp --sport 80 -j ACCEPT                   # HTTP:80 
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT 
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT 
iptables -A FORWARD -p tcp --sport 80 -j ACCEPT 
iptables -A INPUT -p tcp --sport 443 -j ACCEPT                  # HTTPS:443 
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

Czy FORWARD jest tutaj potrzebne? Czy nie?


[url=http://www.speedway.lublin.pl]http://speedway.lublin.pl[/url] || [url=http://xeen.wordpress.com]http://xeen.wordpress.com[/url] || [url=http://forum.unreal.pl]http://forum.unreal.pll[/url] || [url=http://carbonplast.eu]http://carbonplast.eu[/url]

Offline

 

#2  2009-09-16 13:55:26

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Iptables - brak internetu na komputerach w sieci

Nic dziwnego jak do www można się łączyć tylko z portu 80 na port 80. A przecież przeglądarki łączą się z różnych adresów. Lepiej nie filtruj łańcucha forward, właściwie po co? Niech ludzie w sieci stawiają sobie firewalle jak chcą.

Offline

 

#3  2009-09-16 14:07:55

  nox - Użytkownik

nox
Użytkownik
Skąd: Lublin
Zarejestrowany: 2008-03-19
Serwis

Re: Iptables - brak internetu na komputerach w sieci

Więc jeśli dobrze rozumuje:

Kod:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

czy

Kod:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

[url=http://www.speedway.lublin.pl]http://speedway.lublin.pl[/url] || [url=http://xeen.wordpress.com]http://xeen.wordpress.com[/url] || [url=http://forum.unreal.pl]http://forum.unreal.pll[/url] || [url=http://carbonplast.eu]http://carbonplast.eu[/url]

Offline

 

#4  2009-09-16 14:59:35

  kamikaze - Administrator

kamikaze
Administrator
Zarejestrowany: 2004-04-16

Re: Iptables - brak internetu na komputerach w sieci

Raczej o:

Kod:

iptables -P FORWARD ACCEPT

Wydaje mi się, że w przypadku łańcucha FORWARD ta linijka jest troche bez sensu:

Kod:

iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED

Bo przecież pakiety o stanie NEW też muszą być forwardowane.

Offline

 

#5  2009-09-16 18:16:21

  nox - Użytkownik

nox
Użytkownik
Skąd: Lublin
Zarejestrowany: 2008-03-19
Serwis

Re: Iptables - brak internetu na komputerach w sieci

Według poradnika BiExi: http://dug.net.pl/tekst/31/udostepnienie_polaczenia_internetowego_(masq)/
kod jest poprawny, ale przy polityce ACCEPT, wiec wychodzi na toże musze coś wiecej dodac do mojego firewalla? tylko mniej wiecej co dokładnie?

Ponadto, potrzebuje zrobić dwie rzeczy, które na chwile obecną są dla mnie priorytetem:
Jestem użytkownikiem sieci WiFi, gdzie klienci mają adresy ip zewnętrzne, i przy polityce DROP potrzybuje:

192.168.3.0/24 [komputery za moim serwerem] ==> 87.204.232.82 [moj serwer] ==> 87.204.232.xx [adres bramy mojej sieci]
-potrzebuje dostep do ssh na konkretnym porcie, bo na chwile obecna nie moge sie dostać na serwer w sieci, bowiem dostaje Connection Refused. bez znaczenia pczy polityka ACCEPT czy DROP

192.168.3.0/24 [komputery za moim serwerem] ==> 87.204.232.82 [moj serwer] ==> 87.204.232.xx [adres bramy mojej sieci] ==> 192.168.xx.xx [adres urządzen w sieci]
do nich także potrzebuje urzadzen. bylbym bardzo wdzieczny za odpowiedz jak to zrobic, najlepiej przy polityce DROP i

Ostatnio edytowany przez nox (2009-09-16 23:19:19)


[url=http://www.speedway.lublin.pl]http://speedway.lublin.pl[/url] || [url=http://xeen.wordpress.com]http://xeen.wordpress.com[/url] || [url=http://forum.unreal.pl]http://forum.unreal.pll[/url] || [url=http://carbonplast.eu]http://carbonplast.eu[/url]

Offline

 

#6  2009-10-31 13:26:06

  nox - Użytkownik

nox
Użytkownik
Skąd: Lublin
Zarejestrowany: 2008-03-19
Serwis

Re: Iptables - brak internetu na komputerach w sieci

WItam. Zbudowalem sobie Firewall, bardzo sztywny, czyli przepuscilem tylko kilka / kilkanascie portów poprzez łańcuch forward. Troche ego jest i zastanawia msie, czy jest możliwośc, a jezeli jest to jak, rozpoznawania jaki port potrzebny jest dla danej uslugi i zeby go sam otwierał.

Bo na przykład poczta.o2.pl uzywa portu SMTP 587. I czy da sie jakos zrobić, zeby KLIENT poczty -> router iptables ( dostaje zapytanie z tym prtem, i automatycznie otwiera tyko ten port) -< internet.

bo w tym sammym czasie wszystkie porty sa zamkniete, i otiweraly by sie tylko wtedy, kiedy z sieci lan dostal by zapytanie z tym portem.


[url=http://www.speedway.lublin.pl]http://speedway.lublin.pl[/url] || [url=http://xeen.wordpress.com]http://xeen.wordpress.com[/url] || [url=http://forum.unreal.pl]http://forum.unreal.pll[/url] || [url=http://carbonplast.eu]http://carbonplast.eu[/url]

Offline

 

#7  2009-10-31 18:27:02

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Iptables - brak internetu na komputerach w sieci

ale czemu ma sluzyc cos takiego ... bo jak dla mnie to totalnie bez sensu ...


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

#8  2009-10-31 22:58:41

  nox - Użytkownik

nox
Użytkownik
Skąd: Lublin
Zarejestrowany: 2008-03-19
Serwis

Re: Iptables - brak internetu na komputerach w sieci

no na przyklad SSH nie jest jest zawsze na 22 porcie, wiec jesli iptables rozpoznalo by ze jest to pakeit SSH na port 222 to żeby go tez puściło. i żeby smtp puszczało na przykłąd na 25 i na 587 i jeszcze na porcie google. o to mi tylko chodzi.

domyslam sie ze bedzie potrzebny mi jakie marker pakietow, typu layer7 chyba?

Ostatnio edytowany przez nox (2009-10-31 23:00:21)


[url=http://www.speedway.lublin.pl]http://speedway.lublin.pl[/url] || [url=http://xeen.wordpress.com]http://xeen.wordpress.com[/url] || [url=http://forum.unreal.pl]http://forum.unreal.pll[/url] || [url=http://carbonplast.eu]http://carbonplast.eu[/url]

Offline

 

#9  2009-11-03 23:06:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Iptables - brak internetu na komputerach w sieci

Kod:

iptables -A INPUT -p tcp --sport 80 -j ACCEPT

- tu masz błąd.

Programy usera - przeglądarki internetowe, klienty ftp. komunikatory, ....itp łączą się z portów żródłowych innych niż demony - i to z wysokiego zakresu - np. w WinXP z portów powyżej portu 1024, w moim Ubuntu w zakresie około 15000 - 63000 - wybierane losowo.

W każdym systemie porty 0-1024 są zastrzeżone dla roota, programy usera korzystają z zakresu powyżej 1024 - w każdym systemie operacyjnym jest to trochę inaczej rozwiązane - zakres portów -ale zasada jest wspólna.

Pozdrawiam

Ostatnio edytowany przez Jacekalex (2009-11-03 23:07:37)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

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, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00134 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.137.213.98' WHERE u.id=1
0.00087 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.137.213.98', 1731813555)
0.00047 SELECT * FROM punbb_online WHERE logged<1731813255
0.00076 DELETE FROM punbb_online WHERE ident='57.141.0.6'
0.00048 SELECT topic_id FROM punbb_posts WHERE id=128195
0.00007 SELECT id FROM punbb_posts WHERE topic_id=15009 ORDER BY posted
0.00053 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=15009 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00103 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=15009 ORDER BY p.id LIMIT 0,25
0.00130 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15009
Total query time: 0.00703 s