Tomcatと2つのMS SQLサーバー(SqlOLD - 192.168.4.23とSqlNew - 192.168.4.28)を持つLinux Webサーバー(CentOS7)があります。古いSQLからのパケットを新しいSQL(ポートtcp / 1433)に転送するには、Webサーバーにルールを追加する必要があります。
固定IPでコンパイルされたWebアプリがいくつかあり、私の方法で再構築できないため、これが必要です。
答え1
これは興味深い質問です。アドレスを書き換える一般的な方法はNATPREROUTING
テーブルを使用することですが、ここでは機能しません。トラフィックは元のWebサーバーに移動せずにあるため、テーブルDNAT
では使用できません。代わりに、これは(NATテーブルですが)チェーンに配置する必要がある非常にまれなケースの1つです。PREROUTING
DNAT
POSTROUTING
DNAT
OUTPUT
iptables -t nat -I OUTPUT -o eth0 --dst 192.168.4.23 -j DNAT --to 192.168.4.28
その後、インターフェイスを介して192.168.4.23に送信されたすべての出力ヘッダーを取得しeth0
(CentOS環境に合わせて調整する必要があるかもしれません)、192.168.4.28に書き換えます。ポート番号しなければならない絶え間ない。カーネルにconntrackモジュールがある場合は、返されたパケットを自動的に書き換える必要があります。
ルールをリストするには、iptables
5つの個別のコマンド(5つのルールセットがある)を実行する必要がありますが、実際にはほとんどの場合、管理したいルールに対して最初の2つのコマンドで十分です。
iptables -nvL # Blocking and permitting packets ("-t filter")
iptables -t nat -nvL # Rewriting packets, eg different destinations
iptables -t mangle -nvL # Not used so often
iptables -t raw -nvL # Used rarely
iptables -t security -nvL # SELinux
ルールを削除するには、ルールを繰り返すか、変更-I
(挿入)または-A
(追加)を-D
(削除)します。
これに関する多くのチュートリアルがありますiptables
。 CentOSを使用しているので、高度なファイアウォールツールを学ぶ価値があることがわかりますfirewalld
(man firewalld
出発点としてリソースを参照し、もちろん多くのGoogle-fuも参照してください)。