πŸ–§ Как навсСгда ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° брандмауэра iptables Π½Π° Linux

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ сСрвСр Debian / Ubuntu Linux.

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° iptables Π½Π° постоянной основС Π² Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ интСрфСйса ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки?

Как ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° IPv4 ΠΈ IPv6 iptables Π½Π° ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌ сСрвСрС Debian Linux?

 

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎΠ΅ сохранСниС ΠΏΡ€Π°Π²ΠΈΠ» брандмауэра iptables Π½Π° Linux

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ навсСгда ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° брандмауэра iptables:

    • Команда iptables-save ΠΈΠ»ΠΈ ip6tables-save – сохраняСт ΠΈΠ»ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ† IPv4 ΠΈΠ»ΠΈ IPv6 Π² Π»Π΅Π³ΠΊΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Π½Π° экран ΠΈΠ»ΠΈ Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». 
    • Команда iptables-restore ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ip6tables-restore – ВосстановлСниС ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ Ρ‚Π°Π±Π»ΠΈΡ† брандмауэра IPv4 ΠΈΠ»ΠΈ IPv6 ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π½Π° Linux.

 

Π¨Π°Π³ 1 – ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Для Π²Ρ…ΠΎΠ΄Π° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ssh:

 

$ ssh admin@server1.itsecforu.ru

 

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ввСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ root, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ sudo ΠΈΠ»ΠΈ su.

 

Π¨Π°Π³ 2. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° брандмауэра Linux для IPv4 ΠΈ IPv6.

Debian ΠΈ Ubuntu Linux:

 

$ sudo /sbin/iptables-save > /etc/iptables/rules.v4

## IPv6 ##

$ sudo /sbin/ip6tables-save > /etc/iptables/rules.v6

 

CentOS / RHEL:

 

$ 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

## ΠΈΠ»ΠΈ ##

$ 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.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ старый Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ брандмауэр, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

 

# ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ firewalld #

$ sudo systemctl stop firewalld.service

$ sudo systemctl disable firewalld.service

$ sudo systemctl mask firewalld.service

#Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π°##

$ 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.

 

Π”Ρ€ΡƒΠ·ΡŒΡ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ этому ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ доступнСС Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΌΠΈΠΌΠΎ ΠΆΠΌΠ°ΠΊΠ½ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½!