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-09-26 18:03:40

  Radek - Użytkownik

Radek
Użytkownik
Skąd: Poniatowa
Zarejestrowany: 2006-04-02

Regułki na serwer WWW

Ostatnio postawiłem sobie w szkole serwer, więc napisałem prostego firewalla:

Kod:

#!/bin/sh
case "$1" in
   start)
   ipt="/sbin/iptables"

   /bin/echo "Uruchamiam Firewalla."
   # Kasowanie reguł
   $ipt -F
   $ipt -X

   # Domyślna polityka - dropujemy wszystko
   $ipt -P INPUT DROP
   $ipt -P OUTPUT DROP
   $ipt -P FORWARD DROP

   # Puszczenie lo
   $ipt -A INPUT -i lo -j ACCEPT
   $ipt -A OUTPUT -o lo -j ACCEPT

   # WWW - pakiety tylko z i do naszego serwera www
   $ipt -A INPUT -p tcp --dport www -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport www -j ACCEPT

   # FTP - pozwalamy na łączenie się z serwerami ftp oraz na lokalny ftpd
   $ipt -A INPUT -p tcp --sport ftp-data -j ACCEPT
   $ipt -A OUTPUT -p tcp --dport ftp-data -j ACCEPT
   $ipt -A INPUT -p tcp --sport ftp -j ACCEPT
   $ipt -A OUTPUT -p tcp --dport ftp -j ACCEPT

   $ipt -A INPUT -p tcp --dport ftp-data -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport ftp-data -j ACCEPT
   $ipt -A INPUT -p tcp --dport ftp -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport ftp -j ACCEPT

   # SSH
   $ipt -A INPUT -p tcp --dport ssh -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport ssh -j ACCEPT

   # DNS (nie lokalny)
   $ipt -A INPUT -p udp --sport domain -j ACCEPT
   $ipt -A OUTPUT -p udp --dport domain -j ACCEPT

   # IRC
   $ipt -A INPUT -p tcp --sport 6667:6669 -j ACCEPT
   $ipt -A OUTPUT -p tcp --dport 6667:6669 -j ACCEPT
   ;;
   stop)
   /bin/echo "Zatrzymuję Firewalla."
   # Wyłączenie firewalla
   /sbin/iptables -F
   /sbin/iptables -X
   /sbin/iptables -P INPUT ACCEPT
   /sbin/iptables -P OUTPUT ACCEPT
   ;;
   *)
   /bin/echo "Użycie: /etc/init.d/firewall {start|stop}"
   exit 1
   ;;
esac
exit 0

I mam odnośnie niego kilka pytań:
1) Tak ogólnie to dobrze jest napisany? Co polecacie zmienić?
2) Chociaż teoretycznie odblokowałem ftp, to jednak nie da się połączyć z ftpd serwera, ani nie mogę będąc zalogowany na serwerze połączyć się z innymi serwerami ftp (np. repozytoriami). Dlaczego tak się dzieje?
3) Te regułki o blokowaniu ssh po iluśtam nieudanych próbach (te z FAQ) mam po prostu dopisać do tego skryptu, czy zamienić regułki ssh, które napisałem?
4) Jakie dodatkowe oprogramowanie polecacie do zabezpiecznia serwera?


Znany również jako Jabber ;).

Offline

 

#2  2006-09-26 22:24:24

  Radek - Użytkownik

Radek
Użytkownik
Skąd: Poniatowa
Zarejestrowany: 2006-04-02

Re: Regułki na serwer WWW

Te repozytoria dałem po http (odblokowując przy tym http) i działają ok. Ale problem z ftp dalej pozostał, łącząc się z domu mój klient zatrzymuje się na pobieraniu nazw plików.

EDIT:
OK, trochę pozmieniałem i teraz skrypt wygląda tak:

Kod:

