LoginSignup
0
0

More than 1 year has passed since last update.

CentOS7とiptablesで簡単にポートフォワーディングする

Last updated at Posted at 2021-09-27

CentOS7でポートフォワーディングをしたい場合、本来あるべき姿としてはfirewalldを使って対応する方法かと思いますが、firewalldで設定するのが手間だったり(設定に手間を掛けたくない)、VirtuozzoやOpenVZ上のコンテナのような、環境によってfirewalldが利用できない(firewalldするとコンテナがハングアップする等)というケースもあると思います。そのような場合は、iptablesを使うことになります。

iptablesによるポートフォワーディングについて検索してみると、SNATで対応する方法、IPマスカレードで対応する方法が出てきますが、ここではIPマスカレードで対応することにします。なお、IPマスカレードの場合、転送先のホストからは転送元のホストから接続されたように見えます(転送先のホストでは、本来の接続元が何かを確認することはできませんので、その点について理解したうえで利用する必要があります)。

手順

# yum erase -y firewalld
# yum install -y iptables-service
# iptables -t nat -A POSTROUTING -d <転送先FQDN or IPアドレス> -j MASQUERADE
# iptables -t nat -A PREROUTING --dport <転送元ポート番号> --to <転送先FQDN or IPアドレス>:<転送先TCPポート>

なお、IPマスカレードの定義に関しては、各ポートフォワーディングの転送先となるホストが同一セグメント(例えば、10.0.0.1, 10.0.0.2, 10.0.0.3など)であれば、次のように設定することで、転送先を1件ずつ追加する必要がなく、この設定1つのみで済みます。

# iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -j MASQUERADE

設定が問題なければ以下を実行します。

# service iptables save
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0