웹사이트 검색

Linux에서 SSH 루트 로그인을 비활성화하는 방법


루트 계정은 Linux에서 SSH를 통해 크래커가 가장 많이 공격하는 계정인 경우가 많습니다. 네트워크에 노출되거나 더 나쁘게는 인터넷에 노출된 Linux 서버에서 활성화된 SSH 루트 계정은 시스템 관리자에게 높은 수준의 보안 문제를 제기할 수 있습니다.

서버 보안을 강화하려면 Linux에서는 모든 경우에 SSH 루트 계정을 비활성화해야 합니다. 일반 사용자 계정으로만 원격 서버에서 SSH를 통해 로그인한 후 sudo 또는 su 명령을 통해 권한을 루트 계정으로 변경해야 합니다.

SSH 루트 계정을 비활성화하려면 먼저 아래 명령을 실행하여 루트 권한이 있는 일반 계정으로 서버 콘솔에 로그인하십시오.

su tecmint
sudo su -   # Drop privileges to root account

콘솔에 로그인한 후 아래 명령을 실행하여 즐겨 사용하는 텍스트 편집기로 편집할 기본 SSH 구성 파일을 엽니다. SSH 기본 구성 파일은 일반적으로 대부분의 Linux 배포판에서 /etc/ssh/ 디렉터리에 있습니다.

vi /etc/ssh/sshd_config

이 파일에서 “PermitRootLogin” 줄을 검색하고 아래 파일 발췌와 같이 줄을 업데이트합니다. 일부 Linux 배포판에서는 "PermitRootLogin " 줄 앞에 해시태그 기호 (#)가 붙습니다. 이는 해당 줄이 주석 처리되었음을 의미합니다. 이 경우 해시태그 기호를 제거하여 해당 줄의 주석 처리를 제거하고 해당 줄을 no로 설정합니다.

PermitRootLogin no

위의 변경 사항을 적용한 후 파일을 저장하고 닫은 후 SSH 데몬을 다시 시작하여 Linux 배포판과 관련된 아래 명령 중 하나를 실행하여 변경 사항을 적용하십시오.

systemctl restart sshd
service sshd restart
/etc/init.d/ssh restart

새 구성이 성공적으로 적용되었는지 테스트하려면 아래 명령을 실행하여 원격 시스템에서 SSH를 통해 서버에 루트 계정으로 로그인을 시도하십시오.

아래 스크린샷에 표시된 것처럼 루트 계정에 대한 원격 SSH 로그인 프로세스는 SSH 서버에 의해 자동으로 거부되어야 합니다.

그게 다야! 비밀번호나 공개 키 인증 메커니즘을 통해 루트 계정으로 SSH 서버에 원격으로 로그인할 수 없어야 합니다.