보안상의 이유로 GCP에서 가상 머신의 포트 22(ssh)를 닫고 싶습니다. 현재 명령을 실행하면 telnet xx.xx.xxx.xxx 22
서버가 응답합니다.
Trying xx.xx.xxx.xxx...
Connected to xx.xx.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
가상 머신에 접속하기 위한 방화벽 규칙을 올바르게 구성하려고 했습니다. "default-allow-ssh" 규칙의 대상에서 "apply to all"을 제거하고 가상 머신과의 접속을 거부하는 "close-ssh"라는 규칙을 생성했습니다. machine 0.0.0.0/4부터 시작하는 시스템의 모든 연결 포트 22입니다.
명령을 통해 구성을 확인하고 sudo iptables -L
포트 22를 노출하는 규칙이 있는지 확인했습니다.
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DOCKER-USER all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
DOCKER all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain DOCKER (3 references)
target prot opt source destination
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target prot opt source destination
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
DOCKER-ISOLATION-STAGE-2 all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (3 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
RETURN all -- anywhere anywhere
Chain DOCKER-USER (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
명령을 실행하면 nmap -p 22 xx.xx.xxx.xxx
다음과 같은 출력이 나타납니다.
Starting Nmap 7.80 ( https://nmap.org ) at 2023-05-10 09:56 -03
Nmap scan report for xx.xx.xxx.xxx.bc.googleusercontent.com (xx.xx.xxx.xxx)
Host is up (0.32s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.67 seconds
답변1
방화벽 규칙은 목록의 위에서 아래로 처리됩니다. GCP VM에서 첫 번째 규칙은 SSH를 허용합니다. 필터링 중에 패킷이 규칙(또는 ACL)과 일치하면 패킷이 처리되고 목록에 있는 다른 규칙을 더 이상 통과하지 않습니다. "close-ssh" 규칙은 "default-allow-ssh" 위에 배치되어야 합니다.