[계정관리] root 계정 원격 접속 제한

2021. 3. 29. 21:41인프라 보안/인프라 진단(UNIX 서버)

- 점검내용

시스템 정책에 root 계정의 원격 터미널 접속 차단 설정이 적용되어 있는지 여부를 점검합니다.

 

- 점검목적

관리자 계정 탈취로 인한 시스템 장악을 방지하기 위해 외부 비인가자의 root 계정 접근 시고를 원천적으로 차단하기 위함입니다.

 

- 보안위협

무차별 대입 공격, 사전 대입 공격 등 패스워드 공격을 통해 비인가자가 원격에서 root 계정 정보를 획득하는 경우 시스템 계정 정보 유출, 파일 및 디렉터리 변조 등의 침해사고가 발생할 수 있습니다.

 

- 판단기준

   > 양호 : 원격 터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우

   > 취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우

 

- 점검방법

   > Linux

[Telnet]
# cat /etc/pam.d/login | grep pam_securetty.so
# cat /etc/securetty | grep "pts"
[SSH]
# cat /etc/sshd_config
PermitRootLogin no

 

   > Solaris

[Telnet]
#cat /etc/default/login
CONSOLE=/dev/console
[SSH]
#cat /etc/ssh/sshd_config
PermitRootLogin no

 

   > AIX

[Telnet]
#cat /etc/security/user
rlogin = false
[SSH]
#cat /etc/sshd_config
PermitRootLogin no

 

   > HP-UX

[Telnet]
#cat /etc/securetty
console
[SSH]
#cat /etc/sshd_config
PermitRootLogin no

 

- 보안설정

   > Linux

TELNET 서비스 사용시, /etc/securetty 파일에서 pts/0 ~ pts/x 설정을 제거하거나 주석 처리합니다.

* /etc/securetty 파일 : Telnet 접속 시 root 접근 제한 설정파일

  > 이 파일 내 pts/x 관련 설정이 존재하는 경우 PAM 모듈 설정과 관계없이 root 계정 접속을 허용하므로 반드시 securetty 파일에서 pts/x 관련 설정을 제거해야 합니다.

 

/etc/pam.d/login 파일에서 auth required /lib/security/pam_securetty.so 삽입합니다.

* 이 설정은 PAM의 pam_securetty 모듈을 사용하여 root 사용자의 로그인 제한을 적용하는 역할을 합니다.정확하게는 root 사용자가 로그인할 때, /etc/securetty 파일에 등록된 TTY에서만 로그인이 허용됩니다.

 

SSH 서비스 사용시, /etc/ssh/sshd_config 파일에서 PermitRootLogin No 삽입합니다.

 

변경 사항 적용 시, SSH 서비스 재시작 필요합니다.

 * 주의 사항 : SSH로 원격 접속한 상태에서 설정이 잘못되면 접속이 끊어질 수 있으므로, 새 SSH 세션을 생성하여 테스트 후 기존 세션을 닫는 것이 안전합니다.

 

   > SolarisTELNET 서비스 사용시, /etc/default/login 파일에서 CONSOLE=/dev/console 삽입합니다.SSH 서비스 사용시, /etc/ssh/sshd_config 파일에서 PermitRootLogin No 삽입합니다.

 

   > AIXTELNET 서비스 사용시, /etc/security/user 파일에서 rlogin = false 로 수정하거나 삽입합니다.* rlogin : 자주 접속하는 호스트에 대해 자동으로 원격접속을 할 수 있도록 사용하는 명령어.

 

SSH 서비스 사용시, /etc/ssh/sshd_config 파일에서 PermitRootLogin No 삽입합니다.

 

   > HP-UXTELNET 서비스 사용시, /etc/securetty 파일에서 console 삽입합니다.* /etc/securetty 파일은 디폴트로 존재하지 않으므로 /etc/ 디렉토리 내에 securetty 파일이 존재하지 않는 경우 파일 자체를 새로 생성한 후 적용해야 합니다.

 

SSH 서비스 사용시, /etc/ssh/sshd_config 파일에서 PermitRootLogin No 삽입합니다.