내 서버에 연결하려는 악의적인 시도를 효율적으로 처리할 수 있는 방법이 있는지 알고 싶습니다. 앞서 언급했듯이 /var/log/auth.log
로그인된 것처럼 보이도록 노력하세요 Connection closed by IPaddress port XXX [preauth]
.
추가 정보 sshd_config
:
- 비밀번호 로그인이 비활성화되었습니다
MaxAuthTries 3
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
DenyUsers pi admin ubuntu
질문의 첫 번째 부분은 다음과 같습니다.이러한 시도를 차단해야 합니까?
대략 몇 초마다 한 번씩 시도됩니다. 이러한 시도는 다른 IP에서 발생합니다. (성공하지 않고 여러 번 로그인을 시도하는 IP를 처리할 수 있습니다.)제 생각에는), 연결 시도 횟수가 많아 다소 골치 아픈 것 같습니다.
한 가지 조건은 SSH를 통해 서버에 연결하기 위해 특정 IP만 화이트리스트에 추가하고 싶지 않다는 것입니다.
지금만약에나차단해야한다이러한 시도에 대해 어떻게 대처할 것인지에 대한 몇 가지 제안을 듣고 싶습니다(Fail2ban을 제외해주세요).
매우 감사합니다!
답변1
공개 키 인증으로만 제한한다면 괜찮을 것입니다. (이것은 또한 켜야 함을 의미합니다 ChallengeResponseAuthentication
.) 추가 보안을 위해 no
끌 수도 있습니다.PermitRootLogin
제가 운영하고 있는 서버는 항상 검사를 하고 있는데, 제 키도 없고, 비밀번호 인증도 켜져 있지 않고, 물리적으로 접속이 불가능하기 때문에 걱정하지 않습니다.
원하는 경우 Fail2ban과 같은 것을 사용할 수 있지만 필수는 아닙니다. 약간의 로그 노이즈를 감수할 수 있다면 무시하십시오. 분명히 관심이 없는 문제 당사자나 네트워크(예: 가본 적 없는 국가의 통신)가 큰 문제인 경우 수동으로 방화벽에 추가할 수도 있습니다.
답변2
VPN이 최고의 조언입니다. VPN 서버 배치(오픈VPN예를 들어) SSH 서버와 인터넷 사이. 서버가 집에 있든 클라우드에 있든 이는 매우 간단합니다. SSH 서버는 SSH 연결을 위해 개인 IP에서만 수신 대기합니다. VPN 서버는 인터넷(1194/UDP, 943/TCP 또는 443/TCP)에 노출됩니다. OpenVPN은 매우 유연하며 인증을 위해 인증서를 사용할 수 있습니다(비밀번호 방지).
이는 대상 SSH 서버에 액세스하기 전에 VPN에 연결해야 함을 의미합니다. 또한 보안상의 이유로 VPN 서버의 SSH는 개인 IP를 통해 액세스할 수 있어야 합니다. 즉, 관리를 위해 VPN 서버에 SSH로 연결하려면 먼저 VPN에 연결해야 합니다. 그러나 문제가 발생하면 자신을 폐쇄할 위험이 있습니다.
계획 B는 sshd_config
파일의 사용자를 화이트리스트에 추가하고 SSH 키만 사용하여 인증하도록 하는 것입니다. 매개변수 사용사용자 허용 또는 그룹 허용. 신성한 목록에 없는 사람들은 SSH 액세스가 거부됩니다.
플랜 C가 활성화되었습니다이중 인증(2FA)화이트리스트에 등록된 사용자는 액세스 권한을 얻으려면 2FA 코드를 입력해야 합니다.