web-dev-qa-db-ja.com

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

only SSHを許可し、他のトラフィックを許可しないor outようにIPTablesをどのように構成しますか?

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

私はbelieveがGoDaddyから正常に移行され、私がbelieveは使用されていません。

しかし、私が確認したいのは...あなたが決して知らないからです。 :)

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

11
Disco

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コマンドがすぐに有効になるためです。それらをリモートで実行するときにマシンに接続する機能が失われるのを防ぐために、それらをシェルスクリプトで実行する必要があります。

13
Khaled

このようなもの:

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
4
Mikel