IPTablesはlocalhostアクセスのみを許可します


58

私はiptablesについてしっかりとした理解を得るために、長年苦労してきました。manページを読み通そうとすると、目がかすみ始めます。

ローカルホストにのみアクセスを許可したいサービスがあります。

localhostホストのみが特定のポートにアクセスできるようにするには、どの用語(または、誰かが寛大だと感じている場合は構成)を使用する必要がありますか?


2
このサービスはどのポートで実行されていますか?
バート・デ・ヴォス

44344、社内で書かれたサービス
iptablessuck

1
「iptablesrules」のニックネームを一時的に変更したいのですが、できません
アートシェイデロフ

@アート、彼らは私がそれらを理解していないために吸うだけです:)
iptablessuck

@iptablessuckは実際に私ができるように見えます。しかし、私はそれを元に戻すことができるかどうかわからないのです。)
アートシェイデロフ

回答:


65

サービスによって特定のポートを意味する場合、次の2行が機能するはずです。「25」を制限しようとしているポートに変更します。

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

1
「localhostからポート25に着信するものはすべて受け入れ、2番目のルールは「ポート25に着信するものをすべてドロップします」と言います。最初の行が最初に処理され、ローカルホストが許可され、他の行は2番目の行でドロップされます。はい?
iptablessuck

そのとおりです!
-Hyppy

4
@Hyppy、これを「元に戻す」方法は?
テスター

10
@tester再びそれらのコマンドを入力し、それに置き換わるもの-A-D
pepoluan

1
@宇宙飛行士は、「sudo service iptables save」と入力して変更を保存します。その後再起動します。あなたは「sudoのiptablesの-L」と入力して、変更が保存されたかどうかを確認することができます
ビニャーヤク

30

私はお勧めします:

iptables -A INPUT -i lo -p tcp --dport $APP_PORT -j ACCEPT
iptables -A INPUT -p tcp --dport $APP_PORT -j DROP

なぜなら、自己アドレス指定されたパケットは、ソースとして必ずしも127.0.0.1を持っているわけではなく、それらはすべてloインターフェイスから「入ります」からです。

さて、最初にすべきことを本当に理解iptablesしたい場合は、netfilterテーブルの関係を説明する適切な図をダウンロードして印刷することです。ここに2つの素晴らしいものがあります:

最後に、多くのiptablesHOWTOを読んでください。実用的な例は、実際の速度にすばやく到達するのに役立ちます:)


ty! loこのリンクから、最後のコマンドを使用して、これらのコマンドを使用した後、私のために現れcyberciti.biz/faq/howto-display-linux-iptables-loaded-rules iptables -L -v -n --line-numbers

2
@Gracchus私は使用することがはるかに容易に見つけるiptables-saveと、それを編集し、出力をファイルに保存、vimまたはemacs、および使用して編集したファイルを再インポートiptables-apply
pepoluan

ユースケースによっては、2番目のルールは黙ってドロップするのではなく、明示的に拒否する必要があると思います。ベストプラクティスとして黙って削除されますか?REJECTは安全に使用できますか?
ドゥームバスター氏15

1
@ tech-proはい、REJECTは安全に使用できます。それはあなたが何を達成しようとしているか、そしてあなたがポートを使用しようとしている人々に礼儀正しくなりたいかどうかに依存します。REJECTは、マシンは起動しているがポートが閉じていることをクライアントに伝えるTCP RSTパケットを送り返します。人々が正当に使用することを期待するかもしれないポートを閉じているなら、REJECTは良いことです。ポートスキャナーのみが必要な場合は、DROPの方が優れています。
法律29

1
@ x-yuriたとえばunbound、の前でDNSキャッシュとして実行していますdnscrypt-proxyunboundにバインドし127.0.53.1:53、にdnscrypt-proxyバインドし127.0.53.2:53ます。アプリがFQDNを解決するために非バインドまたはdnscrypt-proxyを要求する場合、unbound / dnscrypt-proxyが応答する送信元アドレスを推測しますか?
ペポルアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.