그래서 최근 RetroPie Debian 기반 이미지를 사용하여 작은 열정 프로젝트를 진행하기 위해 Raspberry Pi를 구입했습니다.
이제 특정 연결만 허용하도록 서버를 완전히 차단하고 싶은 단계에 이르렀습니다. 내 사용 사례의 경우 다음과 같습니다.
- 서버와 동일한 네트워크의 인바운드 SSH 연결만 허용
- 특정 IP에 대한 아웃바운드 연결만 허용
ufw
이를 달성하기 위해 저는 인바운드/아웃바운드 연결 설치 및 구성과 hosts.allow
추가 보안이라는 두 가지 접근 방식을 취했습니다 hosts.deny
.
이것은 내 현재 설정입니다.
hosts.allow
sshd: LOCAL
sshd: 192.168.1.0/255.255.255.0 # allow ssh from local network IPs only
sendmsg: 8.8.8.8 # allow ping google DNS to validate internet connectivity
hosts.deny
sshd: ALL
ufw:
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN 192.168.1.0/24 # from local
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
140.82.121.4 443/tcp ALLOW OUT Anywhere # to github
46.235.231.151 80/tcp ALLOW OUT Anywhere # to raspberry registry
93.93.128.193 80/tcp ALLOW OUT Anywhere # to raspberry registry
XX.XX.XXX.XXX 443/tcp ALLOW OUT Anywhere # to specific IP
현재 무슨 일이 일어나고 있는지는 서버가 재부팅될 때마다 현재 IP가 .인 내 컴퓨터(Raspberry PI와 동일한 네트워크에 있음)에서 SSH를 통해 연결할 수 없다는 것입니다. 192.168.1.65
동적일 수 있지만 결코 연결되지 않습니다. IP 범위에 특정 IP를 남겨두지 마십시오 hosts.allow
.
sudo systemctl stop ufw
서버를 다시 시작할 때마다 SSH 연결을 사용할 수 있도록 키보드를 사용하여 Pi에 수동으로 연결해야 하지만왜ufw
로컬 IP 범위의 포트 22에서 TCP 연결을 허용하도록 인바운드 규칙을 설정하면 어떻게 됩니까 ? 여기서 뭔가 빠졌나요?
미리 감사드립니다.
답변1
PasswordAuthentication no
이것이 왜 문제를 해결했는지는 모르겠지만, 비활성화 PermitEmptyPasswords no
하고 기본적으로 ssh에 대한 키 인증을 강제한 후에는 제대로 작동하는 것 같습니다.
원래 게시된 문서에는 변경 사항이 없습니다 hosts.*
.
또한 변경 사항을 실행 sudo systemctl restart sshd
하고 sudo systemctl restart ufw
새로 고칩니다. 시스템을 다시 시작하면 이제 생성된 개인/공개 키 쌍을 사용하여 로그인할 수 있습니다.