리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어 안내
리눅스 서버를 운용하는 관리자라면 SSH 접속 보안에 대한 고민은 필수적입니다. 기본적으로 SSH는 22번 포트를 사용하며, Root 계정으로 직접 로그인할 수 있도록 설정되어 있는 경우가 많습니다. 하지만 이러한 기본 설정은 자동화된 공격이나 무차별 대입 공격에 노출될 가능성이 높기 때문에, SSH 포트 변경 및 Root 로그인 차단은 필수적인 보안 강화 조치입니다. 본문에서는 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 실제 운영 환경에서 바로 적용할 수 있도록 단계별로 안내합니다. 또한, 관련 설정의 원리와 주의사항, 그리고 보안 강화를 위한 추가 팁까지도 함께 다룰 것이므로, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 방법을 완벽하게 익힐 수 있습니다.
SSH란 무엇인가? 그리고 왜 보안 설정이 중요한가
SSH(Secure Shell)는 네트워크를 통해 원격 시스템에 안전하게 접속할 수 있도록 해주는 프로토콜입니다. 대부분의 리눅스 서버는 관리자나 개발자가 원격에서 서버를 관리하기 위해 SSH를 사용합니다. 기본적으로 22번 포트로 서비스가 이루어지며, Root 계정은 모든 권한을 갖고 있어 공격자의 주요 타겟이 됩니다. SSH의 기본 포트와 Root 계정 로그인 허용은 보안상 위험 요소가 되므로, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 통해 보안을 강화하는 것이 권장됩니다.
SSH 설정 파일의 위치 및 백업 방법
리눅스 서버에서 SSH 관련 설정은 보통 /etc/ssh/sshd_config 파일에서 관리됩니다. 이 파일을 수정하기 전에는 항상 원본 백업을 해두는 것이 중요합니다. 설정 파일을 잘못 편집할 경우, 실수로 SSH 접근이 불가능해질 수 있기 때문입니다. 아래는 sshd_config 파일 백업 명령어입니다.
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
이렇게 백업을 해두면, 문제가 발생했을 때 언제든 원본으로 복구할 수 있어 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어 적용 시 안전하게 작업할 수 있습니다.
SSH 접속 포트 변경 방법과 명령어
리눅스 서버 SSH 접속 포트 변경은 자동화된 공격을 막는 데 효과적입니다. 공격자들은 기본 포트(22번)를 대상으로 무차별 대입 공격을 시도하기 때문에, 포트 변경만으로도 상당한 보안 효과를 볼 수 있습니다. 다음은 SSH 포트 변경 명령어와 절차입니다.
1. 사용할 포트 번호 결정하기
SSH의 새 포트는 1024~65535 사이의 사용하지 않는 포트를 선택하는 것이 좋습니다. 이미 사용 중인 포트를 선택할 경우, 서비스 충돌이 발생할 수 있으므로 아래 명령어로 현재 사용 중인 포트를 확인할 수 있습니다.
ss -tuln | grep LISTEN
이 명령어로 현재 시스템에서 열려 있는 포트를 확인하고, 사용하지 않는 포트 번호를 선택하는 것이 안전합니다.
2. sshd_config 파일 수정
선택한 포트 번호로 SSH 접속 포트를 변경하려면, sshd_config 파일을 텍스트 에디터로 엽니다. 주로 nano, vi, vim 등의 에디터가 사용됩니다. 예를 들어, nano를 사용할 경우 아래와 같습니다.
nano /etc/ssh/sshd_config
파일에서 ‘Port 22’ 부분을 찾아 원하는 포트 번호(예: 2222)로 변경합니다.
Port 2222
만약 여러 포트에서 SSH를 동시 허용하려면, Port 지시자를 여러 번 추가할 수 있습니다.
Port 22 Port 2222
하지만 일반적으로는 기본 포트 22를 주석 처리(#Port 22)하고, 새 포트만 사용하도록 설정하는 것이 더 안전합니다.
3. 방화벽 설정 변경
SSH 포트를 변경한 후에는 방화벽(firewalld, iptables, ufw 등)에 새 포트가 열려 있는지 확인해야 합니다. 예를 들어, firewalld를 사용할 경우 다음과 같이 새 포트를 허용합니다.
firewall-cmd --permanent --add-port=2222/tcp firewall-cmd --reload
만약 ufw를 사용한다면 아래와 같습니다.
ufw allow 2222/tcp ufw reload
방화벽 설정이 누락되면 외부에서 새 포트로 접속이 불가능하므로, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어 적용 후 반드시 방화벽을 점검해야 합니다.
4. SSH 데몬 재시작
설정 변경 후에는 SSH 데몬(sshd)을 재시작해야 변경 사항이 적용됩니다. 시스템에 따라 다음 명령어 중 하나를 사용합니다.
systemctl restart sshd
또는
service sshd restart
이제 새 포트로 SSH 접속이 가능해집니다. 기존 터미널 세션을 닫기 전에 새로운 포트로 접속 테스트를 해보는 것이 좋습니다.
5. 새로운 포트로 SSH 접속 명령어
포트가 변경되었으므로, SSH 접속 시 -p 옵션을 사용하여 새 포트를 반드시 지정해야 합니다.
ssh -p 2222 사용자명@서버주소
이 명령어로 리눅스 서버 SSH 접속 포트 변경이 정상적으로 적용되었는지 확인할 수 있습니다.
Root 로그인 차단 보안 설정 방법 및 명령어
Root 계정으로 직접 SSH 로그인을 허용하면, 공격자가 계정명만으로도 무차별 대입 공격에 노출될 수 있습니다. Root 계정은 모든 시스템 권한을 가지고 있으므로, 보안상 Root 로그인 차단은 반드시 적용해야 할 필수 보안 설정입니다.
1. Root 로그인 차단 설정 방법
sshd_config 파일을 열어서 아래의 지시자를 찾아 수정합니다.
nano /etc/ssh/sshd_config
다음의 항목을 찾아서 아래와 같이 설정합니다.
PermitRootLogin no
만약 이 항목이 주석 처리되어 있다면(#PermitRootLogin yes), 주석을 제거하고 반드시 ‘no’로 설정해야 합니다.
2. SSH 데몬 재시작
설정 변경 후, 역시 SSH 데몬을 재시작해야 합니다.
systemctl restart sshd
또는
service sshd restart
이제부터는 Root 계정으로 직접 SSH 로그인하는 것이 차단되어, 일반 사용자 계정으로 로그인 후 필요시 su 또는 sudo 명령어를 통해 Root 권한을 획득해야 합니다.
3. 일반 사용자 계정 추가 및 권한 부여
Root 로그인 차단 후에는 반드시 SSH 접속이 가능한 일반 사용자 계정이 있어야 하며, 해당 계정에 sudo 권한을 부여해야 관리가 가능합니다. 사용자 추가 명령어는 아래와 같습니다.
adduser 사용자명 passwd 사용자명
sudo 그룹에 사용자를 추가하려면 아래 명령어를 사용합니다.
usermod -aG sudo 사용자명
이렇게 설정하면, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 통한 보안 강화와 함께, 서버 관리의 안정성이 크게 향상됩니다.
추가적인 SSH 보안 강화 팁
리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어 외에도, SSH 보안을 더욱 강화할 수 있는 다양한 방법이 있습니다. 다음은 실무에서 많이 활용되는 보안 강화 팁입니다.
1. 공개키 기반 인증 사용
비밀번호 대신 공개키 기반 인증을 사용하면, 무차별 대입 공격에 대응할 수 있습니다. 클라이언트에서 공개키를 생성하고, 서버의 ~/.ssh/authorized_keys 파일에 추가하면 됩니다.
ssh-keygen -t ed25519 ssh-copy-id -p 2222 사용자명@서버주소
이렇게 하면 패스워드 없이 안전하게 SSH 접속이 가능합니다.
2. AllowUsers 또는 AllowGroups로 접근 제한
sshd_config 파일에서 AllowUsers 또는 AllowGroups 옵션을 활용하면, 특정 사용자나 그룹만 SSH 접근이 가능하도록 제한할 수 있습니다.
AllowUsers user1 user2
AllowGroups sshusers
이처럼 접근 권한을 제한하면, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정과 더불어, 추가적인 방어막을 구축할 수 있습니다.
3. 로그인 실패 시 자동 차단(FAIL2BAN 등)
무차별 대입 공격 방지를 위해 fail2ban과 같은 도구를 활용하면, 일정 횟수 이상 로그인 실패 시 해당 IP를 자동으로 차단할 수 있습니다. 설치 및 활성화 예시는 다음과 같습니다.
apt install fail2ban systemctl enable fail2ban systemctl start fail2ban
설정 파일(/etc/fail2ban/jail.local)에서 sshd에 대한 정책을 정의하면 효과적으로 공격을 차단할 수 있습니다.
4. SSH 프로토콜 버전 제한
구버전 SSH 프로토콜(SSHv1)은 보안상 취약점이 많으므로, 반드시 SSHv2만 허용하는 것이 좋습니다. sshd_config 파일에서 아래와 같이 설정합니다.
Protocol 2
이렇게 하면 최신 보안 수준을 유지할 수 있습니다.
SSH 설정 변경 시 주의사항
리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 적용할 때는, 다음과 같은 주의사항을 반드시 확인해야 합니다.
– SSH로 원격 접속 중이라면, 기존 세션을 종료하지 말고, 새 포트와 계정으로 별도 접속을 먼저 테스트해야 합니다.
– 방화벽 설정이 누락되면, 새로운 포트로의 접속이 불가하므로 반드시 포트 오픈 여부를 확인해야 합니다.
– sshd_config 파일에서 오타나 잘못된 설정이 있을 경우, SSH 데몬이 정상적으로 동작하지 않을 수 있으니, 설정 저장 전 꼼꼼히 확인해야 합니다.
– Root 로그인 차단을 적용하기 전에, 반드시 sudo 권한이 있는 일반 계정이 생성되어 있는지 확인해야 합니다.
– 만약 설정 변경 후 접속에 문제가 생겼다면, 콘솔이나 KVM, 클라우드 관리 콘솔 등 직접 접근이 가능한 수단을 미리 준비해 두는 것이 좋습니다.
이러한 주의사항을 지키면, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 안전하게 적용할 수 있습니다.
실시간 로그 확인 및 문제 해결 방법
설정 변경 후 접속 오류가 발생할 수 있으므로, 실시간 로그를 확인하는 것이 중요합니다. SSH 관련 로그는 보통 /var/log/auth.log 또는 /var/log/secure 파일에 기록됩니다. 아래와 같이 tail 명령어로 실시간 로그를 모니터링할 수 있습니다.
tail -f /var/log/auth.log
로그를 통해 인증 실패, 설정 오류, 포트 변경 미반영 등 문제점을 신속하게 파악하고 조치할 수 있으므로, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어 적용 후에는 반드시 로그를 확인하는 습관을 들이는 것이 좋습니다.
FAQ: 자주 묻는 질문
Q1. SSH 포트를 바꾸면 해킹이 완전히 막히나요?
A. SSH 포트 변경은 보안 강화의 첫 단계이지만, 포트 스캐닝 도구로 새로운 포트가 탐지될 수 있으므로, 추가적인 보안 설정을 병행해야 합니다. 따라서 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어와 함께 공개키 인증, 접근제한, fail2ban 등도 반드시 적용하는 것이 바람직합니다.
Q2. Root 계정 로그인을 완전히 차단해도 운영에 문제가 없나요?
A. 일반적으로는 문제가 없습니다. sudo 권한을 가진 일반 사용자 계정으로 로그인 후 필요 시 루트 권한을 획득할 수 있으므로, 운영상 불편함 없이 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 적용할 수 있습니다.
Q3. SSH 포트 변경 후 연결이 안되면 어떻게 하나요?
A. 방화벽 설정, sshd_config 오타, 포트 중복 사용 여부 등을 우선 점검해야 하고, 여전히 접속이 불가하다면 서버의 콘솔 접근(KVM, 클라우드 콘솔 등)을 통해 복구 작업을 진행해야 합니다.
Q4. 여러 사용자가 접속해야 할 때는 어떻게 해야 하나요?
A. AllowUsers, AllowGroups 지시자를 활용해 접속 가능한 사용자나 그룹을 제한하면, 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어와 함께 효율적이고 안전한 운영이 가능합니다.
요약 및 실무 적용 가이드
리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어는 서버 보안의 기본이자 가장 효과적인 방어책 중 하나입니다. 포트 변경을 통해 자동화된 공격을 차단하고, Root 계정 직접 로그인을 막아 계정 정보 노출 위험을 줄일 수 있습니다. 설정 파일 백업, 방화벽 포트 오픈, SSH 데몬 재시작 등 각 단계별로 꼼꼼히 절차를 확인하는 것이 중요합니다. 추가적으로 공개키 인증, 접근 제한, 로그인 실패 자동 차단 등 다양한 보안 강화 기법을 병행하면, 리눅스 서버의 SSH 보안을 한층 더 견고하게 만들 수 있습니다. 실무에서는 반드시 테스트 환경에서 먼저 적용해 본 후 운영 서버에 반영하는 것을 권장합니다. 리눅스 서버 SSH 접속 포트 변경 및 Root 로그인 차단 보안 설정 명령어를 익혀두면, 앞으로도 보다 안전한 서버 운영이 가능해집니다.