firewalld vs iptables - kiedy używać, które [zamknięte]

29

TL; DR W przypadku nowych instalacji na serwerze CentOS powinienem używać zapory ogniowej, czy po prostu ją wyłączyć i wrócić do używania /etc/sysconfig/iptables?


firewalld i iptables służą do podobnych celów. Oba wykonują filtrowanie pakietów - ale jeśli dobrze to rozumiem, firewalld nie opróżnia całego zestawu reguł przy każdej zmianie.

Wiem dużo o iptables, ale bardzo mało o firewalld.

W Fedorze i RHEL / CentOS - tradycyjna konfiguracja iptables została wykonana /etc/sysconfig/iptables. W przypadku zapory ogniowej konfiguracja trwa /etc/firewalld/i jest zbiorem plików XML. Wydaje się, że Fedora zmierza w kierunku zapory ogniowej jako zamiennika tej starszej konfiguracji. Rozumiem, że firewalld używa iptables pod maską, ale ma również swój własny interfejs wiersza poleceń i format pliku konfiguracyjnego, jak wyżej - o tym mówię, jeśli chodzi o używanie jednego kontra drugiego.

Czy istnieje jakaś konkretna konfiguracja / scenariusz, do którego najlepiej pasuje każda z nich? W przypadku NetworkMangaer kontra sieć wydaje się, że chociaż NetworkManager mógł być zamiennikiem skryptów sieciowych, z powodu braku obsługi mostka sieciowego i kilku innych rzeczy, wiele osób po prostu nie używa go w konfiguracjach serwerów w wszystko. Wydaje się więc, że istnieje ogólna koncepcja „użyj NetworkManagera, jeśli korzystasz z Linuksa desktop/gui, i sieci, jeśli korzystasz z serwera”. Właśnie to wybrałem po przeczytaniu różnych postów - ale przynajmniej daje wskazówki co do praktycznego wykorzystania tych rzeczy - przynajmniej w ich obecnym stanie.

Ale robiłem to samo z firewalld, po prostu wyłączałem go i używałem iptables. (Prawie zawsze instaluję Linux na serwerze, a nie na komputerze). Czy firewalld jest skutecznym zamiennikiem dla iptables i czy powinienem go używać na wszystkich nowych systemach?

bgp
źródło
10
Firewalld używa iptables pod spodem.
user9517 obsługuje GoFundMonica
Jasne, i to ma sens. Ale oczywiście istnieje duża różnica między sposobem przechowywania konfiguracji i używanym narzędziem - iptables vs firewall-cmd, / etc / sysconfig / iptables vs /etc/firewalld/.../*.xml Skoryguję pytanie trochę, żeby to wyjaśnić.
bgp
Nie ma potrzeby „opróżniania całego zestawu reguł za każdym razem, gdy istnieje szansa” iptables. To tylko narzędzie front-end, jeśli spłukuje stoły, bo tak powiedziałeś.
gparent
Dla wyjaśnienia mam na myśli „restart usługi iptables”, powodując usunięcie reguł i ponowne ich dodanie. (Chociaż nadal nie wpływa to na stan połączenia, co jest dobre.) Możesz oczywiście po prostu uruchomić polecenie iptables z wiersza polecenia, aby zmodyfikować poszczególne reguły - ale ogólnie staram się zachować wszystko w / etc / sysconfig / iptables i użyj polecenia „service”, aby trzymać się konwencji sugerowanej przez narzędzia dostarczane przez dystrybucję.
bgp

Odpowiedzi:

12

Ponieważ firewalldjest oparty na konfiguracji XML, niektórzy mogą pomyśleć, że łatwiej jest skonfigurować zaporę w sposób programowy. Można to osiągnąć iptablesrównie dobrze, ale w inny sposób, który nie jest XML. Jeśli znasz już sposób iptablesdziałania, dlaczego chcesz migrować całą konfigurację firewalld?

Jeśli zastanowisz się nad swoim największym iptableszestawem reguł zapory, jak często uważasz, że skorzystałbyś z dynamicznego aspektu firewalld? W większości przypadków wydajność iptablesnigdy nie jest problemem. W większości przypadków, w których wydajność iptablesjest problemem, można to naprawić za pomocą ipsetopartych na źródłach / docelowych zestawów adresów IP.

To inna debata, czy powinieneś używać NetworkManager.

vtorhonen
źródło
3
Wydajność nie iptablesjest w tym przypadku nieistotna, ponieważ powolność nastąpi niezależnie od tego, czy reguły są wstawiane za firewalldpomocą iptablesnarzędzia, czy bezpośrednio .
gparent