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  2006-04-21 22:48:18

  T.N. - Użytkownik

T.N.
Użytkownik
Zarejestrowany: 2005-09-01

iptables, kilka pytań

Witam.

Pomyślałem ostatnio, żeby jakoś zabezpieczyć mój system (chociaż zdania na ten temat są podzielone), poczytałem o iptables i zbudowałem firewalla. Komputer to w zasadzie typowa stacja robocza, klient pop3, smtp, www, ftp... + p2p (sieć e2k), zresztą wszystkie usługi widać w załączonym skrypcie. Stałe zewnętrzne IP, połączenie przez SDI, żadnych NAT-ów, maskarady, sieci lokalnych itp. Na świat otwarte są tylko dwa porty tcp/4662 i udp/4666 (jest jeszcze kilka tylko na localhost, ale to chyba tutaj nie ma znaczenia).

[b]firewall[/b]

Kod:

#!/bin/bash

case "$1" in
start)
  # Czyszczenie tablic IPtables
  iptables -F -t filter
  iptables -X -t filter

  # Domyślna polityka, odrzucamy wszystko
  iptables -P INPUT DROP
  iptables -P OUTPUT DROP

  # Przepuszczenie połączeń na interfejsie lokalnym
  iptables -A INPUT -s 127.0.0.1 -j ACCEPT
  iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT

  # www - pakiety przychodzące z www w naszym kierunku i wychodzące od nas w kierunku www
  iptables -A INPUT -p tcp --sport 80 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT

  # ftp
  iptables -A INPUT -p tcp --sport 20 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 20 -j ACCEPT
  iptables -A INPUT -p tcp --sport 21 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT

  # poczta (smtp)
  iptables -A INPUT -p tcp --sport 25 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT

  # poczta (pop3)
  iptables -A INPUT -p tcp --sport 110 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT

  # dns
  iptables -A INPUT -p udp --sport 53 -j ACCEPT
  iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

  # irc
  iptables -A INPUT -p tcp --sport 6667:6669 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 6667:6669 -j ACCEPT

  # news (nntp)
  iptables -A INPUT -p tcp --sport 119 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 119 -j ACCEPT

  # tor (wcześniej port 80 i teraz jeszcze te trzy)
  iptables -A INPUT -p tcp --sport 443 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
  iptables -A INPUT -p tcp --sport 9001 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 9001 -j ACCEPT
  iptables -A INPUT -p tcp --sport 9030 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 9030 -j ACCEPT

  # whois
  iptables -A INPUT -p tcp --sport 43 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT

  # p2p, sieć e2k
  iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 4662 -j ACCEPT
  iptables -A INPUT -p udp --dport 4666 -j ACCEPT
  iptables -A OUTPUT -p udp --sport 4666 -j ACCEPT
  iptables -A INPUT -p tcp --sport 4661 -j ACCEPT
  iptables -A OUTPUT -p tcp --dport 4661 -j ACCEPT

  # ping
  # można pingować innych, ale nas nikt nie spinguje

  iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT #odpowiedź na echo request
  iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT #żądanie echa

  iptables -A INPUT -p icmp --icmp-type network-unreachable -j ACCEPT #sieć nieosiągalna
  iptables -A INPUT -p icmp --icmp-type host-unreachable -j ACCEPT #host nieosiągalny
  iptables -A INPUT -p icmp --icmp-type port-unreachable -j ACCEPT #port nieosiągalny
  iptables -A INPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT #wymagana fragmentacja
  ;;
stop)
  iptables -F -t filter
  iptables -X -t filter
  iptables -P INPUT ACCEPT
  iptables -P OUTPUT ACCEPT
  ;;
restart)
  $0 stop
  $0 start
  ;;
esac

Jednak w pewnych sprawach mam wątpliwości, stąd kilka pytań:

1) Czy firewall w jakikolwiek sposób wpływa poziom bezpieczeństwa działających usług (dla których pakiekty dostały ACCEPT)?Bo na przykład:
# nmap -sS -p 4662 zewnętrzne_IP

