Firewall na iptables - używamy quicktables

Data publikacji: 2012-12-27 | Tagi:

Dzięki popularyzacji linuxa i spadkom cen sprzętu, każdy kto ma trochę samozaparcia może sobie postawić w domu serwer na linuxie.

Natknąłem się na takie i podobne stwierdzenia wielokrotnie. Owszem, po części można się z tym zgodzić, ale dopiero przy założeniu, że:

  • posiadamy sporo wiedzy i lubimy się uczyć
  • nie zrażamy się początkowymi porażkami
  • znamy odpowiednie narzędzia i...
  • ... wiemy, gdzie ich użyć

O ile o dwa pierwsze punkty jestem spokojny (w końcu czytacie tego posta ;)), to narzędzia i ich używanie stanowią oddzielny problem.

Przykładem niech będzie router, połączony z serwerem www, ssh itp. na bazie linuksa i firewall oparty na nim.

W początkowych etapach, prawie wszyscy próbują ręcznie wygenerować odpowiedni zakres reguł dla iptables. Zwykle kończy się to fiaskiem lub odcięciem dostępu do serwera przez wydanie poleceń:

# iptables -F
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
# iptables -P FORWARD DROP

Bardzo mocno sugeruję - nie wykonujcie tych poleceń na zdalnym hoście przez ssh.

Przyznam szczerze - nigdy nie opanowałem iptables na tyle, by samemu napisać odpowiednie reguły. Ale też nie było ku temu powodów, ponieważ jest coś takiego jak quicktables - półautomatyczny skrypt generujący odpowiedni plik z regułami na podstawie konfiguracji naszego serwera oraz na podstawie odpowiedzi udzielonych na proste pytania.

Quicktables krok po kroku

1. Ściągamy i rozpakowywujemy pakiet
wget http://qtables.radom.org/files/quicktables-2.3.tar.gz
tar zxvf quickatbles-2.3.tar.gz
cd ./quicktables-2.3
2. Uruchamiamy skrypt
./quicktables-2.3
3. Czytamy ze zrozumieniem komunikaty programy i odpowiadamy na pytania

Oto zapis przykładowej sesji ze skryptem quicktables (ominąłem komunikaty informacyjne, a skupiłem się jedynie na pytaniach), Nie użyłem żadnych skomplikowanych reguł - jedynie te najprostsze. Dla każdej konfiguracji przebieg takiej interaktywnej sesji może być inny, dlatego moje odpowiedzi traktujcie raczej jako sugestię.

  • iptables was found at /sbin/iptables.  is that the location you wish to use in your firewall script (yes/no) : yes
    
  • i have determined that the interface that connects you to your ISP (untrusted network) is eth1.  is this the interface you want to use in your firewall script (yes/no) : yes
    
  • would you like to use NAT (yes/no) : yes
    
  • your internal interface connects your computer to your LAN (trusted network).  which interface is your internal interface: eth0
    
  • what network(s) would you like to nat: 192.168.0.0/24
    
  • is your internet IP address a dynamic or static address (dynamic/static) : dynamic
    
  • would you like your internet IP address to be pingable (yes/no) : yes
    
  • would you like to use icmp type restriction to block unwanted icmp types from the internet (yes/no) : yes
    
  • would you like to open any tcp ports to the firewall (yes/no) : yes
    
  • what tcp port(s) would you like open on the firewall : 22 80
    
  • would you like to open any udp ports to the firewall (yes/no) : no
    
  • would you like to load the ftp nat and conntrack kernel modules if they are available (yes/no) : yes
    
  • would you like to load the irc nat and conntrack kernel modules if they are available (yes/no) : no
    
  • do you want to block internet access from reservced private networks (yes/no) : no
    
  • enter the ip address(es) and/or network address(es) to completely block. :
    
  • would you like to log dropped packets (yes/no) : no
    
  • do you wish to use squid (yes/no) : no
    
  • do you wish to block outbound access to any services (yes/no) : no
    
  • would you like to forward ports from one or more external IP addresses to one or more internal IP addresses (yes/no) : no
    

W tym momencie skrypt kończy pracę i tworzy plik rc.firewall, po uruchomieniu którego wszystkie wybrane przez nas reguły są wprowadzane do systemu. Taki plik warto uruchomić przy starcie serwera np. przez dodanie wpisu do /etc/rc.local PRZED komendą exit 0:

/sciezka/do/pliku/z/regulami/rc.firewall
exit 0


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: