定期的に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
そしてホストに確認してください
答え2
これらのコマンドを使用するのが不便な場合は、他のコマンドを使用することもiptables
できます。UFW
UFWはSimple Firewallの略でiptablesより使いやすいツールです。
ufw
Raspberry Piにインストールします。
sudo apt-get install ufw
ufwをインストールしたら、次のコマンドを使用してデフォルト値を設定できます。
sudo ufw default deny incoming && sudo ufw default deny outgoing
これにより、接続を試みるすべての要求が拒否され、すべての発信要求も拒否されます。これはもう少し制限がある場合に最適です。
許可するssh
存在するする:
sudo ufw allow in 22
許可する587
出るする:
sudo ufw allow out 587
詳細については、man ufw
より多くの例とよく説明されているものをご覧ください。