[오늘은 공부중] CentOS 서버에서 계정 생성과 root 계정의 외부 접속 차단

서버는 보안이 생명이다.
다양한 정보가 포함돼 있기 때문에 서버가 해킹이라도 당하면 피해는 엄청나기 때문이다.
내 서버에 가져갈만한 정보가 있겠냐만은 그래도 해킹을 당하면 찜찜한 것은 어쩔 수가 없기 때문에 보안이 생명이다.

리눅스는 공통적으로 root라는 계정이 있는데, 모든 권한을 가지고 있는 계정이다. 최초에 만들어지는 계정이다보니 이를 통한 해킹 시도도 빈번하게 발생한다.

나 역시 서버를 접속하려고 보니 90여 번의 접속 시도가 있던 것을 확인했다. 별것도 없는 서버에 꾸준히 접속하려 한 것을 보니 무작정 번호를 대입해 접속시도를 하는 '봇(bot)'일 가능성이 높다. 하지만 저런 봇도 비밀번호를 알게 된다면 어떻게 사용될 지 모르기 때문에 가능한 한 root는 차단을 해놓는 것이 좋다.


root의 외부 접속을 차단하기 전에 대신 접속할 수 있는 계정을 하나 만들어놓아야 한다.
만드는 방법은 간단하다.

useradd -m 계정명

을 치면 계정 하나가 생성된다.
뒤쪽에 -m 인자는 해당 계정의 폴더를 하나 만든다는 것이다.

조금 더 안전한 사용을 위해 비밀번호도 함께 설정하는 것이 좋다.
비밀번호 설정하는 방법은

passwd 계정명

이다.



이제 root 계정의 외부 접속을 차단해보자.
ssh 접속의 차단이기 때문에 ssh 설정파일을 수정해주면 손쉽게 접근을 차단할 수 있다.
먼저 ssh의 설정파일이 있는 곳으로 이동을 하자.

cd /
cd etc
cd ssh

를 누르면 ssh의 설정파일인 sshd_config 파일을 볼 수 있다.


아래 명령어를 입력해 sshd_config 파일을 살펴보자

vi sshd_config

외부 접속을 차단하려면 PermitRootLogin을 찾아야 한다.

:/PermitRoot

를 입력하면 해당 문구가 있는 곳까지 편하게 찾아갈 수 있다.


[i]를 눌러 입력모드로 바꾼 뒤, 
앞에 #을 지우고, 뒤에 있는 yes를 no로 바꿔 주자.
이후 [ESC]를 누른 뒤 [:wq]를 눌러 에디터를 빠져나오자.


설정파일을 변경해줬다면 다시 재실행을 해줘야 변경사항이 적용된다.

systemctl restart sshd

를 입력하면 ssh 설정파일이 적용된다.


이후 ssh로 root에 접속하려고 하면 접근이 제한된다는 메시지가 나온다.


만약 root 권한이 필요하다면, 새로 생성한 계정으로 서버에 접속한 뒤

su root

를 누른 뒤 비밀번호를 입력하면, 관리자 권한을 획득할 수 있다. 



댓글