CodeGym /Kursy /Docker SELF /Konfiguracja zapory sieciowej (`ufw`, `iptables`)

Konfiguracja zapory sieciowej (`ufw`, `iptables`)

Docker SELF
Poziom 5 , Lekcja 1
Dostępny

Konfiguracja zapory sieciowej ufw, iptables

1. UFW: Uncomplicated Firewall

Po co nam zapora sieciowa?

Wyobraź sobie, że twój serwer to dom pełen wartościowych rzeczy (oczywiście danych). Jeśli zostawisz drzwi otwarte na oścież, każdy może wejść, podebrać twoje dane, a potem zostawić bałagan (albo gorzej). Zapora sieciowa to te drzwi, które możesz kontrolować: komu można wejść, przez jakie wejście i pod jakimi warunkami.

Linux oferuje dwa podstawowe narzędzia do konfiguracji zapory: ufw (Uncomplicated Firewall, czyli "nieskomplikowana zapora sieciowa") i iptables. Zobaczmy, jak działają i czym się różnią.

Co to jest UFW?

UFW to narzędzie do konfiguracji zapory sieciowej, stworzone z myślą o "prostej konfiguracji". Idealnie nadaje się dla tych, którzy chcą szybko skonfigurować podstawowe reguły dostępu, bez wchodzenia w złożone szczegóły.

Instalacja i włączanie UFW

UFW zazwyczaj jest preinstalowane w większości dystrybucji opartych na Debian/Ubuntu. Jeśli go brakuje, zainstaluj go:

sudo apt update
sudo apt install ufw

Włącz UFW:

sudo ufw enable

Sprawdź status:

sudo ufw status

Przy pierwszym uruchomieniu status najprawdopodobniej będzie "inactive". Po włączeniu zmieni się na "active".

Konfiguracja reguł UFW

Teraz najlepsza część — konfiguracja reguł, które określają, jaki ruch przepuszczać, a jaki blokować.

Zezwól na dostęp przez SSH (port 22):

sudo ufw allow 22

Otwórz dostęp do serwera WWW (port 80):

sudo ufw allow 80

Otwórz HTTPS (port 443):

sudo ufw allow 443

Zamknij dostęp do niepotrzebnego portu (np. 8080):

sudo ufw deny 8080

Usuń regułę:

Jeśli nagle zmienisz zdanie, usuń regułę po numerze podanym przez komendę sudo ufw status numbered. Na przykład:

sudo ufw delete 1

Sprawdzanie i testowanie

Aby upewnić się, że wszystko działa jak należy, można jeszcze raz sprawdzić status:

sudo ufw status

Zobaczysz listę wszystkich aktywnych reguł.


2. IPTABLES: więcej kontroli, więcej możliwości

Co to jest iptables?

Jeśli UFW to "proste drzwi z zamkiem", to iptables to "inteligentny strażnik", który pozwala skonfigurować dosłownie wszystko. Daje pełną kontrolę nad ruchem, w tym routing, filtrowanie według różnych kryteriów, a nawet możliwość modyfikacji pakietów.

Główne pojęcia iptables

  1. Tabele — to zestawy funkcji do przetwarzania pakietów sieciowych.
    • filter: przetwarzanie i filtrowanie pakietów (np. pozwolić lub zablokować).
    • nat: translacja adresów/portów (dla routerów, na przykład).
  2. Łańcuchy — to reguły stosowane do pakietów.
    • INPUT: dla ruchu przychodzącego.
    • OUTPUT: dla ruchu wychodzącego.
    • FORWARD: dla ruchu przekazywanego.
  3. Cele (targets) — to działania wykonywane na pakiecie.
    • ACCEPT: pozwolić na pakiet.
    • DROP: odrzucić pakiet.
    • REJECT: odrzucić pakiet, wysyłając powiadomienie.

Rzućmy okiem, jak skonfigurować reguły iptables.

Podgląd aktualnych reguł

Aby zobaczyć, jakie reguły są już skonfigurowane, wykonaj:

sudo iptables -L

Dodatkowo można dodać -v lub -n dla szczegółowych informacji o pakietach i adresach IP.

Tworzenie reguł z iptables

Prosta reguła: pozwolić na SSH (port 22):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Zablokować dostęp do portu 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

Ograniczenie dostępu według adresu IP:

Jeśli chcesz, żeby komputer z konkretnym IP mógł łączyć się z twoim serwerem, a reszta nie:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Usuwanie reguł

Aby usunąć regułę, musisz znać jej numer. Znajdź go za pomocą:

sudo iptables -L --line-numbers

A potem usuń:

sudo iptables -D INPUT <numer_reguły>

Zapisywanie reguł

Reguły iptables standardowo "zapominają się" po restarcie systemu. Aby tego uniknąć, zapisz je:

sudo iptables-save > /etc/iptables/rules.v4

Następnie reguły można przywrócić w ten sposób:

sudo iptables-restore < /etc/iptables/rules.v4

3. UFW kontra IPTABLES: co wybrać?

UFW i iptables robią to samo — chronią twój serwer. Więc które narzędzie wybrać?

  • UFW — to proste narzędzie do podstawowej konfiguracji bezpieczeństwa. Jeśli nie chcesz zagłębiać się w niskopoziomowe szczegóły albo po prostu chcesz szybko skonfigurować firewall, wybierz UFW.
  • Iptables — to potężne narzędzie do bardziej zaawansowanej konfiguracji. Jeśli masz skomplikowaną infrastrukturę (na przykład NAT, routing), będziesz potrzebować iptables.

Tak przy okazji, UFW w rzeczywistości działa "na bazie" iptables. Po prostu generuje dla ciebie reguły iptables. Więc jeśli opanujesz iptables, automatycznie rozumiesz wewnętrzne działanie UFW.


4. Praktyczne przykłady: ochrona serwera

Przykład 1: ochrona SSH i serwera WWW za pomocą UFW

  1. Upewnij się, że UFW jest zainstalowany i aktywowany:
sudo ufw enable
  1. Zezwól na dostęp do SSH i serwera WWW:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
  1. Sprawdź aktywne reguły:
sudo ufw status

Przykład 2: blokowanie niepotrzebnego ruchu za pomocą iptables

  1. Zezwól na dostęp do SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. Zezwól na ruch sieciowy WWW:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  1. Zablokuj wszystko inne:
sudo iptables -A INPUT -j DROP

Dziś dowiedziałeś się, jak chronić serwer za pomocą UFW i iptables. Oba narzędzia są potężne i przydatne, po prostu pamiętaj, że UFW to twój "przyjaciel na co dzień", a iptables to "potężne narzędzie w rękach mistrza". Konfiguruj firewalla, badaj swoje ustawienia i niech twój serwer pozostanie twierdzą, a nie przechodnią!

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION