기록하는 공부

[U-01 (상)] 1. 계정관리 > 1.1 root 계정 원격접속 제한 본문

정보보안/주요정보통신기반시설가이드

[U-01 (상)] 1. 계정관리 > 1.1 root 계정 원격접속 제한

SS_StudySteadily 2024. 1. 16. 22:06
728x90
반응형

 

Unix 서버 취약점 분석·평가 항목

 

  • 총 U-01 ~ U-72개 존재
  • 크게 계정 관리, 파일 및 디렉터리 관리, 서비스 관리, 패치 관리, 로그 관리 이렇게 5분류로 나눠짐

 

 

 

 


 

 

[U-01 (상)] 1. 계정관리 > 1.1 root 계정 원격접속 제한

 

점검내용

 

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

 

 

점검목적

 

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

 

 

보안위협

 

root 계정은 운영체제의 모든기능을 설정 및 변경이 가능하여(프로세스, 커널변경 등) root 계정을 탈취하여 외부에서 원격을 이용한 시스템 장악 및 각종 공격으로(무작위 대입 공격) 인한 root 계정 사용 불가 위협

 

 

참고

 

  • root 계정
    • 여러 사용자가 사용하는 컴퓨터에서 모든 기능을 관리할 수 있는 총괄권한을 가진 유일한 특별 계정.
    • 유닉스 시스템의 루트(root)는 시스템 관리자인 운용 관리자(Super User)로서 윈도우의 Administrator 보다 높은 System 계정에 해당하며, 사용자 계정을 생성하거나 소프트웨어를 설치하고, 환경 및 설정을 변경하거나 시스템의 동작을 감시 및 제어할 수 있음
  • 무작위 대입 공격(Brute Force Attack): 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 공격 방법
  • 사전 대입 공격(Dictionary Attack): 사전에 있는 단어를 입력하여 암호를 알아내거나 암호를 해독하는 데 사용되는 컴퓨터 공격 방법

 

 

점검 대상 및 판단 기준

 

  • 대상 : SOLARIS, LINUX, AIX, HP-UX 등
  • 판단기준
    • 양호 : 원격 터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우
    • 취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우
  • 조치방법 : 원격 접속 시 root 계정으로 바로 접속 할 수 없도록 설정파일 수정

 

 

점검 및 조치사례

 

SOLARIS [Telnet]
#cat /etc/default/login
CONSOLE=/dev/console
[SSH]
#cat /etc/ssh/sshd_config
PermitRootLogin no
LINUX [Telnet]
#cat /etc/pam.d/login
auth required /lib/security/pam_securetty.so
#cat /etc/securetty
pts/0 ~ pts/x 관련 설정이 존재하지 않음
[SSH]
#cat /etc/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
위에 제시한 내용으로 설정되어 있을 경우 root 원격 접속이 차단됨
내용 설정에 대해서는 아래의 보안설정방법을 참고함

 

 

■ SOLARIS [Telnet 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/default/login” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #CONSOLE=/dev/console
    • (수정 후) CONSOLE=/dev/console

 

■  SOLARIS [SSH 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/ssh/sshd_config” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #PermitRootLogin Yes
    • (수정 후) PermitRootLogin No

 

■ LINUX [Telnet 서비스 사용시]

  • Step 1) “/etc/securetty” 파일에서 pts/0 ~ pts/x 설정 제거 또는, 주석 처리
  • Step 2) “/etc/pam.d/login” 파일 수정 또는, 신규 삽입
    • (수정 전) #auth required /lib/security/pam_securetty.so
    • (수정 후) auth required /lib/security/pam_securetty.so

 

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

더보기

 “/etc/securetty” 파일 내 *pts/x 관련 설정이 존재하는 경우 PAM 모듈 설정과 관계없이 root 계정 접속을 허용하므로 반드시 "securetty" 파일에서 pts/x 관련 설정 제거 필요

 

tty(terminal-teletype) : 서버와 연결된 모니터, 키보드 등을 통해 사용자가 콘솔로 직접 로그인함

pts(pseudo-terminal, 가상터미널) : Telnet, SSH, 터미널 등을 이용하여 접속함

 

 LINUX [SSH 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/ssh/sshd_config” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #PermitRootLogin Yes
    • (수정 후) PermitRootLogin No

 

■ AIX [Telnet 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/security/user” 파일 열기
  • Step 2) rlogin 설정을 아래와 같이 수정 또는, 신규 삽입 (root 설정에 해당되는 부분 수정)
    • (수정 전) rlogin = true
    • (수정 후) rlogin = false rlogin(remote-login): 자주 접속하는 호스트에 대해 자동으로 원격 접속을 할 수 있도록 사용하는 명령어

 

■ AIX [SSH 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/ssh/sshd_config” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #PermitRootLogin Yes
    • (수정 후) PermitRootLogin No

 

■ HP-UX [Telnet 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/securetty” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #console
    • (수정 후) console

 

※ “/etc/securetty” 파일은 디폴트로 존재하지 않으므로 /etc 디렉터리 내에 "securetty" 파일 이 존재하지 않는 경우 새로 생성한 후 적용함 (※ vi 편집기를 사용한 파일 내용 수정: 부록 참고)

#vi /etc/securetty

 

■ HP-UX [SSH 서비스 사용시]

  • Step 1) vi 편집기를 이용하여 “/etc/ssh/sshd_config” 파일 열기
  • Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
    • (수정 전) #PermitRootLogin Yes
    • (수정 후) PermitRootLogin No

 

 

조치 시 영향

 

일반적인 경우 영향 없음

 

 

 

 


 

 

취약점 진단 실습

 

 

대상

 

  • Ubuntu 22.04 기반의 웹 서버

 

 

Linux - Telnet

 

  • securetty 파일 관련 설정 없음
cat /etc/pam.d/login

 

 

 

cat /etc/securetty

 

 

 

 

Linux - SSH

 

  • cat /etc/ssh/sshd_config 에서 PermitRootLogin no 설정 없음
    • PermitRootLogin prohibit-password라고 설정됨
    • 기본적으로 ubuntu는 root 로그인 불가
    • 그래도 PermitRootLogin prohibit-password를 no로 바꾸는 게 좋음
cat /etc/ssh/sshd_config

 

 

 

 

 

진단결과

 

  • 취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우
728x90
반응형