iptablesは、IPアドレス以外からのポート8000​​へのアクセスをブロックします


80

私はiptablesを使ったことがなく、オンラインのドキュメントは少し不透明に見えます。

特定のIPアドレスからのリクエストを除き、サーバーのポート8000​​へのすべてのリクエストをブロックしたいと思います。iptablesを使用してそれを行うにはどうすればよいですか?


2
//、不透明なドキュメントへのリンクを共有していただけませんか?
Nathan Basanese 2015

回答:


149

この質問はサーバー障害に関するものでなければなりません。それでも、TCPについて話していて、許可するIPが1.2.3.4であると仮定すると、次の方法でうまくいくはずです。

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP

3
ここで設定したこのIP /ポート制限を元に戻すにはどうすればよいですか?(将来これを元に戻したい場合)
テスター

4
テスター、これを参照する、ものを削除する- stackoverflow.com/questions/10197405/...
クエスト屋

2
私はこれが比較的古いことを知っています、そしてこれは私が必要としたものを完全に釘付けにしました。とにかく答えが受け入れられたので、特定のIP範囲で同じことをどのように行いますか?ありがとう!:)
jagc 2014年

1
@JiegoCordoviz送信元アドレスにマスクを追加できます。「-s1.2.3.0 / 24」は「1.2.3。」で始まるものから受け入れます。範囲があり、ネットマスクを作成したい場合は、「ネットマスク計算機」を検索してください。
ジョンブライト

17

別の選択肢は;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP

3つのブリッジ仮想マシンが異なる組み合わせで相互にアクセスする必要があるという同様の問題があったので、このコマンドをテストしましたが、うまく機能します。

編集**

フェルナンドのコメントとこのリンクによると、感嘆符(!)は-sパラメータよりも前に配置されます。

sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP

1
ここで、感嘆符(!)を-sパラメーターの前に配置する必要がありますsudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
フェルナンドシルベイラ2016年

ここで感嘆符が何をするのかわかりません。受け入れられた答えよりも良いですか?
aexl

一行を除いてほとんど同じことを@aexl
HRgiger

5

いつでもiptablesを使用してルールを削除できます。ルールがたくさんある場合は、次のコマンドを使用して出力してください。

iptables-save > myfile

vi賞賛ラインからそれらを編集します。「dd」を使用して、不要になった行を削除します。

iptables-restore < myfile and you're good to go.  

ルールをファイルに保存するようにOSを構成しない場合は、起動中にファイルをロードすると、ルールが失われることに注意してください。


3
Debianにはiptables-loadはありませんが、iptables-restore iptables-restore < myfile// wiki.debian.org/iptables
Fedir RYKHTIK 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.