NICを追加した後、ファイアウォールは突然NATトラフィックをブロックします。

NICを追加した後、ファイアウォールは突然NATトラフィックをブロックします。

以前はネットワークカードを持っていたサーバーが家にいますが、テレビチューナーへの専用リンクを提供するために2番目のネットワークカードを追加しました。

eth0(オンボードNIC)からenp7s0(新しいNIC)とenp9s1(オンボードNICの新しい名前)に変更しました。

すべてのサービスが新しいインターフェイス名を使用するように更新されました。

私のiptablesスクリプトは、アダプタ固有のルールで新しいインターフェイス名を使用するように更新されました(DHCPサーバーとenp7s0のUDPポートを除くすべてがenp9s1を使用)。

ルータの設定は変更されず、MACアドレスも変更されていないため、NICにまだ同じIPアドレスを提供する必要があります。

しかし、すべてがローカルで動作し、突然NATでは何も動作しない理由が混乱しています。ルーターがパケットを転送しているが、サーバーはまだパケットを拒否していることがわかります。一時的にファイアウォールを完全に無効にしても機能しません。私がしたことは、ネットワークカードを追加するだけでした。

もしそうなら、サーバーにNATパケットを再び許可させる方法は何ですか?

添付された内容は私のファイアウォールスクリプトです。

#!/bin/bash

# ============================
#    Command Aliases
#    (for faster typing)
# ============================
ip4='/sbin/iptables'
ip6='/sbin/ip6tables'

# logical interface names
nicmobo='enp9s1'
nicext1='enp7s0'

# ============================
#    Flush rules, delete
#    chains, zero counters
# ============================
$ip4 -F;$ip4 -X;$ip4 -Z
$ip6 -F;$ip6 -X;$ip6 -Z

# ============================
#    Default Rules
# ============================

# ----------------------
#   IPv4
# ----------------------

# Drop all incoming connections by default
$ip4 -P INPUT DROP
$ip4 -P FORWARD DROP
$ip4 -P OUTPUT ACCEPT

# Allow all connections from loopback intrface
$ip4 -A INPUT -i lo -j ACCEPT
# Allow all related/established incoming connections
$ip4 -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# ----------------------
#   IPv6
# ----------------------
# Drop all incoming by default, unrestrict output
$ip6 -P INPUT DROP
$ip6 -P FORWARD DROP
$ip6 -P OUTPUT ACCEPT

# Allow loopback interface
$ip6 -A INPUT -i lo -j ACCEPT

# Reject connection attempt not initiated from the host
# $ip6 -A INPUT -p tcp --syn -j DROP

# Allow return connections initiated from the host
$ip6 -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Acceot ICMPv6 packets
$ip6 -A INPUT -p ipv6-icmp -j ACCEPT


# ============================
#   SSH Connections on mobo
# ============================

# Allow incoming SSH connections on the ssh listening port (currently
# port 22 at the time of writing this)
$ip4 -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ip6 -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# Also allow SSH on 2322 from the local LAN
$ip4 -A INPUT -s 172.26.62.0/23 -p tcp -m tcp -m state --state NEW --dport 2322 -j ACCEPT


# ============================
#   VPN Ports on mobo
# ============================

# Allow L2TP/IPSEC UDP Ports 500, 4500
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 500 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 500 -j ACCEPT
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 4500 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 4500 -j ACCEPT
# Allow inbound TCP 992 for VPN connections
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 992 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 992 -j ACCEPT
# Allow inbound TCP 1194 for TCP openVPN connections
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 1194 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 1194 -j ACCEPT
# Allow inbound UDP 1194 for openVPN connections
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
# Allow inbound TCP 5555 for TCP VPN connections
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 5555 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 5555 -j ACCEPT


# ============================
#   Emby HTTPS Non-standard Port (8920) on mobo
# ============================
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 8920 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 8920 -j ACCEPT


# ===========================
#  HDHomerun Discovery Ports Allow from prvate lan only (second NIC)
# ===========================
$ip4 -i $nicext1 -A INPUT -s 172.27.0.0/28 -p udp -m state --state NEW -m udp --sport 65001 -j ACCEPT


# ===========================
#  Port 80, 443 on mobo
# ===========================
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
$ip4 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
$ip6 -i $nicmobo -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

# ===========================
#  SAMBA on Local NETWORK on mobo
# ===========================
$ip4 -i $nicmobo -A INPUT -s 172.26.62.0/23 -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
$ip4 -i $nicmobo -A INPUT -s 172.26.62.0/23 -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
$ip4 -i $nicmobo -A INPUT -s 172.26.62.0/23 -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
$ip4 -i $nicmobo -A INPUT -s 172.26.62.0/23 -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT

# ===========================
#  Allow DHCP to private LAN (second NIC)
# ===========================
$ip4 -i $nicext1 -A INPUT -s 172.27.0.0/28 -p udp -m state --state NEW -m udp --dport 67 --sport 68 -j ACCEPT


