Windows 7を実行している家庭用ラップトップがあり、Ubuntuを実行するAmazon aws ec2インスタンスを設定しました。 UbuntuインスタンスのパブリックIPアドレスは34.195.109.193です。 PuTTYを使用してSSHを介してec2インスタンスに接続しています。 Ubuntuインスタンスで次のようにiptablesルールを設定すると、sshを使用してUbuntu ec2インスタンスにアクセスできないことがわかりました。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -d 34.195.109.193 -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -j DROP
ポート22でSSHの入出力を許可するようにセキュリティグループを設定しました。なぜsudo iptables -A INPUT -d 34.195.109.193 -p tcp --dport 22 -j ACCEPTなのかわかりません。
さて、SSHでPuTTYを使用しないようにします。
答え1
この行を変更する必要があります
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
到着
sudo iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ルールは、確立された(syn-ack)接続と関連する接続のみと一致し、新しい(syn)接続は一致しないためです。
したがって、ルール全体は次のようになります。
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -d 34.195.109.193 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -j DROP
sudo iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -j DROP
最後の出力ルールはホストへの接続を許可します。