IPTableを使用してSSHとSMTPを許可するには?

IPTableを使用してSSHとSMTPを許可するには?

定期的にEメールを送信するようにRaspberry Piを設定しました。 24時間インターネットに接続しているため、IPTablesを正しく設定する必要があります。

SSHの受信を許可し、ポート587でSMTP経由で電子メールを送信できるようにしたいと思います。このIPTablesスクリプトを思いついたのですか?そうでなければ、理由を教えてもらえますか?ありがとうございます。

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP

sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 587 -j ACCEPT

ベストアンサー1

このようなiptablesルールはうまく機能します。

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1:156]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT

最初のルールはデフォルトですべての着信接続を削除し、2番目のルールはデフォルトですべての転送を削除し、3番目のルールは出力を受け入れます。なぜ許可されますか? IMHO、出力接続を開くことはあまり安全ではなく、閉じるとファイアウォール構成が少し難しいことがあります。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

関連および設定状態の接続を許可します。

残りは簡単です。

    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
    -A INPUT -j REJECT --reject-with icmp-host-prohibited 
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited 
    COMMIT

22 tcpを許可し、587 tcpを許可し、他のすべての接続を許可しない場合は、ファイルに保存して実行できます

iptables-restore < firewall.file

nmap -sSそしてホストに確認してください

おすすめ記事