exit 0

要求に応じて、私のip -4パスリストの出力は次のようになります。

default via 172.27.0.14 dev enp7s0 proto static 
default via 172.26.62.1 dev enp9s1 proto dhcp src 172.26.62.30 metric 100 
172.26.62.0/23 dev enp9s1 proto kernel scope link src 172.26.62.30 
172.26.62.1 dev enp9s1 proto dhcp scope link src 172.26.62.30 metric 100 
172.27.0.0/28 dev enp7s0 proto kernel scope link src 172.27.0.14 

また、私のiptables-save -c出力は次のようになります。

# Generated by iptables-save v1.6.1 on Wed May 22 11:26:32 2019
*filter
:INPUT DROP [28356:9869864]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2899:379735]
[894:99268] -A INPUT -i lo -j ACCEPT
[1830:147589] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -s 172.26.62.0/23 -p tcp -m tcp --dport 2322 -m state --state NEW -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p udp -m state --state NEW -m udp --dport 500 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p udp -m state --state NEW -m udp --dport 4500 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 992 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 1194 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 5555 -j ACCEPT
[4:240] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 8920 -j ACCEPT
[0:0] -A INPUT -s 172.27.0.0/28 -i enp7s0 -p udp -m state --state NEW -m udp --sport 65001 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
[0:0] -A INPUT -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
[2:128] -A INPUT -s 172.26.62.0/23 -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
[4:256] -A INPUT -s 172.26.62.0/23 -i enp9s1 -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
[36:3312] -A INPUT -s 172.26.62.0/23 -i enp9s1 -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
[20:4724] -A INPUT -s 172.26.62.0/23 -i enp9s1 -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
[9:2952] -A INPUT -s 172.27.0.0/28 -i enp7s0 -p udp -m state --state NEW -m udp --sport 68 --dport 67 -j ACCEPT
COMMIT
# Completed on Wed May 22 11:26:32 2019

私のデフォルトパスが問題だと思います。しかし、どのように修正して持続させることができますか?

--- EDIT 5/22/19 07:40am CDT --- 1つのNICであるenp7s0は、インターネットアクセスなし(NATは不要)で新しい/ 28 LANを作成するために使用されるアダプタです。 172.27.0.0/28 ネットワークをホストします。また、私が使用しているデバイスが静的IPをサポートしていないため、DHCPサーバーも実行します(DHCP構成でアドレス予約を介して設定しました)。他のネットワークカードであるenp9s1には、DHCPクライアント、インターネットアクセス、およびすべての「一般」機能があります。他のネットワークカードのデフォルトパスを完全にクリアする必要があるようです。

enp7s0のデフォルトパスを削除し、リモートでサーバーにアクセスでき、他のすべてがまだ機能していることを確認しました。今すぐ再起動し、自動的に再追加されることを確認してください。もしそうなら、そうではありません。

答え1

そして、私はすでにLinuxについて多くを知っていて、まだ学ぶことがたくさんあります...

netplan設定ファイル(Ubuntuでifupdownを置き換えるプログラム)を編集し、新しいNICからゲートウェイを削除する必要がありました。習慣的に必要だと思いますが、インターネットにアクセスできないため、ゲートウェイは必要ありません。

これはシェルで...

nano /etc/netplan/01-netcfg.yaml

最後の行を削除します。

# This file describes the network interfaces available on your system
# For more information, see netplan(5).

#enp9s1 - onboard adapter
#enp7s0 - addon nic


# old config
# (Commented out old config)
# end old config

# begin new config

network:
  version: 2
  renderer: networkd
  ethernets:
    enp9s1:
      dhcp4: yes
    enp7s0:
      dhcp4: no
      addresses: [172.27.0.14/28]
      gateway4: 172.27.0.14

これにより、不要な静的パスが生成されるのを防ぎます。

その後、2つのコマンドをさらに実行しましたが、最初のコマンドはすべての設定ファイルを生成しました(netplanで発生したすべてを調べたわけではありませんが必要です)。 2 つ目は、再起動せずにシステムに変更を適用し、プロファイルと一致するようにすべてのネットワーク設定を変更します。この場合、デフォルトゲートウェイは削除されます。

netplan generate
netplan apply

その後、再起動では設定ファイルが使用され、ルーティングは変更されていません。

今すぐ再起動するたびに、私のパスは次のようになります。

default via 172.26.62.1 dev enp9s1 proto dhcp src 172.26.62.30 metric 100 
172.26.62.0/23 dev enp9s1 proto kernel scope link src 172.26.62.30 
172.26.62.1 dev enp9s1 proto dhcp scope link src 172.26.62.30 metric 100 
172.27.0.0/28 dev enp7s0 proto kernel scope link src 172.27.0.14 

関連情報