내 Centos 7.5 서버는 지난 며칠 동안 수천 건의 SSH 로그인 시도를 받았고 오늘은 "보안 실패가 너무 많습니다"라는 메시지가 표시되어 VNC 클라이언트에 로그인할 수 없었습니다. 그렇다면 이 문제를 해결할 수 있는 방법이 있는지 묻고 싶습니다. 터널링이 이 문제를 해결할 수 있다는 내용을 읽었지만 너무 번거로워서 사용하고 싶지 않습니다.
답변1
SSH
직접 루트 액세스를 비활성화합니다.
cat /etc/ssh/sshd_config | grep PermitRootLogin
다음과 같이 설정해야 합니다.
PermitRootLogin no
SSH 프로토콜 버전 2를 적용하려면:
cat /etc/ssh/sshd_config | grep Protocol
다음과 같이 설정해야 합니다.
Protocol 2
포트를 56789와 같은 임의의 포트로 변경합니다.
cat /etc/ssh/sshd_config | grep Port
다음과 같이 설정해야 합니다.
Port 56789
방화벽에 구멍을 뚫습니다.
sudo iptables -A INPUT -p tcp -m tcp --dport 56789 -m comment --comment "SSH custom port" -j ACCEPT
새로운 공개/개인 키 쌍을 생성합니다.
ssh-keygen -t rsa -b 4096
이 키를 추가하고 다른 키가 없는지 확인하세요.
eval $(ssh-agent -s) ssh-add ssh-add -l
결과는 다음과 같습니다.
4096 SHA256:gibberish /home/fictional_user/.ssh/id_rsa (RSA) 4096 SHA256:gibberish fictional_user@fictional_computer (RSA)
서버를 유지 관리할 클라이언트 컴퓨터로 공개 키를 가져옵니다.
ssh-copy-id fictional_user@public_ip -p 56789
그런 다음 비밀번호 확인을 완전히 비활성화합니다.
cat /etc/ssh/sshd_config | grep PasswordAuthentication
다음과 같이 설정해야 합니다.
PasswordAuthentication no
가상 네트워크 컨트롤러
특정 IP 주소 범위만 허용해야 합니다. 예를 들어 다음과 같은 기본 로컬 네트워크에 대해서만 허용해야 합니다 iptables
.
sudo iptables -A INPUT -p tcp -m tcp --dport 5900 -m comment --comment "VNC on desktop: local network only" -m iprange --src-range 192.168.0.1-192.168.0.254 -j ACCEPT