ufw가 ssh를 허용하면 연결이 끊어집니다.

ufw가 ssh를 허용하면 연결이 끊어집니다.

SSH를 통해 클라우드에 Debian 서버를 설정하려고 합니다. 키를 사용하여 로그인합니다.

초기 부팅 후 UFW를 설정하고 싶습니다:

apt-get install ufw
ufw allow ssh
ufw enable

SSH를 통해 로그인할 때 사용했던 작업입니다. 그런데 이 서버에서는 연결이 끊어져서 잠긴 것 같습니다. 나는 그것을 두 번 시도했습니다. 어쩌면 내가 뭔가를 간과하고 있을지도 모르지만 이것이 그렇게 하는 방법이라고 생각합니다. 여기서 무슨 일이 일어나고 있는 걸까요? 왜 이것이 작동하지 않습니까?

참고: cronjob을 통해 15분마다 ufw를 비활성화할 수 있다는 것을 깨달았습니다. 이를 통해 테스트가 가능해지고 시도가 실패한 직후에 시스템에 액세스할 수 있습니다.


고쳐 쓰다

아래는 내용입니다 /lib/ufw/user.rules. user6.rules 파일에도 비슷한 내용이 있습니다.

*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-logging-deny - [0:0]
:ufw-logging-allow - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###

### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 22 -j ACCEPT

### END RULES ###

### LOGGING ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m state --state INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###

### RATE LIMITING ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT
-A ufw-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT

다음 명령은 아직 규칙이 없기 때문에 오류가 발생합니다. UFW를 설치한 후 이런 일이 발생합니다.

ufw insert 1 allow 22/tcp
ERROR: Invalid position '1'

답변1

명령을 실행한 후 이 명령을 실행하면 규칙이 실제로 적용되어 있고 다른 어떤 것도 규칙을 차단하지 않는지 확인할 수 있습니다(이렇게 하려면 연결되어 있고 방화벽이 실행 중이어야 합니다. 콘솔을 통해 들어가 규칙이 규칙을 방해하지 않는지 확인하세요). SSH를 통해 테스트할 때 쫓아내세요):

ufw status

문제를 해결하려면 다음 명령을 시도해 보는 것이 좋습니다.

ufw insert 1 allow 22/tcp

이렇게 하면 방화벽 테이블 규칙 세트의 맨 위에 규칙이 추가되어 어디에서나 SSH 연결을 허용합니다. 또는 보안 관점에서 더 나은 IP 기반 제한이 포함될 수 있습니다.

ufw insert 1 allow from <YOUR IP> proto tcp to any port 22

그러면 IP에서 SSH를 통한 연결만 허용하는 규칙이 추가됩니다.

규칙을 맨 위에 배치하는 이유는 문제를 일으킬 수 있는 거부 규칙을 회피하기 위한 것입니다. SSH가 설치되어 실행되고 있는지 확인하는 것도 좋습니다.

apt-get install openssh-server
service ssh start

관련 정보