Как навсегда сохранить правила iptables в Linux

Как навсегда сохранить правила брандмауэра iptables в Linux

 

Я использую сервер Debian / Ubuntu Linux. Как мне сохранить правила iptables на постоянной основе в Linux с помощью интерфейса командной строки, добавленного с помощью команды iptables? Как я могу постоянно хранить правила IPv4 и IPv6 iptables на облачном сервере Debian Linux?

Системный администратор и разработчики Linux используют команды iptables и ip6tables для настройки, обслуживания и проверки таблиц брандмауэра правил фильтрации пакетов IPv4 и IPv6 в ядре Linux. Любые изменения, сделанные с помощью этих команд, теряются при перезагрузке сервера Linux. Следовательно, нам необходимо постоянно хранить эти правила при перезагрузке. На этой странице показано, как постоянно сохранять правила брандмауэра iptables на сервере Ubuntu или Debian Linux.

 

Постоянное сохранение правил брандмауэра iptables в Linux

Вам нужно использовать следующие команды, чтобы навсегда сохранить правила брандмауэра iptables:

  1. iptables-save command or ip6tables-save command – Сохранить или выгрузить содержимое таблицы IPv4 или IPv6 в легко анализируемом формате либо на экран, либо в указанный файл.
  2. iptables-restore command or ip6tables-restore command – Восстановить правила и таблицы брандмауэра IPv4 или IPv6 из заданного файла в Linux.

 

Шаг 1 — Откройте терминал

Откройте приложение терминала и введите следующие команды. Для входа на удаленный сервер с помощью команды ssh: вы должны ввести следующую команду от имени пользователя root либо с помощью команды sudo, либо команды su:
$ ssh vivek@server1.cyberciti.biz
$ ssh ec2-user@ec2-host-or-ip

Шаг 2. Сохраните правила брандмауэра Linux для IPv4 и IPv6.

Тип пользователя Debian и Ubuntu Linux: Пользователи CentOS / RHEL запускают:
$ sudo /sbin/iptables-save > /etc/iptables/rules.v4
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/iptables/rules.v6

CentOS/RHEL users run:
$ sudo /sbin/iptables-save > /etc/sysconfig/iptables
## IPv6 ##
$ sudo /sbin/ip6tables-save > /etc/sysconfig/ip6tables

ОТОБРАЖЕНИЕ СОХРАНЕННЫХ ПРАВИЛ В LINUX

Мы можем отобразить сохраненный файл с помощью команды cat или выполнить поиск с помощью команды grep / egrep :
$ cat /etc/iptables/rules.v4

*mangle
 
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
 
 
COMMIT
 
 
*nat
 
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
 
-A POSTROUTING -s 10.8.0.0/24 -m policy --pol none --dir out -j MASQUERADE
 
COMMIT
 
 
*filter
 
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
 
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p esp -j ACCEPT
-A INPUT -p ah -j ACCEPT 
-A INPUT -p icmp --icmp-type echo-request -m hashlimit --hashlimit-upto 5/s --hashlimit-mode srcip --hashlimit-srcmask 32 --hashlimit-name icmp-echo-drop -j ACCEPT
-A INPUT -p udp -m multiport --dports 21194 -j ACCEPT
-A INPUT -p tcp -s 1xx.yy.zz.ttt,10.8.0.0/24,10.8.1.0/24 --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp --dport 3128 -d 10.8.0.1 -s 10.8.0.0/24,10.8.1.0/24  -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -d 172.xx.yyy.zzz -p udp --dport 53 -j ACCEPT
-A INPUT -d 172.xx.yyy.z -p udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -m limit --limit 5/min -j LOG --log-prefix "[iptables denied] " --log-level 7
-A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j DROP
-A OUTPUT -d 10.8.0.0/24 -m owner --gid-owner 15000 -j DROP
-A FORWARD -s 10.8.0.0/24 -d 169.254.0.0/16 -j DROP
-A OUTPUT -d 169.254.0.0/16 -m owner --gid-owner 15000 -j DROP
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp --dport 445 -j DROP
-A FORWARD -p udp -m multiport --ports 137,138 -j DROP
-A FORWARD -p tcp -m multiport --ports 137,139 -j DROP
-A FORWARD -m conntrack --ctstate NEW -s 10.8.0.0/24 -m policy --pol none --dir in -j ACCEPT
-A FORWARD -m limit --limit 5/min -j LOG --log-prefix "[iptables forward denied] " --log-level 7
COMMIT

