iptables는 ssh에서 aws ec2 인스턴스로의 연결을 방지합니다.

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인지 이해할 수 없습니다.

좋아요, 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

마지막 출력 규칙은 호스트에 대한 연결을 허용합니다.

관련 정보