centos7 ファイアウォール cmd ホスト間のポート転送

1.ファイアウォール

1.1 ファイアウォールデーモン

firewall-cmd コマンドを使用するには、firewalld プロセスが実行されている必要があります。systemctl status/start/stop/restart firewalld を使用してこのデーモンを制御できます。firewalld プロセスは、ファイアウォールにサービスを提供します。

特定の構成を変更した場合 (特に構成ファイルの変更)、ファイアウォールはすぐには有効になりません。最新の設定を有効にするには、systemctl restart firewalld と firewall-cmd --reload の 2 つの方法があり、前者は firewalld サービスを再起動する方法で、後者の「設定ファイルの再読み込み」を使用することをお勧めします。設定ファイルを再読み込みしても、接続されている TCP セッションは切断されませんが、サービスを再起動すると TCP セッションが切断されます。

1.2 制御ポート/サービス

ポートの開放は、ポート番号を指定する方法とサービス名を指定する方法の 2 通りの方法で制御できます。http サービスをオープンするということはポート 80 をオープンすることを意味しますが、ポート番号でクローズすることはできません。つまり、サービス名を指定してオープンした場合はサービス名を指定してクローズする必要があり、HTTP サービスをオープンした場合はサービス名を指定してクローズする必要があります。ポート番号を指定する場合は、指定したポート番号でクローズする必要があります。もう 1 つ注意すべき点は、ポートを指定するときに、プロトコル (tcp または udp) を指定する必要があることです。これを理解すると、毎回最初にファイアウォールをオフにする必要がなくなり、ファイアウォールを真に効果的にすることができます。

firewall-cmd --add-service=mysql # 开放mysql端口
firewall-cmd --remove-service=http # 阻止http端口
firewall-cmd --list-services  # 查看开放的服务
firewall-cmd --add-port=3306/tcp # 开放通过tcp访问3306
firewall-cmd --remove-port=80tcp # 阻止通过tcp访问3306
firewall-cmd --add-port=233/udp  # 开放通过udp访问233
firewall-cmd --list-ports  # 查看开放的端口

1.3 IPの偽装

ファイアウォールはIPマスカレードの機能を実現することができ、以下のポートフォワーディングはこの機能を利用します。

firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

1.4 ポートフォワーディング

ポート フォワーディングは、指定されたアドレスが指定されたポートにアクセスするときに、指定されたアドレスの指定されたポートにトラフィックを転送できます。転送目的が指定されていない場合は、デフォルトでローカル マシンが使用されます。IP が指定されているがポートが指定されていない場合は、デフォルトで送信元ポートが使用されます。

ポート転送を構成した後に使用できない場合は、次の 2 つの問題を確認できます。

  • たとえば、ポート 80 をポート 8080 に転送する場合、まずローカル ポート 80 とターゲット ポート 8080 が監視用に開いているかどうかを確認します。
  • 次に、偽装 IP が許可されているかどうかを確認し、許可されていない場合は偽装 IP を有効にします。
# 将80端口的流量转发至8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
# 将80端口的流量转发至
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.0.1192.168.0.1
# 将80端口的流量转发至192.168.0.1的8080端口
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080
  • 特定のポートを非表示にしたい場合は、ファイアウォール上でそのポートへのアクセスをブロックしてから、不規則なポートを開いて、トラフィックを転送するようにファイアウォール上でポート転送を構成します。
  • ポート転送はトラフィック分散にも使用でき、ファイアウォールはさまざまなサービスを実行している多数のマシンをドラッグし、ファイアウォールを使用してさまざまなポートからさまざまなマシンにトラフィックを転送します。

2.ケース

要求用户访问ServerA主机的80端口流量都转发到ServerB,即用户访问ServerA时,实际是在访问ServerB
ServerA:CentOS Linux release 7.6.1810 (Core) 
ServerB:CentOS Linux release 7.6.1810 (Core) 

2.1 サーバーAの構成

ファイアウォールがオンになっていない場合は、オンにする必要があります

[root@servera ~]# systemctl start   firewalld

ここに画像の説明を挿入します

2.2 nginx テストのインストール (オプション)

yum を設定します。yum を使用して nginx をインストールできます。

[root@servera ~]# vi /etc/yum.repos.d/ngin.repo 
[nginx]
name=aliyun epel
baseurl=http://mirrors.aliyun.com/epel/7Server/x86_64/
gpgcheck=0

yumインストールnginx

[root@servera ~]# yum install -y nginx

編集ページが表示され、ホストの表示が異なります。

[root@servera ~]# vi /usr/share/nginx/html/index.html 
[root@servera ~]# systemctl start nginx 

ここに画像の説明を挿入します

2.3 ポートを開く

永続的に有効にするには、-permanent を追加します
ここに画像の説明を挿入します

アクセステスト
ここに画像の説明を挿入します

2.4 IPの偽装

最初にポート転送を有効にする必要があります

[root@servera ~]# firewall-cmd --permanent --add-masquerade

ここに画像の説明を挿入します

2.5 ポートフォワーディング

このマシンのポート 80 にアクセスするトラフィックを 10.5.80.106 のポート 80 に転送します。

[root@servera ~]# firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toport=80:toaddr=10.5.80.106
[root@servera ~]# firewall-cmd --reload
查看结果
[root@servera ~]# firewall-cmd --list-all

ここに画像の説明を挿入します

2.6 サーバーBの構成

nginxのインストールは省略していますので、本機でファイアウォールを開く必要はありません。

2.7 nginxページの表示内容を変更する

[root@serverb ~]# vi /usr/share/nginx/html/index.html 
[root@serverb ~]# systemctl start nginx 

ここに画像の説明を挿入します

2.8 サーバーBにアクセスする

ここに画像の説明を挿入します

2.9 サーバーAにアクセスする

ここに画像の説明を挿入します

要件が完了しました!

おすすめ

転載: blog.csdn.net/tladagio/article/details/130382718