私はWindows7を実行している自宅のラップトップを持っており、Ubuntuを実行しているAmazon awsec2インスタンスをセットアップしました。 UbuntuインスタンスのパブリックIPアドレスは34.195.109.193です。 PuTTYを使用してec2インスタンスにSSH接続します。次のようにUbuntuインスタンスでiptablesルールを設定すると、sshを使用してUbuntuec2インスタンスにアクセスできなくなることがわかりました。
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の入出力を許可するようにセキュリティグループを設定しました。Sudoiptables-AINPUT-d 34.195.109.193 -p tcp --dport 22 -jACCEPTの理由がわかりません。
行では、PuTTYを使用してsshを実行できません。
この行を変更する必要があります
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
最後の出力ルールは、ホストへの確立された接続を許可します。