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
http://markooff.net/obrazki/avatars/runningslack.gif  http://markooff.net/obrazki/avatars/debian.jpg http://markooff.net/obrazki/avatars/powerlogo.gif

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 denyhosts

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 desktopach i na routerze :-)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)