Za każdym razem, gdy uruchamiam ponownie, tracę zasady iptables, które zajęły mi tak dużo czasu. Wiem, że mogę je zapisać i przywrócić podczas rozruchu , ale czy istnieje coś takiego, aby je zapisać na zawsze? Czy naprawdę muszę je przywracać przy każdym uruchomieniu? Poważnie?
Problem polega na tym, że mam OGROMNĄ listę adresów IP, w których używam pętli while, aby je załadować. Może to potrwać do 10 minut.
To jest mój domowy serwer FTP. Jest to mały VM z 1 GB RAM i bardzo małą mocą obliczeniową. Jest tak wiele adresów IP, ponieważ prawie zrezygnowałem z kontynentu azjatyckiego. Nie potrzebuję, żeby codziennie atakowały mój serwer FTP z brutalną siłą. Blokuję również rządowy. monitory, urządzenia śledzące i spamerzy.
To jest pętla while, której używam do ładowania listy.
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
Odpowiedzi:
Najpierw utwórz plik z zawartością
iptables-save
:Tak naprawdę nie ma znaczenia, gdzie umieścisz plik, wszystko, co musisz zrobić, to upewnić się, że następny wiersz odnosi się do tego samego pliku. Następnie otwórz
/etc/rc.local
i dodaj ten wiersz:Odtąd za każdym razem, gdy komputer włącza się lub uruchamia ponownie, iptables będzie ładować reguły z określonego pliku.
źródło
-bash: /etc/iptables_rules: Permission denied
pierwsze polecenie. Co jest dziwne przy użyciu sudo i wszystkich innych.sudo sh -c '/sbin/iptables-save > /etc/iptables.save'
aby obejśćPermission denied
błąd. Odniesienie/etc/rc.local
do tego. Jest wykonywany później niż reszta uruchamiania systemu i potencjalnie pozostawia system w stanie nie zapory. Sugerowałbym umieszczenie tego skryptu jednowierszowego w/etc/network/if-up.d/firewall
(nowym pliku). Dzięki temu będzie on wykonywany przy każdym włączeniu interfejsów sieciowych.Podczas instalacji powinien zapisać aktualną konfigurację iptables. W przeciwnym razie możesz zapisać je do tych plików (w zależności od wersji 4 lub 6), a iptables-persistent załaduje je przy starcie :)
źródło
Jeśli masz wiele reguł, powinieneś również rozważyć użycie ipset w połączeniu z iptables. Ipset korzysta z indeksowanej tabeli bazy danych i jest znacznie szybszy niż iptables, gdy szuka adresu, aby zdecydować, czy przyjąć, czy odmówić.
http://ipset.netfilter.org/index.html
źródło