리눅스 서버를 운영하다보면 로컬 터미널 보다는 원격 터미널을 사용할일이 많습니다.
리눅스 서버를 설치하고 특별한 조취를 하지 않는이상 SSH 포트가 열려있고, Root 사용자가 활성화 되어있습니다.
그에 따라서 중국, 러시아, 프랑스등 여러 국가에서 포트스캐닝을 통해서 SSH포트가 열려있는게 확인되면 무작위 Root계정을 사용해서 무작위 대입공격을 통해서 해킹시도를 하기때문에 패스워드가 쉽거나 오랫동안 해킹시도에 노출이 되면 서버 보안에 큰 문제가 될수도 있습니다.
오늘은 서버에 접속할때 Root 계정으로 바로 접속이 불가능하도록 설정을 해보도록 하겠습니다.
1. 위에 표시되는거 처럼 잠깐사이에도 Root계정으로 잘못된 패스워드로 로그인 시도한 횟수가 44회나 카운트 되었습니다.
만약 1주일 동안 서버관리를 하지 않았다면 최소 5만번 이상은 로그인 실패기록이 확인될수도 있습니다.
2. 기록된 아이피를 조회해보면 대부분 중국쪽 아이피로 확인이 됩니다.
(사실 국내에서만 관리되는 서버라면 SSH 접속을 국내 한정으로만 설정하실수도 있습니다.
다만 최근들어서 아이피 우회를 통해서 로그인 시도를 하는경우도 많이 확인되고 있습니다.)
3. Root 계정 바로접속을 막기전에 새로운 계정 하나를 생성해주도록 하겠습니다.
useradd [계정이름]
passwd [계정이름] 새 암호 : [암호입력] 새 암호 재입력 : [같은암호 재입력]
4. SSH 설정파일을 수정하도록 하겠습니다.
vi 또는 vim 으로 설정파일을 열어주세요.
vi /etc/ssh/sshd_config
5. 찾기 쉽게 번호가 보이도록 설정해주세요.
:set nu
6. 수정해야될 부분은 49번 줄에 있습니다.
이부분은 리눅스 종류 또는 버전에따라 다를수 있으니 #PermitRootLogin yes 항목을 찾아주세요.
:49
7. #PermitRootLogin yes => PermitRootLogin no 으로 변경해주세요. (주석해제 #, yes => no)
그리고 저장후 나와주세요.
:wq
8. 설정 적용을 위해서 SSH 데몬을 재시작 해주세요.
service sshd restart
9. 접속된 SSH 세션을 종료시켜주세요.
exit
10. Root 계정으로 접속을 시도해보시면 로그인이 되지 않는것을 확인할수 있습니다.
11. 먼쳐 새로만든 계정으로 로그인해주세요.
12. Root 계정으로 로그인하기 위해서 su 명령어를 사용해주세요.
패스워드가 일치한다면 root 계정으로 로그인 된것을 볼수있습니다.
su root
이번 설정을 하셨다면 SSH에서 Root계정으로 직접 로그인이 불가능해져서 기본적인 보안이 향상되었습니다.
앞으로 로그인 실패에 따른 대기시간 설정과 아이피별 로그인 설정을 알려드리겠습니다.
#
감사합니다. 이렇게 하는 방법이 있네요.
#
이렇게 하니 ftp root 계정도 막아지네요
#
저 설정이 root 계정을 막는건가요? root 그룹을 막는건가요?