답변:
가장 가능성이 높은 이유는 사람들이 찾은 SSH 로그인을 무작위로 무차별 적으로 시도하는 것을 어렵게 만드는 것입니다. 내 인터넷 연결 시스템은 기본 SSH 포트를 사용하고 내 로그는 다음과 같은 내용으로 채워졌습니다 (실제 로그 파일에서 발췌).
sshd[16359]: Invalid user test from 92.241.180.96
sshd[16428]: Invalid user oracle from 92.241.180.96
sshd[16496]: Invalid user backup from 92.241.180.96
sshd[16556]: Invalid user ftpuser from 92.241.180.96
sshd[16612]: Invalid user nagios from 92.241.180.96
sshd[16649]: Invalid user student from 92.241.180.96
sshd[16689]: Invalid user tomcat from 92.241.180.96
sshd[16713]: Invalid user test1 from 92.241.180.96
sshd[16742]: Invalid user test from 92.241.180.96
sshd[16746]: Invalid user cyrus from 92.241.180.96
sshd[16774]: Invalid user temp from 92.241.180.96
sshd[16790]: Invalid user postgres from 92.241.180.96
sshd[16806]: Invalid user samba from 92.241.180.96
요즘에는 DenyHosts 를 사용 하여 너무 많은 인증에 실패한 IP를 차단하지만 포트를 전환하는 것만 큼 쉽습니다. 이 종류의 거의 모든 무차별 대입 공격은 sshd가 다른 포트에서 수신 대기하는지 확인하기 위해 스캔을 방해하지 않습니다.
sshd 설정이 포트 22를 시도하는 바보 같은 스크립트 키즈를 직면하기에 충분하지 않은 경우 어쨌든 문제가 있습니다.
보다 합리적인 반응은 다음과 같습니다.
일부 사람들은 sshd가 시스템 로그에 기록하는 노이즈로 인해 짜증을 낼 수 있습니다.
Jan 02 21:24:24 example.org sshd[28396]: Invalid user guest from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28396]: input_userauth_request: invalid user guest [preauth]
Jan 02 21:24:24 example.org sshd[28396]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Jan 02 21:24:24 example.org sshd[28398]: Invalid user ubnt from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28398]: input_userauth_request: invalid user ubnt [preauth]
Jan 02 21:24:24 example.org sshd[28398]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth
그런 다음 신호 대 잡음비를 다시 늘리기 위해 sshd 포트를 가리거나 자동 차단 솔루션 (DenyHosts, Fail2ban 또는 BlockHosts 등)을 사용하고 싶을 수 있습니다.
그러나 더 나은 대안이 존재합니다. 예를 들어 sshd 로그 노이즈가 예를 들어 기록되고 /var/log/sshd-attempts.log
신호 (예 : 나머지 sshd 로그 메시지)가 /var/log/messages
이전과 같이 기록되도록 syslog 데몬을 구성 할 수 있습니다 .
보안 관련 시스템에 복잡성을 더하면 악용 위험 이 높아 지므로 자동 차단 도구를 신중하게 고려해야 합니다. 실제로 수년 동안 각 DenyHosts , Fail2ban 및 BlockHosts에 대한 여러 DoS 취약성 보고서가 있습니다.
SSH 포트를 변경하는 것은 대부분 보안 극장 입니다. 그것은 당신에게 무언가를 한 퍼지 느낌을줍니다. 현관 매트 아래에 SSH 포트가 숨겨져 있습니다.
인터넷에서 SSH 서버를 실행하는 경우 어리석게 약한 암호, 약한 키 및 서버 이전 버전의 알려진 악용을 찾고있는 봇에서 로그에 실패한 로그인 시도가 많이 나타납니다 . 실패한 시도는 바로 실패한 시도입니다. 당신이 얼마나 취약한지를 평가하는 한, 그들은 전혀 관련이 없습니다. 당신이 걱정해야 할 것은 성공적인 침입 시도이며, 당신은 당신의 로그에서 볼 수 없습니다.
기본 포트를 변경하면 이러한 봇의 적중 횟수는 줄어들지 만 적절한 보안 (정기적으로 적용되는 보안 업데이트, 비교적 강력한 암호 또는 비활성화 된 암호 인증)에 의해 중지 된 가장 정교한 공격자 만 공격 할 수 있습니다. 유일한 장점은 로그 볼륨을 줄이는 것입니다. 이것이 문제인 경우 Denyhosts 또는 Fail2ban 과 같은 연결 속도를 대신 고려 하여 대역폭을 잘 활용하십시오.
기본 포트를 변경하면 방화벽 뒤에서 로그인 할 가능성이 줄어 듭니다. 방화벽은 임의의 다른 포트보다 기본 포트를 통해 서비스를 통과 할 가능성이 높습니다. HTTPS 서버를 실행하지 않는 경우 일부 방화벽은 포트 443에서 디코딩 할 수없는 트래픽을 허용하므로 포트 443에서 SSH 수신 대기 (또는 수신 TCP 요청을 포트 443에서 포트 22로 리디렉션)를 고려하십시오. HTTPS처럼.