質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1584閲覧

iptablesのnat設定

vpstyle00

総合スコア5

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2020/02/21 01:26

編集2020/02/22 08:30

iptablesでポート制御

A→LinuxサーバY→別サーバZ(外部)

AからZへの通信時、
Yをかまして通信制御を実装中です。
サーバY(110.20.30.100)でのiptables設定で詰まっております。
AからサーバZへの接続ポート4000番とDNS53番は転送設定として
それ以外のポートは、サーバYで止める処理を想定してます。

質問不明点は、
4000と53とssh系は常時OKとして、
それ以外を3000番に寄せるようにしたいです。
が、これが実現できません。
natのPREROUTING 1文を設定しなければZまで届きますが、
設定を入れるとZまで届かない通信となります。

アドバイス頂けましたら幸いです。
宜しくお願いいたします。

コマンド

/sbin/iptables -t filter -F /sbin/iptables -t filter -Z /sbin/iptables -t filter -X /sbin/iptables -t nat -F /sbin/iptables -t nat -Z /sbin/iptables -t nat -X /sbin/iptables -t mangle -F /sbin/iptables -t mangle -Z /sbin/iptables -t mangle -X /sbin/iptables -P INPUT ACCEPT /sbin/iptables -P OUTPUT ACCEPT /sbin/iptables -P FORWARD DROP /sbin/iptables -A FORWARD -i eth0 -p tcp --dport 4000 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp --sport 4000 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp --dport 53 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p tcp --sport 53 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp --dport 53 -j ACCEPT /sbin/iptables -A FORWARD -i eth0 -p udp --sport 53 -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -t nat -A PREROUTING -p tcp -m multiport ! --dports 20:23,53 -i eth0 -j DNAT --to 110.20.30.100:3000

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2020/02/22 08:28

DNAT 設定しなくても A から Y を経由して Z まで(ルーティング設定で)届くのですか? であれば、DNAT 不要で、FORWARD で制限すればいいのでは?
vpstyle00

2020/02/22 08:34

コメント有難うございます! はい、DNATのコマンド無い場合はすんなり繋がります。 まだ無知なもので、FORWARD設定のみで指定外からのポートでアクセス時に一律3000番に寄せることもできるのでしょうか? DNATを使わないと想定する3000番に一律寄せることができないものと思っていたので…
guest

回答1

0

ベストアンサー

LinuxサーバY はルーターで、A のデフォルトゲートウェイになっていると仮定します。

それ以外を3000番に寄せるようにしたいです。

Y の TCP 3000 番ポートであれば、REDIRECT を使うといいと思います。

iptables -t nat -I PREROUTING -p tcp -s <AのIPアドレス> -m multiport ! --dports 20:23,53,4000 -i eth0 -j REDIRECT --to-port 3000

投稿2020/02/22 15:24

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vpstyle00

2020/02/23 13:07

都度のコメント有難うございます! REDIRECTが使えるのですね! 出先で明後日に触れるのですが、 整理させて頂きますと以下の認識でよろしいものでしょうか? ・Yへの20〜23,53,4000番以外のアクセスを、Yの3000番へ誘導させる。 リダイレクト時はPOSTROUTINGについては加味する必要なしなのでしょうか…? また、今回のようにアドレス, ポート変換させて先へ通さないケースではリダイレクトによる制御が有効と認識できました。
TaichiYanagiya

2020/02/24 06:14

> ・Yへの20〜23,53,4000番以外のアクセスを、Yの3000番へ誘導させる。 Y 宛を含めて、Y を経由するアクセスが対象です。 Z へのアクセスを制御したいのでは? Y はルーターではなく、Z のプロキシ (A から Y のアドレスにアクセス) なのでしょうか? だとすると話が変わってきます。 > リダイレクト時はPOSTROUTINGについては加味する必要なしなのでしょうか…? 具体的にどういうことでしょうか? 質問文にはない POSTROUTING 設定があるということでしょうか?
vpstyle00

2020/02/25 01:37

失礼いたしました。 問題はご指摘の通り、「Yのルーター経由によるZへの通信制御」です。 横道はずれた端的な疑問でした。 リダイレクトによる制御が確認できましたこともご報告させていただきます。 大変ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問