Dawniej znajdował się pod adresem viewtopic.php?t=43258
-----------------------------------------------------------------------------
Oto mój kolejny artykuł, który zamieszczam w FAQs & HOWTOs, mam nadzieję że podobnie jak poprzednie będzie czytany z ochotą i przydatny
UWAGA! Autor nie bierze odpowiedzialności za wszelkie szkody wynikłe po skorzystaniu z niżej wymienionej porady. Konfiguracja firewalla jest sprawą bardzo indywidualną, artykuł ma na celu przybliżenie zwykłemu użytkownikowi pewnych pojęć i możliwość dalszego pogłębiania swojej wiedzy w zakresie zabezpieczeń systemu GNU/Linux!
Podstawy konfiguracji firewalla opartego o iptables w Ubuntu
-------------------------------------------------------------------------------------------------------------------------------
Spis treści:
Wyjaśnienie podstawowych pojęć użytych w poradniku
Podstawy tworzenia skryptu firewalla
Personalizacja ustawień zapory
Uruchamianie zapory sieciowej
Już jestem zabezpieczony? Ot tak?
A co jeśli korzystam z Firestarter ?
-------------------------------------------------------------------------------------------------------------------------------
1. Wyjaśnienie podstawowych pojęć użytych w poradniku
Iptables - jest filtrem pakietów (głównie używanym jako firewall bądź router) dla systemu operacyjnego GNU/Linux. http://pl.wikipedia.org/wiki/Iptables
Konto root - root (z ang., dosłownie korzeń) to tradycyjna nazwa uniksowego konta, które ma pełną kontrolę nad systemem. Z założenia konto root nie powinno być używane do pracy, do której wystarczyłoby zwykłe konto z ograniczonymi uprawnieniami. http://pl.wikipedia.org/wiki/Root
Skrypt - plik z zawartością zapisaną w języku skryptowym. Jest on wykonywany przez interpreter. Ma za zadanie zautomatyzować często powtarzane czynności. http://pl.wikipedia.org/wiki/Skrypt_%28informatyka%29
2. Podstawy tworzenia skryptu firewalla
Domyślnym ustawieniem firewalla w Ubuntu jest polityka akceptowania wszystkich pakietów przychodzących, wychodzących oraz forwardowanych (routowanych). Może się to wydać dla wielu użytkowników niebezpieczne, więc postarajmy się to zmienić.
Przejdźmy najpierw na konto administratora (root):
Kod: Zaznacz cały
sudo su
Kod: Zaznacz cały
touch /etc/init.d/firewall && chmod +x /etc/init.d/firewall && nano -w /etc/init.d/firewall
Kod: Zaznacz cały
#!/bin/sh
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -A INPUT -j ACCEPT -m conntrack --ctstate ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m conntrack --ctstate ESTABLISHED,RELATED
Kod: Zaznacz cały
update-rc.d firewall defaults 90
Powyższy kod służy do ustawienia dość mocnej zapory, która będzie skuteczna dla większości użytkowników. Niestety, duża ilość użytkowników korzysta z dodatkowych usług, jak sieci p2p, uruchomione usługi serwerów Apache2 lub MySQL. Dla nich należy rozbudować ten skrypt.
3. Personalizacja ustawień zapory
Skrypt który posiadamy ma za zadanie nie wpuścić do naszego komputera użytkowników internetu. Niestety - powyższy skrypt nie umożliwia np. pobierania plików w sieci p2p lub nie umożliwia postawienia podstawowych serwerów usług. Aby użytkownicy internetu mogli widzieć nasz komputer w sieci musimy pootwierać odpowiednie porty. Służy do tego odpowiednia regułka:
Kod: Zaznacz cały
iptables -A INPUT -s 0/0 -p tcp --dport (_numer portu_) -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport (_numer portu_) -j ACCEPT
Kod: Zaznacz cały
#!/bin/sh
iptables -F
iptables -X
iptables -t nat -X
iptables -t nat -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -j ACCEPT -m conntrack --ctstate ESTABLISHED,RELATED
iptables -A FORWARD -j ACCEPT -m conntrack --ctstate ESTABLISHED,RELATED
iptables -A INPUT -s 0/0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 22 -j ACCEPT
W przypadku korzystania z sieci BitTorrent//Mule itp. sprawa się troszkę komplikuje, gdyż sieci te korzystają z portów rozproszonych po wysokich numerach.. Korzystam z qtorrent, który do działania wymaga otwartych portów 6881:6889. Przedział portów zapisujemy korzystając z dwukropka jako rozdzielenia, np.:
Kod: Zaznacz cały
iptables -A INPUT -s 0/0 -p tcp --dport 6881:6889 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 6881:6889 -j ACCEPT
4. Uruchamianie zapory sieciowej
Kod: Zaznacz cały
/etc/init.d/firewall
5. Już jestem zabezpieczony? Ot tak?
Najprostszą odpowiedzią na to pytanie jest oczywiście odpowiedź twierdząca . Niestety, jak w większości przypadków w życiu - jest to odpowiedź niewystarczająca. Iptables są niesamowicie potężnym narzędziem (o wiele potężniejszym niż możecie sobie wyobrazić) i nie służą tylko do stawiania zapory sieciowej. To kompleksowy filtr pakietów, który potrafi skonfigurować nasz komputer jako router DHCP czy np. kompleksowy "odcedzacz" pakietów dla naszej bezpiecznej sieci lokalnej. Zapraszam zainteresowanych do dalszej lektury:
Kod: Zaznacz cały
man iptables
http://www.frozentux.net/documents/iptables-tutorial/
http://www.debian.one.pl/index.php?url=4
Bez zagłębiania się w szczegóły - zwyczajny użytkownik powinien czuć się bezpieczny przy stosowaniu powyższego skryptu.
6. A co jeśli korzystam z Firestarter ?
Firestarter to GUI (graficzna nakładka na interfejs iptables) umożliwiające jego konfigurację poprzez środowisko przyjazne początkującemu użytkownikowi. Jeśli potrafisz korzystać z Firestartera to używaj go. Firestarter zastępuje powyższy skrypt tworząc swój, więc jeśli korzystasz z tego narzędzia nie trudź się z tym poradnikiem.
Pozdrawiam!
night
* nightwish86 [na] ubuntu.pl *
Artykuł udostępniony na licencji CC.