Ssh
iptables 阻止 ssh 到 aws ec2 實例
我有一台執行 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
行不允許我使用 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
最後一條輸出規則將允許與您的主機建立連接。