Starting Nmap 4.00 ( http://www.insecure.org/nmap/ ) at 2006-04-21 21:59 CEST
sendto in send_ip_packet: sendto(4, packet, 40, 0, adres_IP, 16) => Operation not permitted
sendto in send_ip_packet: sendto(4, packet, 40, 0, adres_IP, 16) => Operation not permitted
Interesting ports on nazwa_hosta (adres_IP):
PORT     STATE    SERVICE
4662/tcp filtered unknown

Hmmm... wynik dokładnie taki sam jak dla każdego innego portu tcp. A przecież ten port jest otwarty i w iptables jest regułka, żeby te połączenia były przepuszczane (w przypadku 4666 udp jest podobnie - status open|filtered, nie wiem dlaczego open, ale dokładnie taki sam jak dla wszystkich innych (zamkniętych) portów udp) . Z drugiej strony skanowanie 4662 tcp na stronie http://www.pcflank.com w trybie SYN pokazuje mi ten port otwarty... Więc jak to jest: czy firewall ma w takiej sytuacji jakieś znaczenie? Pod Windowsem to właśnie tak jest, mam tam Outposta, w systemie otwarty jest NetBIOS, po jego włączeniu skanery na www (nmap pod Win 98 mi nie chodzi) pokazują dla portu NetBIOSa stealth albo blocked (czyli najlepszy możliwy status) pomimo tego, że jest on otwarty... Na jakiej zasadzie?

2) Co właściwie będzie odcinał taki firewall jak napisałem? Próby ataków na zamknięte porty (bo teraz skanery na www dla nich pokazują blocked albo stealth zamiast closed)??? Ale takie ataki to już chyba ekwilibrystyka (przynajmniej tak mi się zdaje...). Czy taki firewall w realnym stopniu zwiększy bezpieczeństwo komputera?

3) Gdzie mogę uzyskać informacje (numery IP, porty...) o pakietach, które próbowały dotrzeć do komputera, ale zostały przez firewall odrzucone, dostały DROP, najlepiej wraz z jakąś informacją co to mogło być (skanowanie portów itp...)

4) p2p (e2k, aktualnie MLDonkey). Tutaj mam najwięcej wątpliwości, bo z jednej strony słyszałem, że to mocno niebezpieczne, a z drugiej jednak muszę mieć przynajmniej te dwa porty otwarte, żeby dostać HighID. Czy, jeśli nie używa się w ogóle iptables, istnieje duże prawdopodobieństwo, że ktoś będzie mógł uzyskać w ten sposób dostęp do danego komputera (nie tylko do zasobów shared, ale np. do całego dysku z prawami użytkownika, a może nawet roota)? Czy tak zbudowany firewall coś zmienia w tej sytuacji? I co myślicie o tych regułkach na p2p? Chyba nie sią najlepsze, bo jednak znaczna część połączeń będzie odrzucana, jest jakiś lepszy sposób?

5) Czy Windowsowe firewalle działają na tej samej zasadzie co iptables? Bo za nie jednak trzeba płacić i to czasem dość sporo, a jak patrzę na te regułki to one jednak bardzo proste są i jakiejś wielkiej filozofii w tym nie ma... Dlaczego więc nie ma darmowego iptables pod Windows?

6) Jakie ewentualnie inne programy związane z bezpieczeństwem możecie polecić na taką maszynę jak opisałem. Słyszałem coś o snort, portsentry, honeypot i innych, ale nie wiem czy w ogóle może to być przydatne.

Offline

 

#2  2006-04-22 10:06:29

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: iptables, kilka pytań

