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/.
Strony: 1
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):
####### 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.
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.
#---------- 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?
Offline
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
Więc jeśli dobrze rozumuje:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
czy
iptables -A INPUT -p tcp --sport 80 -j ACCEPT
Offline
Raczej o:
iptables -P FORWARD ACCEPT
Wydaje mi się, że w przypadku łańcucha FORWARD ta linijka jest troche bez sensu:
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
Bo przecież pakiety o stanie NEW też muszą być forwardowane.
Offline
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)
Offline
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.
Offline
ale czemu ma sluzyc cos takiego ... bo jak dla mnie to totalnie bez sensu ...
Offline
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)
Offline
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)
Offline
Strony: 1
Time (s) | Query |
---|---|
0.00013 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00093 | 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.191.92.22' WHERE u.id=1 |
0.00071 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.92.22', 1731813301) |
0.00061 | SELECT * FROM punbb_online WHERE logged<1731813001 |
0.00076 | SELECT topic_id FROM punbb_posts WHERE id=128231 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=15009 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=15009 AND t.moved_to IS NULL |
0.00017 | SELECT search_for, replace_with FROM punbb_censoring |
0.00245 | 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.00088 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15009 |
Total query time: 0.00757 s |