SSH(Secure Shell)는 원격으로 서버(Server)에 접속하여 명령어를 실행하고 관리할 수 있는 통신 방식입니다.
서버를 운영할 때 가장 기본이 되는 접속 방법이며, 대부분의 리눅스 서버에서 사용됩니다.
하지만 SSH는 외부에서 접근 가능한 통로이기 때문에 보안 설정이 제대로 되어 있지 않으면 해킹의 주요 대상이 됩니다.
따라서 SSH 접속 보안 설정은 서버(Server) 운영에서 반드시 필요한 작업입니다.
SSH는 서버(Server)에 직접 접근할 수 있는 통로이기 때문에 공격자들이 가장 먼저 시도하는 대상입니다.
기본 설정 그대로 사용할 경우 공격에 쉽게 노출될 수 있습니다.
SSH 보안은 여러 가지 설정을 조합하여 강화합니다.
이 다섯 가지를 적용하면 서버(Server) 보안 수준이 크게 향상됩니다.
기본 SSH 포트는 22번입니다.
이 포트를 변경하면 자동화된 공격을 줄일 수 있습니다.
sudo nano /etc/ssh/sshd_config
다음 항목 수정
Port 2222
설정 후 SSH 재시작
sudo systemctl restart ssh
root 계정은 모든 권한을 가지고 있기 때문에 공격 대상이 됩니다.
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
이후 일반 사용자 계정으로 접속 후 sudo를 사용하는 것이 안전합니다.
비밀번호 방식은 해킹 시도가 많기 때문에 가능하면 비활성화하는 것이 좋습니다.
PasswordAuthentication no
이 설정을 적용하면 SSH 키 인증만 사용 가능합니다.
SSH 키 인증은 비밀번호보다 훨씬 안전한 방식입니다.
ssh-keygen
ssh-copy-id 사용자이름@서버IP
이후 비밀번호 없이 안전하게 접속할 수 있습니다.
특정 IP에서만 SSH 접속을 허용하면 보안이 크게 강화됩니다.
sudo nano /etc/hosts.allow
sshd: 192.168.0.10
또는 방화벽을 통해 설정할 수도 있습니다.
기본 설정 외에도 추가로 적용하면 좋은 방법입니다.
로그인 실패가 반복되면 해당 IP를 자동 차단합니다.
sudo apt install fail2ban
MaxAuthTries 3
로그인 실패 횟수를 제한하여 공격을 방지합니다.
LoginGraceTime 30
접속 시도 시간을 제한하여 공격을 줄일 수 있습니다.
설정을 변경한 후에는 반드시 정상 작동 여부를 확인해야 합니다.
잘못 설정하면 접속이 불가능해질 수 있으므로 주의가 필요합니다.
새로운 설정이 적용되지 않은 상태에서 접속이 끊길 수 있습니다.
접속 자체가 불가능해질 수 있습니다.
새 포트를 허용하지 않으면 접속이 차단됩니다.
이 항목들을 모두 적용하면 기본적인 보안은 확보됩니다.
SSH 보안을 집에 비유하면 다음과 같습니다.
출입 통제를 강화할수록 서버(Server)는 안전해집니다.
SSH 접속 보안 설정 방법은 서버(Server)를 안전하게 운영하기 위한 필수 과정입니다.
특히 외부에 공개된 서버라면 반드시 적용해야 합니다.
초보자라면 모든 설정을 한 번에 적용하기보다
하나씩 적용하고 테스트하는 방식으로 진행하는 것이 가장 안전합니다.
이 과정을 통해 안정적인 서버 운영 환경을 구축할 수 있습니다.
서버 구축 후 반드시 해야 할 보안 설정 7가지 (초보자 실수 방지 가이드) 서버 구축…
무료 클라우드 서버 후기 (실사용 기준 장단점 정리) 무료 클라우드 서버를 실제로 써본 이유 서버(Server)를…
AWS 서버 처음 만들고 막힌 부분 정리 (초보자가 실제로 겪는 문제들) AWS 서버를 처음 만들…
서버 ping은 되는데 웹 접속 안될 때 해결 방법 (실제 원인 6가지) ping은 되는데 웹…