Шаг 3. Восстановите правила файловой защиты Linux для IPv4 и IPv6.

Мы просто меняем приведенные выше команды в обратном порядке для каждой операционной системы:
## Debian or Ubuntu ##
$ sudo /sbin/iptables-restore < /etc/iptables/rules.v4
$ sudo /sbin/ip6tables-restore < /etc/iptables/rules.v6
## CentOS/RHEL ##
$ sudo /sbin/iptables-save < /etc/sysconfig/iptables
$ sudo /sbin/ip6tables-save < /etc/sysconfig/ip6tables

Шаг 4 — Установка пакета iptables-persistent для Debian или Ubuntu Linux

Обратите внимание, что следующая команда будет конфликтовать с интерфейсами iptables, такими как команда ufw или firewall-cmd. Избегайте использования следующих пакетов, если вы используете эти инструменты.

Нам нужно установить iptables-persistent. Он будет действовать как загрузчик для правил Netfilter, плагина iptables netfilter-persistent, который является загрузчиком для конфигурации Netfilter с использованием архитектуры на основе плагинов. Другими словами, автоматическая загрузка сохраненных правил iptables из вышеуказанных файлов. Введите следующую команду apt или команду apt-get :
$ sudo apt install iptables-persistent
## OR ##
$ sudo apt-get install iptables-persistent

Убедитесь, что службы включены в Debian или Ubuntu с помощью команды systemctl:
$ sudo systemctl is-enabled netfilter-persistent.service
Если не включить:
$ sudo systemctl enable netfilter-persistent.service
Получить статус:
$ sudo systemctl status netfilter-persistent.service

 netfilter-persistent.service - netfilter persistent configuration
     Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/netfilter-persistent.service.d
             └─iptables.conf
     Active: active (exited) since Thu 2020-08-20 19:24:22 UTC; 3 days ago
       Docs: man:netfilter-persistent(8)
   Main PID: 577 (code=exited, status=0/SUCCESS)
      Tasks: 0 (limit: 4620)
     Memory: 0B
     CGroup: /system.slice/netfilter-persistent.service

Aug 20 19:24:21 nixcraft-vpn-1 systemd[1]: Starting netfilter persistent configuration...
Aug 20 19:24:21 nixcraft-vpn-1 netfilter-persistent[583]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Aug 20 19:24:21 nixcraft-vpn-1 netfilter-persistent[583]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Aug 20 19:24:22 nixcraft-vpn-1 systemd[1]: Finished netfilter persistent configuration.

Шаг 5 — Установите пакет iptables-services для RHEL / CentOS

По умолчанию RHEL / CentOS 7 или 8 поставляется с firewalld. Если вам нужен старый добрый файловый брандмауэр, введите следующие команды:
# Disable firewalld if installed #
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service
$ sudo systemctl mask firewalld.service
# install package on Linux to save iptables rules using the yum command/dnf command ##
$ sudo yum install iptables-services
$ sudo systemctl enable iptables
$ sudo systemctl enable ip6tables
$ sudo systemctl status iptables

 iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: active (exited) since Mon 2020-08-24 09:29:59 EDT; 3s ago
  Process: 8259 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 8259 (code=exited, status=0/SUCCESS)

Aug 24 09:29:59 centos-8-cloud.sweet.home systemd[1]: Starting IPv4 firewall with iptables...
Aug 24 09:29:59 centos-8-cloud.sweet.home iptables.init[8259]: iptables: Applying firewall rules: [  OK  ]
Aug 24 09:29:59 centos-8-cloud.sweet.home systemd[1]: Started IPv4 firewall with iptables.

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

шесть + десять =