Zarządzanie regułami iptables w systemie Linux

17

Mam wiele zasad dotyczących konfiguracji iptables (routing, bany ssh itp.) Wybrałem też listę adresów IP, których mogę zablokować tutaj http://blacklist.linuxadmin.org, a teraz robi się to naprawdę skomplikowane.

Mój /etc/sysconfig/iptablesjest naprawdę długi. Czy istnieje sposób na zarządzanie regułami poprzez dołączanie reguł z plików zewnętrznych?

Na przykład:

#include "pre_routing_rules"
#include "ssh_bans"

Obejmuje to reguły dodane w plikach „pre_routing_rules” i „ssh_bans”. W ten sposób mogę łatwo zarządzać moimi regułami bez szukania cat /etc/sysconfig/iptables.

peterh - Przywróć Monikę
źródło

Odpowiedzi:

11

Wypróbuj ipsets iptables . Zestawy ip są konfigurowane osobno, a także szybciej, jeśli masz wystarczającą liczbę adresów IP do zarządzania.

Reguła iptables może odnosić się do ipset w następujący sposób:

iptables -A FORWARD -m set --set blocklist src, dst -j DROP

Aleksiej Naidyonow
źródło
Mój największy problem dotyczy adresu IP, więc mogę z niego korzystać.
Korzystam z tej funkcji. Moje adresy IP z czarnej listy / białej listy są największe, więc mogą korzystać z ipset. Myślę, że wstępne trasy mogą pozostać na głównej liście konfiguracji
W tym wątku na forum znajduje się kilka przykładów skryptów korzystających z ipsets: forums.gentoo.org/viewtopic-t-863121.html
czwartek
3

Jednym prostym rozwiązaniem jest użycie wielu skryptów bash dla każdej sekcji, takich jak:

iptables-routing.sh
iptables-ssh-bans.sh
iptables-blacklist.sh

I uruchom te pliki ze skryptu głównego.

Andrei Savu
źródło
Cóż, tak właśnie robię. Ale jeśli będę musiał przejrzeć listę reguł iptables (np. Cat / etc / sysconfig / iptables), pokaże mi wszystkie reguły, które zostały dodane przez iptables-routing.sh iptables-blacklist.sh
2

iptables nie odczytuje pliku bezpośrednio, co robi program o nazwie iptables-restore. Jest to zwykle wywoływane z jednego ze skryptów inicjujących.

Możesz dodać dodatkowe pliki wejściowe do linii iptables-restore. Musisz dowiedzieć się, gdzie ta linia znajduje się w twoim systemie, ale na moim polu Debain znajduje się w /etc/init.d/nat

Linia obecnie brzmi następująco:

/sbin/iptables-restore < /etc/network/iptables

Być może można to zmienić na coś takiego:

cat /etc/network/iptables \
    /etc/network/pre_routing_tables \
    /etc/network/ssh_bans | /sbin/iptables-restore
Adam Pierce
źródło
2

Zwykle używam jednego z wielu skryptów / narzędzi zapory ogniowej na górze iptables, takich jak Firestarter lub Shorewall, są one dostarczane z wieloma plikami, oddzielonymi od celu, dodając ciekawe reguły w celu ochrony przed niektórymi typami fałszywych pakietów i zwykle działają dobrze.

Vinko Vrsalovic
źródło
Czy można z nich korzystać za pomocą wiersza poleceń? Mój serwer jest zdalny i naprawdę nie wolę todo X od SSH
Shorewall to zestaw płaskich plików tekstowych, które generują reguły iptables. Jest bardzo użyteczny z wiersza poleceń i ma świetną dokumentację i narzędzia diagnostyczne.
Paul Gear
0

Nie jestem pewien, z której dystrybucji korzystasz, ponieważ mój nie ma pliku, do którego się odwołujesz - ale zazwyczaj pliki zawierające reguły iptables to tylko skrypty powłoki - więc powinieneś być w stanie zrobić to, co chcesz, mając linię Jak na przykład :

. / etc / sysconfig / pre_routing_rules

lub na przykład na górze pliku iptables, do którego się odwołujesz.

GodEater
źródło