以前はネットワークカードを持っていたサーバーが家にいますが、テレビチューナーへの専用リンクを提供するために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