web-dev-qa-db-ja.com

ソースIPに応じてFirewalldでポート転送する方法

ポート5678でsshを実行します。

送信元IPアドレス1.2.3.4の場合-ポート22に接続し、ファイアウォールポートを5687に転送します。

他の送信元IPアドレスはポート転送を取得しません。

これを実現するために、どんなfirewall-cmd行を入力しますか?

4
matiu

理解した:

CUSTOMPORT=$(netstat -tlpn | grep 0.0.0.0.*ssh | cut -d: -f2 | cut -f1 -d\ )
SOURCE_IP=1.2.3.4
firewall-cmd --zone=public --permanent --query-masquerade
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --zone=public --permanent --add-rich-rule="rule family=\"ipv4\" source address=\"${SOURCE_IP}\" forward-port port=\"22\" protocol=\"tcp\" to-port=\"${CUSTOMPORT}\""
firewall-cmd --reload
3
matiu

トラフィックを許可するファイアウォールルールを作成し、トラフィックのNATを構成するだけです。基本的に、どのトラフィックが許可されるかを決定するACLを作成し、次に、許可されたトラフィックを変換する必要があることを示すNATルールを作成しています。

firewall-cmd --permanent --zone=public --add-rich-rule="rule 
family="ipv4" \
source address="1.2.3.4/32" \
port protocol="tcp" port="22" accept"
firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=5678:toaddr=*private translated IP address*
firewall-cmd --reload

CentOSのfirewall-cmdで特定のIPアドレスのポートを開く方法

http://www.certdepot.net/rhel7-get-started-firewalld/

4
user5870571