#!/bin/sh
case "$1" in
   start)
   ipt="/sbin/iptables"

   /bin/echo "Uruchamiam Firewalla."
   # Kasowanie reguł
   $ipt -F
   $ipt -X

   # Domyślna polityka - dropujemy wszystko
   $ipt -P INPUT DROP
   $ipt -P OUTPUT DROP
   $ipt -P FORWARD DROP

   # Puszczenie lo
   $ipt -A INPUT -i lo -j ACCEPT
   $ipt -A OUTPUT -o lo -j ACCEPT

   # Apache
   $ipt -A INPUT -p tcp --dport www -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport www -j ACCEPT

   # WWW
   $ipt -A INPUT -p tcp --sport www -j ACCEPT
   $ipt -A OUTPUT -p tcp --dport www -j ACCEPT

   # vsftpd
   $ipt -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
   $ipt -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
   $ipt -A INPUT -p tcp --dport 20:21 -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport 20:21 -j ACCEPT

   # SSH
   $ipt -A INPUT -p tcp --dport ssh -j ACCEPT
   $ipt -A OUTPUT -p tcp --sport ssh -j ACCEPT

   # DNS (nie lokalny)
   $ipt -A INPUT -p udp --sport 53 -j ACCEPT
   $ipt -A OUTPUT -p udp --dport 53 -j ACCEPT

   # IRC
   $ipt -A INPUT -p tcp --sport ircd -j ACCEPT
   $ipt -A OUTPUT -p tcp --dport ircd -j ACCEPT

   # Ping
   $ipt -A OUTPUT -p icmp -j ACCEPT
   $ipt -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
   ;;
   stop)
   /bin/echo "Zatrzymuję Firewalla."
   # Wyłączenie firewalla
   /sbin/iptables -F
   /sbin/iptables -X
   /sbin/iptables -P INPUT ACCEPT
   /sbin/iptables -P OUTPUT ACCEPT
   ;;
   *)
   /bin/echo "Użycie: /etc/init.d/firewall {start|stop}"
   exit 1
   ;;
esac
exit 0

Co należałoby zmienić? :)


Znany również jako Jabber ;).

Offline

 

#3  2006-09-27 04:01:29

  Phrozen^Tux - Członek DUG

Phrozen^Tux
Członek DUG
Skąd: DC - District Cracovia :)
Zarejestrowany: 2005-10-14

Re: Regułki na serwer WWW

co do icmp to umiescilbym :
  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
  $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
i tylko te dwa typy

a codo problemu z ftp uzyj trybu pasywnego :)

Pozdrawiam


gg: 1640760  Linux Registered User: #289621
[img]http://markooff.net/obrazki/avatars/runningslack.gif[/img]  [img]http://markooff.net/obrazki/avatars/debian.jpg[/img] [img]http://markooff.net/obrazki/avatars/powerlogo.gif[/img]

Offline

 

#4  2006-09-27 18:22:20

  Radek - Użytkownik

Radek
Użytkownik
Skąd: Poniatowa
Zarejestrowany: 2006-04-02

Re: Regułki na serwer WWW

Z ftp już sobie poradziłem (użyłem ip_conntrack_ftp). A co z tym SSH?


Znany również jako Jabber ;).

Offline

 

#5  2006-09-27 19:26:06

  Lorenzo - Moderator

Lorenzo
Moderator
Zarejestrowany: 2005-12-23

Re: Regułki na serwer WWW

Do blokowania danego ip po ilus tam nieudanych połączeniach na ssh dobrym narzędziem jest [b]denyhosts[/b]

Co do samego skryptu. Niektórzy radza zapisywanie regól w oddzielnych plikach i używanie iptables-save iptables-restore - ale jak ja widze takie skrypty to stwierdzam, żem głupi ;-).

Ja korzystam z takich na [url=http://fatcat.ftj.agh.edu.pl/~przyboro/other/iptables]desktopach[/url] i na [url=http://fatcat.ftj.agh.edu.pl/~przyboro/other/iptables2]routerze[/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.013 seconds, 9 queries executed ]

Informacje debugowania

Time (s) Query
0.00018 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00130 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.226.185.103' WHERE u.id=1
0.00121 UPDATE punbb_online SET logged=1716118837 WHERE ident='18.226.185.103'
0.00078 SELECT * FROM punbb_online WHERE logged<1716118537
0.00112 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=5355 AND t.moved_to IS NULL
0.00011 SELECT search_for, replace_with FROM punbb_censoring
0.00456 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=5355 ORDER BY p.id LIMIT 0,25
0.00174 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=5355
Total query time: 0.01105 s