Administrator systemu Linux - konfiguracja zapory
firewalld to domyślny kontroler frontonu dla iptables na CentOS. Firewalld front-end ma dwie główne zalety w stosunku do surowych iptables -
Używa łatwych w konfiguracji i implementacji stref, abstrakcyjnych łańcuchów i reguł.
Zestawy reguł są dynamiczne, co oznacza, że połączenia stanowe są nieprzerwane, gdy ustawienia są zmieniane i / lub modyfikowane.
Pamiętaj, że firewalld jest opakowaniem dla iptables - nie zastępuje. Chociaż niestandardowe polecenia iptables mogą być używane z firewalld , zaleca się używanie firewalld, aby nie przerywać funkcjonalności zapory.
Najpierw upewnijmy się, że firewalld jest uruchomiony i włączony.
[root@CentOS rdc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago
Docs: man:firewalld(1)
Main PID: 712 (firewalld)
Memory: 34.7M
CGroup: /system.slice/firewalld.service
└─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Widzimy, że firewalld jest zarówno aktywny (do uruchomienia przy starcie), jak i aktualnie działa. Jeśli nieaktywny lub nie rozpoczął, możemy użyć -
systemctl start firewalld && systemctl enable firewalld
Teraz, gdy mamy skonfigurowaną usługę firewalld, upewnijmy się, że działa.
[root@CentOS]# firewall-cmd --state
running
[root@CentOS]#
Widzimy, że usługa firewalld jest w pełni funkcjonalna.
Firewalld działa na koncepcji stref . Strefa jest stosowana do interfejsów sieciowych za pośrednictwem Menedżera sieci. Omówimy to podczas konfigurowania sieci . Jednak na razie zmiana strefy domyślnej spowoduje zmianę wszystkich kart sieciowych pozostawionych w stanie domyślnym „Strefa domyślna”.
Rzućmy okiem na każdą strefę, która wychodzi z pudełka z zaporą ogniową .
Sr.No. | Strefa i opis |
---|---|
1 | drop Niski poziom zaufania. Wszystkie połączenia przychodzące i pakiety są odrzucane, a tylko połączenia wychodzące są możliwe dzięki pełnieniu stanu |
2 | block Na połączenia przychodzące odpowiada komunikat icmp informujący inicjatora, że żądanie jest zabronione |
3 | public Wszystkie sieci są ograniczone. Jednak wybrane połączenia przychodzące mogą być jawnie dozwolone |
4 | external Konfiguruje firewalld dla NAT. Sieć wewnętrzna pozostaje prywatna, ale dostępna |
5 | dmz Dozwolone są tylko niektóre połączenia przychodzące. Używany do systemów w izolacji DMZ |
6 | work Domyślnie ufaj większej liczbie komputerów w sieci, zakładając, że system znajduje się w bezpiecznym środowisku pracy |
7 | hone Domyślnie więcej usług jest niefiltrowanych. Zakładając, że system znajduje się w sieci domowej, w której będą używane usługi takie jak NFS, SAMBA i SSDP |
8 | trusted Wszystkie maszyny w sieci są zaufane. Większość połączeń przychodzących jest nieskrępowana.This is not meant for interfaces exposed to the Internet |
Najczęściej używane strefy to: publiczna, drop, praca i dom.
Niektóre scenariusze, w których byłaby używana każda wspólna strefa, to:
public- Jest to najczęściej używana strefa przez administratora. Umożliwi to zastosowanie niestandardowych ustawień i przestrzeganie specyfikacji RFC dotyczących operacji w sieci LAN.
drop- Dobrym przykładem użycia kropli jest konferencja dotycząca bezpieczeństwa, publiczne WiFi lub interfejs podłączony bezpośrednio do Internetu. drop zakłada, że wszystkie niezamówione żądania są złośliwe, w tym sondy ICMP. Więc każde żądanie spoza stanu nie otrzyma odpowiedzi. Wadą upuszczania jest to, że może zepsuć funkcjonalność aplikacji w pewnych sytuacjach wymagających ścisłej zgodności z RFC.
work- Korzystasz z częściowo zabezpieczonej korporacyjnej sieci LAN. Tam, gdzie można założyć, że cały ruch jest umiarkowanie bezpieczny. Oznacza to, że to nie jest WiFi i prawdopodobnie mamy IDS, IPS i zabezpieczenia fizyczne lub 802.1x. Powinniśmy również znać osoby korzystające z sieci LAN.
home- Jesteś w domowej sieci LAN. Jesteś osobiście odpowiedzialny za każdy system i użytkownika w sieci LAN. Wiesz, że każda maszyna w sieci LAN nie została naruszona. Często pojawiają się nowe usługi do udostępniania multimediów zaufanym osobom i nie musisz poświęcać dodatkowego czasu ze względu na bezpieczeństwo.
Strefy i interfejsy sieciowe działają na poziomie od jednego do wielu. Jeden interfejs sieciowy może mieć zastosowaną tylko jedną strefę naraz. Chociaż strefa może być stosowana jednocześnie do wielu interfejsów.
Zobaczmy, jakie strefy są dostępne i jakie są obecnie stosowane.
[root@CentOS]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block
[root@CentOS]# firewall-cmd --get-default-zone
public
[root@CentOS]#
Gotowy do dodania niestandardowych reguł w firewalld?
Najpierw zobaczmy, jak wygląda nasze pudełko do skanera portów z zewnątrz.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00046s latency).
Not shown: 1023 filtered ports
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds
bash-3.2#
Pozwólmy przychodzącym żądaniom na port 80.
Najpierw sprawdź, która strefa jest stosowana jako domyślna.
[root@CentOs]# firewall-cmd --get-default-zone
public
[root@CentOS]#
Następnie ustaw regułę zezwalającą portowi 80 na bieżącą strefę domyślną.
[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp
success
[root@CentOS]#
Teraz zaznaczmy nasze pole po zezwoleniu na połączenia na porcie 80.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00053s latency).
Not shown: 1022 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp closed http
Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds
bash-3.2#
Teraz zezwala na niechciany ruch do 80.
Ustawmy domyślną strefę na upuszczenie i zobaczmy, co stanie się ze skanowaniem portów.
[root@CentOS]# firewall-cmd --set-default-zone=drop
success
[root@CentOS]# firewall-cmd --get-default-zone
drop
[root@CentOs]#
Teraz przeskanujmy hosta z interfejsem sieciowym w bezpieczniejszej strefie.
bash-3.2# nmap -sS -p 1-1024 -T 5 10.211.55.1
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00094s latency).
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered
Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds
bash-3.2#
Teraz wszystko jest filtrowane z zewnątrz.
Jak pokazano poniżej, podczas upuszczania host nie odpowiada nawet na żądania ICMP ping .
bash-3.2# ping 10.211.55.1
PING 10.211.55.1 (10.211.55.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Ustawmy ponownie domyślną strefę na publiczną .
[root@CentOs]# firewall-cmd --set-default-zone=public
success
[root@CentOS]# firewall-cmd --get-default-zone
public
[root@CentOS]#
Teraz sprawdźmy publicznie nasz obecny zestaw reguł filtrowania .
[root@CentOS]# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s5
sources:
services: dhcpv6-client ssh
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
[root@CentOS rdc]#
Zgodnie z konfiguracją nasza reguła filtru portu 80 ma zastosowanie tylko w kontekście bieżącej konfiguracji. Oznacza to, że po ponownym uruchomieniu systemu lub ponownym uruchomieniu usługi firewalld nasza reguła zostanie odrzucona.
Wkrótce będziemy konfigurować demona httpd , więc niech nasze zmiany będą trwałe -
[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@CentOS]# systemctl restart firewalld
[root@CentOS]#
Teraz nasza reguła portu 80 w strefie publicznej jest trwała przy ponownym uruchomieniu i ponownym uruchomieniu usługi.
Poniżej przedstawiono typowe polecenia firewalld stosowane z firewall-cmd .
Komenda | Akcja |
---|---|
firewall-cmd --get-zones | Zawiera listę wszystkich stref, które można zastosować do interfejsu |
firewall-cmd - status | Zwraca aktualny stan usługi firewalld |
firewall-cmd --get-default-zone | Pobiera bieżącą strefę domyślną |
firewall-cmd --set-default-zone = <zone> | Ustawia strefę domyślną w bieżącym kontekście |
firewall-cmd --get-active-zone | Pobiera bieżące strefy w kontekście zastosowane do interfejsu |
firewall-cmd --zone = <strefa> --list-all | Wyświetla konfigurację dostarczonej strefy |
firewall-cmd --zone = <strefa> --addport = <port / protokół transportowy> | Stosuje regułę portu do filtru strefy |
--stały | Utrwala zmiany w strefie. Flaga jest używana wraz z poleceniami modyfikacji |
Oto podstawowe pojęcia związane z administrowaniem i konfigurowaniem firewalld .
Konfigurowanie usług zapory na hoście w CentOS może być złożonym zadaniem w bardziej wyrafinowanych scenariuszach sieciowych. Zaawansowane użycie i konfiguracja firewalld i iptables w CentOS może zająć cały samouczek. Przedstawiliśmy jednak podstawy, które powinny wystarczyć do wykonania większości codziennych zadań.