GNU/Linux >> Znalost Linux >  >> Ubuntu

Iptables-perzistentní a Netfilter-perzistentní Nefungují ve skutečnosti na Ubuntu Server 16.04.3 X86_64?

Mám iptables-persistent a netfilter-persistent nainstalováno:

$ dpkg -l '*-persistent'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                         Version                      Architecture                Description
+++-============================================-===========================-===========================-==============================================================================================
ii  iptables-persistent                          1.0.4                       all                         boot-time loader for netfilter rules, iptables plugin
ii  netfilter-persistent                         1.0.4                       all                         boot-time loader for netfilter configuration

Pravidla mám také uložena na /etc/iptables/rules.v4 (Zatím mě zajímá pouze IPv4):

$ cat /etc/iptables/rules.v4
# Generated by iptables-save v1.6.0 on Fri Jan 19 09:49:17 2018
*security
:INPUT ACCEPT [11740:1271860]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [9784:2123999]
COMMIT
# Completed on Fri Jan 19 09:49:17 2018
# Generated by iptables-save v1.6.0 on Fri Jan 19 09:49:17 2018
*raw
:PREROUTING ACCEPT [18262:1677349]
:OUTPUT ACCEPT [9784:2123999]
COMMIT
# Completed on Fri Jan 19 09:49:17 2018
# Generated by iptables-save v1.6.0 on Fri Jan 19 09:49:17 2018
*nat
:PREROUTING ACCEPT [7367:452849]
:INPUT ACCEPT [872:48764]
:OUTPUT ACCEPT [500:37441]
:POSTROUTING ACCEPT [500:37441]
COMMIT
# Completed on Fri Jan 19 09:49:17 2018
# Generated by iptables-save v1.6.0 on Fri Jan 19 09:49:17 2018
*mangle
:PREROUTING ACCEPT [18262:1677349]
:INPUT ACCEPT [18259:1677229]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [9784:2123999]
:POSTROUTING ACCEPT [9784:2123999]
COMMIT
# Completed on Fri Jan 19 09:49:17 2018
# Generated by iptables-save v1.6.0 on Fri Jan 19 09:49:17 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --dports 25,587,465
-A INPUT -p tcp -m state --state NEW -m multiport --dports 110,995
-A INPUT -p tcp -m state --state NEW -m multiport --dports 143,993
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --dports 3721:3725 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Fri Jan 19 09:49:17 2018

Pravidlo, které mě opravdu zajímá, je pravidlo ke konci:

-A INPUT -p tcp -m state --state NEW -m multiport --dports 3721:3725 -j ACCEPT

Když však restartuji server, toto pravidlo nedostanu:

$ sudo iptables -4 -L
[sudo] password for kal:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             127.0.0.0/8          reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
           tcp  --  anywhere             anywhere             state NEW multiport dports smtp,submission,urd
           tcp  --  anywhere             anywhere             state NEW multiport dports pop3,pop3s
           tcp  --  anywhere             anywhere             state NEW multiport dports imap2,imaps
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
DROP       all  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

Chain f2b-shadowsocks (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain f2b-sshd (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Všimněte si také, že iptables má několik pravidel, která byla přítomna ještě předtím, než jsem si nainstaloval iptables-persistent a netfilter-persistent – např. ty pro http, smtp, pop3, imap, ssh. Nemám ponětí, odkud se berou. Jistě, mám nainstalované openssh a nginx a jejich služby povolené, ale sám jsem pro ně nikdy nepřidal pravidla iptables.

Související:Jak vysílat sdílení v síti (ftp/sftp/webdav), aby se zobrazilo v nautilus ostatním uživatelům?

Pokud se podívám na výstup journalctl, netfilter-persistent.service se úspěšně spustil:

$ sudo journalctl -xu netfilter-persistent.service
-- Logs begin at Fri 2018-01-19 18:55:13 HKT, end at Fri 2018-01-19 19:05:41 HKT. --
Jan 19 18:55:13 yuma systemd[1]: Starting netfilter persistent configuration...
-- Subject: Unit netfilter-persistent.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit netfilter-persistent.service has begun starting up.
Jan 19 18:55:13 yuma netfilter-persistent[1997]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Jan 19 18:55:14 yuma netfilter-persistent[1997]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Jan 19 18:55:14 yuma systemd[1]: Started netfilter persistent configuration.
-- Subject: Unit netfilter-persistent.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit netfilter-persistent.service has finished starting up.
--
-- The start-up result is done.

Pokud ručně restartuji netfilter-persistent.service po úplném spuštění počítače dostanu pravidlo, které chci:

$ sudo iptables -4 -L
[...]
ACCEPT     tcp  --  anywhere             anywhere             state NEW multiport dports 3721:3725
[...]

Proč tedy netfilter-persistent skutečně fungují při spouštění?

Je něco úplně přepisující iptables po netfilter-persistent ?

Co s tím mohu udělat?

AKTUALIZACE
Také nemám ufw nebo firewalld .

Přijatá odpověď:

Takže se ukázalo, že můj server má soubor s názvem /etc/iptables.firewall.rules a pravidla se z něj obnovovala v /etc/network/if-pre-up.d/firewall :

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules

/etc/iptables.firewall.rules Zdá se, že je to starý soubor, který jsem vytvořil v roce 2015 podle starého návodu k zachování pravidel iptables.

Vše, co jsem tedy musel udělat, bylo přidat své nové pravidlo do tohoto souboru.

Myslím, že z toho plyne ponaučení, po kontrole obvyklého ufw a iptables-persistent /netfilter-persistent věci, měl bych jen grep -rn iptables-restore /etc/ . Pokud to nic nenajde, je zde také možnost dynamicky přidávat pravidla přes dbus , pokud firewalld je povoleno.


Ubuntu
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Server Ubuntu 14 a Xrdp?

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  3. Nainstalujte vnc server a klienta na Ubuntu

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04

  3. Instalace Nginx na Ubuntu 14.04 a 16.04