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/.
Temat wyłącznie do sprawdzenia, tzn guglałem sporo o iptables i skleiłem kilka regułek no i chciałbym aby osoba bardziej obeznana wypowiedziała się czy to ma sens i działa :)
W teorii ma być zablokowane wszystko poza www czyli port 80 wejscie wyjscie, ssh (57185) wejscie wyjscie, skleiłem to na podstawie przykładu z http://zsk.wsti.pl/publikacje/iptables_przystepnie.htm
# Generated by iptables-save v1.4.8 on Mon Feb 13 15:30:05 2012 *mangle :PREROUTING ACCEPT [6028063:9003319180] :INPUT ACCEPT [6028063:9003319180] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [3184474:174161428] :POSTROUTING ACCEPT [3184474:174161428] COMMIT # Completed on Mon Feb 13 15:30:05 2012 # Generated by iptables-save v1.4.8 on Mon Feb 13 15:30:05 2012 *filter :INPUT DROP [2:208] :FORWARD DROP [0:0] :OUTPUT ACCEPT [216:27566] -A INPUT -p tcp -m tcp --dport 57185 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --sport 21 -j ACCEPT -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT -A INPUT -p tcp -m tcp --sport 8080 -j ACCEPT -A INPUT -p tcp -m tcp --sport 57185 -j ACCEPT -A INPUT -p udp -m udp --sport 53 -j ACCEPT -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT COMMIT
iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- anywhere anywhere tcp dpt:57185 ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT tcp -- anywhere anywhere tcp spt:ftp ACCEPT tcp -- anywhere anywhere tcp spt:www ACCEPT tcp -- anywhere anywhere tcp spt:http-alt ACCEPT tcp -- anywhere anywhere tcp spt:57185 ACCEPT udp -- anywhere anywhere udp spt:domain ACCEPT tcp -- anywhere anywhere tcp spt:mysql Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Bedzie to działać? Poprawić coś? :>
Offline
Nie czaję, po co te reguly z portami źródłowymi, do takich polączeń jest moduł state, albo pozwolenie na połączenia wychodzące poszczególnym użytkownikom czy globalnie dla całego systemu.
np te regułki:
-A INPUT -p udp -m udp --sport 53 -j ACCEPT -A INPUT -p tcp -m tcp --sport 3306 -j ACCEPT
Co one w ogóle robią? i skąd się wzięły?
Co do otwierania portów na dostęp z internetu, to warto by się zastanowić nad limitem połączeń i zabezpieczeniem przed DOS/DDOS.
Tu masz dosć prosty przykład:
http://forum.dug.net.pl/viewtopic.php?pid=191895#p191895
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2012-02-14 15:28:01)
Offline
Wzięły sie one z przykladu ktory podlinkowalem, poczytam teraz co ty zapodales :)
edit:
coz brak modulu state uniemozliwia mi wykorzystywanie niektorych regul, np iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT, da sie to jakos obejsc?
2 sprawa na chwile obecna ma to byc prosty zestaw, rozbudowa potem, gdy opanuje podstawe czyli: zamkniecie wszystkiego i otwarcie tylko www, ssh, irc
-A INPUT -i lo -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - do zmiany bo nie dziala? -A OUTPUT -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT - www -A INPUT -p tcp --dport tu port ssh -j ACCEPT - ssh -A INPUT -p tcp --dport 6667 -j ACCEPT - irc -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT - ping reszte wywalic -A INPUT -j REJECT -A FORWARD -j REJECT
takie cos zadziała? Szczerze im wiecej czytam poradnikow tym wiekszy metlik mam w glowie :)
Ostatnio edytowany przez Pakos (2012-02-14 21:16:35)
Offline
trochę pomęczyłem temat, kernel już z brakującymi modułami, wygląda to tak:
Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere multiport dports www,domain,https,57185,ircd,9091,51413 state NEW ACCEPT udp -- anywhere anywhere multiport dports www,domain,https,57185,6667,9091,51413 state NEW ACCEPT icmp -- anywhere anywhere icmp echo-request REJECT tcp -- anywhere anywhere reject-with tcp-reset REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere multiport sports www,domain,https,57185,ircd,9091,51413 state NEW ACCEPT udp -- anywhere anywhere multiport sports www,domain,https,57185,6667,9091,51413 state NEW ACCEPT icmp -- anywhere anywhere icmp echo-request
sprawdzałem nmapem, porty pozamykane, poza tymi co podałem oczywiście (www,dns, https, itd), jedynie 6667 (irc) ciągle jest zamknięty, nie rozumiem czemu bo reguła dobra - otworzyła inne porty. Jak to ugryźć bo bez tego z irc się łączyć nie mogę :|
Offline
chyba nie rozumiem... czemu sobie nie ustawisz polityki na drop i nie dasz allow na te 2 porty?
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00097 | 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.15.214.185' WHERE u.id=1 |
0.00065 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.15.214.185', 1732523794) |
0.00037 | SELECT * FROM punbb_online WHERE logged<1732523494 |
0.00041 | SELECT topic_id FROM punbb_posts WHERE id=195745 |
0.00098 | SELECT id FROM punbb_posts WHERE topic_id=20666 ORDER BY posted |
0.00076 | 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=20666 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00076 | 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=20666 ORDER BY p.id LIMIT 0,25 |
0.00085 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=20666 |
Total query time: 0.00596 s |