ゾーン間ファイアウォール転送は機能しません。

ゾーン間ファイアウォール転送は機能しません。

NATネットワーキングを使用するように構成された複数の仮想マシンを実行するcentos 7 kvmハイパーバイザーがあります。

これらの仮想マシンはサービスを実行し、そのうちのSSHが管理目的で最も重要です。 Firewalldを使用して仮想マシンに転送されるハイパーバイザーのポートを割り当てたいと思います。

私のハイパーバイザーには次のインターフェースがあります。

3: wlp8s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 94:0c:6d:c4:b8:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.30/24 brd 192.168.1.255 scope global dynamic wlp8s1
       valid_lft 2627sec preferred_lft 2627sec
    inet6 2a02:a03f:268e:3e00:960c:6dff:fec4:b812/64 scope global noprefixroute dynamic
       valid_lft 345640sec preferred_lft 345640sec
    inet6 fe80::960c:6dff:fec4:b812/64 scope link
       valid_lft forever preferred_lft forever
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 52:54:00:64:af:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

wlp8s1virbr0kvms内部ネットワークインターフェイスであるホームネットワークに接続するワイヤレスインターフェイス。

IPv4転送を有効にする:

firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.122.13

私は2つの領域を使用しています:externaldmz

dmz
  interfaces: virbr0
external
  interfaces: wlp8s1

仮想マシンの1つは、次のネットワーク構成を持つデータベースサーバーです。

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:df:79:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.13/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 2634sec preferred_lft 2634sec
    inet6 fe80::5054:ff:fedf:791e/64 scope link
       valid_lft forever preferred_lft forever

ポート22でリッスンするsshdを実行します。

# systemctl status sshd
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2016-05-22 20:08:45 CEST; 45min ago
...

# ss -ntl
State       Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
LISTEN      0      128                             *:22                                          *:*
LISTEN      0      128                            :::22                                         :::*

そこで、次のチュートリアルと公式文書を試してみましたが、これにより(ハイパーバイザーで)次のコマンドチェーンを見つけることができました。

# firewall-cmd --zone=external --add-port=2022/tcp
success
# firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.122.13
success

しかし残念ながら(私のホームネットワークに接続されているラップトップから):

$ ssh 192.168.1.30 -p 2022
ssh: connect to host 192.168.1.30 port 2022: Connection refused

私がテストしたもの:

私のラップトップで発行されたときのTCPダンプssh 192.168.1.30 -p 2022

ハイパーバイザーから:

# tcpdump -i wlp8s1 port 2022
21:02:50.661181 IP laptop.38052 > hypervisor.down: Flags [S], seq 885834855, win 29200, options [mss 1460,sackOK,TS val 4732781 ecr 0,nop,wscale 7], length 0

仮想マシンからパケットは受信されません。

ハイパーバイザーからVMへのSSH経由で接続できます。

Firewalld転送コマンドを次のように変更した場合:

firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.1.30

ポート 2022 を使用してハイパーバイザーに SSH で接続できます。地域と関連があるという意味ですか?


私がテストできる助けや追加は大いに感謝します!ありがとうございます!


ポリスチレン

ファイアウォールが破損していることを示す同様の質問を見つけました。 Fedora 21は、ポート転送にファイアウォール(firewall-cmd)を使用します。正確にどのように動作しますか?それともそうでしょうか?

しかし、私が提供したい追加情報が与えられたら、ここで解決策を見つけることができることを願っています:).

ベストアンサー1

確認したいいくつかの構成があります。カーネルex =>net.ipv4.ip_forward=1でIP転送をオンにしましたか/etc/sysctl.conf

また、マスカレーディングをイネーブルにするには、次のコマンドを実行する必要があります。

firewall-cmd --zone=external --add-masquerade

おすすめ記事