IPTables:SSHアクセスのみを許可し、他には何も出入りしない


11

SSH のみを許可し、他のトラフィックの送受信を許可しないようにIPTablesをどのように構成ますか?

誰もが推奨できる安全対策はありますか?

私は、そのサーバー持っていると信じて成功したのGoDaddyから離れて移行されたが、私は信じていません使用されなくなりました。

しかし、私は…あなたが決して知らないからといって確認したいと思います。:)

これはGoDaddyの仮想専用サーバーであることに注意してください...つまり、バックアップも事実上サポートもありません。

回答:


13

INPUTチェーンとOUTPUTチェーンでデフォルトポリシーをDROPに設定するだけです。

SSHを許可するには、次のコマンドが必要です。

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

最後の2つのコマンドは、一部のアプリケーションで正しく機能するために必要なループバックトラフィックを許可します。-s source_ipオプションを使用して、特定のIPからのSSHアクセスを制限できます。

上記の順序でコマンドを実行すると、現在のSSHセッションがハングします。これは、iptablesコマンドがすぐに有効になるためです。それらをリモートで実行するときにマシンに接続できなくなるのを防ぐために、それらをシェルスクリプトで実行する必要があります。


4
--state RELATED最後のルールでは不要です。--state ESTABLISHED十分です また、DNSトラフィックを許可したい場合もあり、おそらくループバックインターフェイスで何でも許可する必要があります。そうしないと、あらゆる種類の動作が非常に奇妙に動作する可能性があります。
MadHatter、2010

@MadHatter:はい、特にループバックについては正しいです:)
Khaled

ありがとう、ファイル全体を取得することはできますか?つまり、/ etc / sysconfig / iptablesに直接コピーして貼り付けることができるものですか?私はこれを十分に経験していないので、直感を信頼して適切な編集を行うことができません。
ディスコ2010

2
ps。最初のコマンドの後で接続の確立が強制的に閉じられます
user956584 '26

3
これらのコマンドの順序を実際に変更する必要があります。ポリシー行は最後の行として表示されます。これをsshセッションにコピーペーストするだけの人はHUPされ、すぐにシャットダウンされます
AndreasT

4

このようなもの:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP

1
そうでは-i loないと思います-s lo。繰り返しになりますESTABLISHEDが、必要なのは州のルールだけ--sport 22であり、おそらくそこにもaがあるはずです。なぜ誰もがそんなに許可しRELATEDたいのですか?
MadHatter、

@MadHatter:バージョン情報:RELATEDping返信やDNS返信など、TCP以外のものの照合に実際に役立ちます。少なくとも、それは私がいつも想定していたことです。
スティーブン月曜日

2
私の信念は、どちらにもマッチしないということです。たとえば、ICMPホスト管理上禁止された応答と一致しますが、それはそれが得られるのと同じくらい役に立ちます。修飾されていない場合は、前の行に関連するトラフィックだけでなく、関連するトラフィックに一致します。
MadHatter

@MadHatter:私はあなたが正しいかどうかを確認するためにいくつかのテストを実行する必要があると思います。私の仮定に挑戦してくれてありがとう。
スティーブン月曜日

はい、ESTABLISHED状態は、UDP DNS応答とICMPエコー応答を照合するために必要なすべてです。
スティーブン月曜日
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.