参考資料:
「NATとしてのUbuntuファイアウォールIP転送、イントラネットクラスター共有ネットワーク(シンプル)」
「focal(8)ufw-framework.8.gz manual」
プロジェクトでは、ルーターが外部ネットワークへのNAT共有アクセスと内部ネットワークへのポートマッピングアクセスを実現する必要があります。ubuntu20.04サーバーを使用してufwファイアウォールを使用するだけです。機能を実現します。
1つの需要
ハードウェア:少なくとも2つのネットワークポートを備えたサーバー
ソフトウェア:ubuntu 20.04 + ufw
用語の説明:
ip camouflage:ubuntuでは、natはip camouflageと呼ばれ、「内部ネットワークポートeno1(10.0など)からのプライベートネットワークアドレスを許可することを意味します。 0.0 / 20)コンピューターは外部ネットワークポートeno2で単一のIPアドレスを共有します "
ポートリダイレクト:外部ネットワークポートeno2のポートを内部ネットワークアドレス10.0.0.Xにあるポートに転送します。たとえば、tcpを転送します。 10.0.0.3のWebサーバーへの外部ネットワークポートeno2のポート80。
2 UFWの基本操作:
2.1現在のステータスとファイアウォールルールを表示する
ufw status #Status: active 服务激活;如果没有配置规则,将不显示防火墙规则
2.2デフォルトのアクションを設定する
ufw default allow/deny #对未配置的端口执行默认允许/拒绝动作
2.3ポートを許可/拒否するルールを追加する
ufw allow 22/tcp #允许 22 tcp封包;还可以换成 22/udp,表示允许22端口 udp封包
ufw deny 22 #拒绝 22 端口 (udp+tcp)
2.4ポートを許可/拒否するためのルールを削除します
ufw delete allow/deny 20 #删除规则同添加一致 添加 22/tcp就删除 22/tcp,不能删除 22
2.5ファイアウォールの有効化/無効化/再読み込み
ファイアウォールサービスを開始する前に22 / tcpアクセス許可ルールを設定するには、sshを介したリモート接続をお勧めします
ufw enable/disable/reload
3ファイアウォール構成の転送
3.1最初にシステムのIP転送をオンにします
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 #增加或修改该字段,值设为1
3.2効果的
sysctl -p
3.3ファイアウォール転送の設定(2つの構成ファイルの
変更)3.3.1 / etc / default / ufwの変更
vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT" #该值设为ACCEPT
注:
#デフォルトルールのコンテンツはすべて* filter…COMMITに含まれています
#次のコンテンツを追加する場合、* nat…COMMITを* filter…COMMITに配置できないことに注意してください
#10.0.0.0 / 20はイントラネットネットワークセグメントです
3.3.2 / etc / ufw / before.rulesを変更する
vim /etc/ufw/before.rules
#在末尾增加以下字段
*nat
:PREROUTING - [0:0]
:POSTROUTING - [0:0]
-A POSTROUTING -s 10.0.0.0/20 -o eno2 -j MASQUERADE
COMMIT
3.3.3ファイアウォールを再起動して成功
ufw disable
ufw enable
4ポートリダイレクションを設定します。
4.1外部ネットワークポートeno2のtcpポート80を10.0.0.3のWebサーバーに転送します。
4.1.1 / etc / ufw / sysctl.confを編集します
vim /etc/ufw/sysctl.conf
net.ipv4.ip_forward=1
4.1.2 /etc/ufw/before.rulesを編集し、natセクションに追加します
vim /etc/ufw/before.rules
-A PREROUTING -p tcp -i eno2 --dport 80 -j DNAT --to-destination 10.0.0.3:80
4.1.3ufwルールを追加する
ufw route allow in on eno2 to 10.0.0.3 port 80 proto tcp
ufw allow 80
eno2ポートから着信し、上記のufwによって追加された10.0.0.3ポート80に転送されたデータを削除します。eno2ポート
ufw route delete allow in on eno2 to 10.0.0.3 port 80 proto tcp
から着信してホスト10.0.0.3ポート22に転送されたデータを拒否します。
ufw route reject in on eno2 to 10.0.0.3 port 80
4.1.4ufwを再起動します
ufw reload
4.2ポート62022を10.0.0.3のポート22に転送します。4.2.2/ etc / ufw / before.rulesを
編集して、NATセクションに追加します。
-A PREROUTING -p tcp -i eno2 --dport 62022 -j DNAT --to-destination 10.0.0.3:22
4.2.3ufwルールを追加する
ufw route allow in on eno2 to 10.0.0.3 port 22
ufw allow 62022
4.2.4ufwを再起動します
ufw reload
5sshポートを64422に変更します
5.1 / etc / ssh / sshd_configを変更します
vim /etc/ssh/sshd_config
port 22
port 64422
5.2sshサービスを再起動します
service ssh restart
5.3ufwを変更する
ufw allow 64422
5.4ufwを再起動します
ufw reload
5.5sshの新しいポート644225.5
成功後に/ etc / ssh / sshd_configを変更する
vim /etc/ssh/sshd_config
#port 22
5.6sshサービスを再起動します
service ssh restart