Widze że kolega popadł w paranoie pt "bezpieczny komputer". Tez tak miałem ale trzeba troche sobie popuscic bo człowiek naprawde moze oszaleć. Co do Iptables czyli filtru pakietów. Jesteś właczony do internetu i stajesz sie jego częścią. Firewall na podstawie nagłówków protokołów podejmuje decyzje czy przepuścic pakiet czy tez nie. Filtrowanie pakietów słuzy do tego aby ograniczyc i uniemozliwic dostep do twojej maszyny. Główna zaleta jest elastyczność , którą mogłeś zauważyc projektujac swój firewall co nie daja takiej mozliwosci firewalle gotowe. Jeśli brakuje Tobie jakis funkcji proponuje przyjżeć sie  zbioru dodatków o nazwie Patch-o-matic ( http://www.netfilter.org/projects/patch-o-matic/pom-extra.html ) Co do pytania dlaczego nie ma w windows? Ponieważ w jądro nie maja wkompilowanego  modułu netfilter :) :D i takie tam rózne .... Informacje  o tym co sie działo mozesz otrzymac stosując w swoim iptables przekierowani do logów i tam czytac co jest. Ale lepszym rozwiązaniem  jest IDS czyli Intrusion Detection System - ang. system wykrywania włamań. Popularnym i dajacym duze możliwości jest snort ( http://www.snort.org/ ) .Portsentry jest opisany tu na dugu ( http://dug.net.pl/servery/portsentry.php ). Polecałbym bys sie przyjzał temu firewallowi Shorewall  ( http://www.shorewall.net/ ) zapoznaj sie tez z patchem grseciurity ( http://www.grsecurity.net/ ).
No to na tyle jak narazie bo mi śniadanko stygnie :);)
Pozdrawiam :)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)

Offline

 

#3  2006-04-22 10:19:59

  Lite-ON - Członek DUG

Lite-ON
Członek DUG
Zarejestrowany: 2006-03-07

Re: iptables, kilka pytań

włączę się do tematu. co sądzisz o takim firewall`u?
[url]http://cybek5.fm.interia.pl/firewall[/url]
Stacja robocza najwyżej z apache`m amule ktorrent lokalne (tylko dla mojego kompa) mysql oczywiścieoglądanie stron itp. mam sambe, kadu, oraz cups`a (drukraka u brata na win xp) telnet nie używam więc jest zahaszowany


[url]http://sourceland.xt.pl[/url]

Offline

 

#4  2006-04-22 10:33:03

  zlyZwierz - Moderator

zlyZwierz
Moderator
Zarejestrowany: 2005-02-18
Serwis

Re: iptables, kilka pytań

nie są potrzebne .. :)

Ja osobiście potrzebuję firewalla , zeby blokował i logował portskany i blokował złe hosty ..


[url=http://www.netfix.pro]www.netfix.pro[/url]

Offline

 

#5  2006-04-22 14:17:41

  T.N. - Użytkownik

T.N.
Użytkownik
Zarejestrowany: 2005-09-01

Re: iptables, kilka pytań

Informacje  o tym co sie działo mozesz otrzymac stosując w swoim iptables przekierowani do logów i tam czytac co jest. [/quote]

Jak można coś takiego zrobić?

Offline

 

#6  2006-04-22 16:33:56

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: iptables, kilka pytań

Przez opcje -j LOG --log-level i wybranie jednego z 7 poziomów (debug,info,notice,warning,err,crit,alert,emerg)  np.

Kod:

iptables -t filter -A FORWARD -s 192.168.0.0/255.255.255.0 -d 0/0 -j LOG --log-level debug

ale nie wiem czy o to ci chodziło, no i  bedziesz zbędnymi śmieciami zawalał sobie logi w syslogu. Możesz też wydac polecenie:

Kod:

watch -n 1 iptables -L -nv

tu zobaczysz obecny stan reguł i przechodzace pakiety przez firewalla. Jak chcesz  patrzec  na  pakiety jakie przechodza mozesz zainstalowac ethereal .Ale najlepiej zainteresuj sie Snortem, to bardzo ciekawe narzędzie.


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój [url=jarekw.eu]Blog[/url], a później [url=tanczymy.com]Tańczymy[/url] ;)

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

Informacje debugowania

Time (s) Query
0.00014 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00152 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.222.100.201' WHERE u.id=1
0.00084 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.222.100.201', 1738363220)
0.00087 SELECT * FROM punbb_online WHERE logged<1738362920
0.00130 DELETE FROM punbb_online WHERE ident='85.208.96.205'
0.00119 SELECT topic_id FROM punbb_posts WHERE id=26460
0.00024 SELECT id FROM punbb_posts WHERE topic_id=3362 ORDER BY posted
0.00103 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=3362 AND t.moved_to IS NULL
0.00012 SELECT search_for, replace_with FROM punbb_censoring
0.00160 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=3362 ORDER BY p.id LIMIT 0,25
0.00108 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=3362
Total query time: 0.00999 s