본문 바로가기
IT/리눅스 이론

리눅스 사용자 shell 점검 보안 취약점 점검 가이드

by 꾸꾸웍스 2022. 9. 25.
반응형

AIX, SunOS, Linux, HP-UX의 OS별 리눅스 또는 유닉스의 사용자 shell 점검 보안 취약점 점검 조치 가이드입니다. 불필요한 사용자 계정을 삭제하거나 로그인을 할 수 없게 차단하여 외부로부터 패스워드 추측 공격을 방지할 수 있는 방법입니다.

 

※ 목차 구성
1) 보안 취약점 분석
2) 불필요한 계정 삭제
3) 불필요한 계정 확인
4) 리눅스 사용자 shell 보안 조치

 

반응형

 

보안 취약점 분석

리눅스 사용자 shell 점검

사용한 지 오래된 계정이나 미사용 한 계정, 불필요한 계정들은 장기간 패스워드가 변경되지 않은 미사용 계정이기 때문에 유출이 되었는지 확인이 불가하고 로그인이 필요 없는 계정들은 시스템에 접근하여 악용할 수 있으므로 불필요한 계정이나 미사용 계정은 삭제하고 로그인이 필요 없는 계정들은 로그인을 할 수없게 설정합니다.

보안 취약점 종류

  • 보안 취약점 양호 기준
    - 로그인이 필요하지 않은 계정에 /sbin/nologin이 부여
  • 보안 취약점 취약 기준
    - 로그인이 필요하지 않은 계정에 /sbin/nologin이 부여되지 않음

보안 취약점 진단

AIX, SunOS, Linux, HP-UX의 리눅스 또는 유닉스 OS별 불필요한 계정을 판단하여 미사용 계정을 삭제하거나 삭제가 모호한 경우 로그인을 하지 못하게 설정하여 차단합니다.

 

 

불필요한 계정 삭제

AIX, SunOS, Linux, HP-UX의 리눅스 또는 유닉스 OS를 설치 시 default로 생성되는 대부분 계정들은 패스워드를 사용하고 있지 않기 때문에 공격으로 악용될 수 있습니다. 또한 관리하지 않은 일반 사용자 계정이나 미사용 계정들을 포함한 불필요한 계정들은 제거해야 됩니다.

 

※ 기본적으로 차단하는 default 계정

adm, lp, sync, shutdown, halt, news, uucp, operator, games, gopher, nfsnobody, squid ...

AIX 불필요한 계정 삭제

rmuser {user_name}

SunOS, Linux, HP-UX 불필요한 계정 삭제

/etc/passwd 파일은 #(주석)을 맨 앞에 넣어도 주석처리가 되지 않으므로 불필요한 계정은 계정을 삭제하는 명령어로 제거해야 됩니다.

userdel {user_name}

 

 

불필요한 계정 확인

AIX, SunOS, Linux, HP-UX의 OS별 위 내용의 불필요한 계정으로 판단하여 삭제한 경우를 제외하고 삭제하기 모호한 계정 있을 수 있습니다. 이러한 계정들은 시스템 용도에 따라 불필요한 계정의 기준이 다르기 때문에 반드시 확인해야 합니다.

※ 일반적으로 로그인이 불필요한 계정

  • deamon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, listen, operator, games, gopher
  • UID가 100 이하 거나 60000 이상의 시스템 계정에 해당

모호한 계정 확인

/etc/passwd의 nologin을 제외한 계정들 중 삭제가 모호한 계정들의 리스트를 확인한 후 /etc/shadow에서 패스워드가 설정되어 있는지 판단하여 로그인이 필요한 계정인지 필요하지 않은 계정인지 판단합니다. /etc/shadow 파일의 :(콜론) 기준으로 두 번째에 암호화가 되어있으면 패스워드 설정이 되어있는 계정입니다.

root@server # cat /etc/passwd | grep -v nologin
...
halt:x:7:0:halt:/sbin:/sbin/halt
testuser:x:5003:5000::/home/testuser:/bin/bash
...

root@server # cat /etc/shadow
...
halt:*:18353:0:99999:7:::
testuser:$6$REBcRjep$81.PadkrKDN8ntrbskzI7jn8VWKJa.:0:19250:0:90:7:::
...

 

300x250

 

리눅스 사용자 shell 보안 조치 

/bin/false와 /sbin/nologin 차이

/bin/false와 /sbin/nologin의 차이는 사용자 계정이 액세스를 할 때 어떻게 거부를 하는지에 차이가 있고 기능적의 차이는 없습니다. 둘 다 특정 사용자 계정에 대한 쉘 액세스를 거부합니다.

  • /bin/false
    - 실패를 나타내는 상태 코드가 존재하며 메시지를 출력하지 않습니다.
  • /sbin/nologin
    - 0이 아닌 상태 코드가 존재하며 "This account is currently not available."라는 메시지를 출력합니다.

nologin 설정

vi 편집기 또는 편집기 툴을 이용하여 /etc/passwd 파일을 열어 로그인이 필요 없는 계정에 아래와 같이 수정합니다.

/etc/passwd 수정 전

# vi /etc/passwd
....
halt:x:7:0:halt:/sbin:/sbin/halt
...

/etc/passwd 수정 후

# vi /etc/passwd
....
halt:x:7:0:halt:/sbin:/sbin/halt:/sbin/nologin
...

 

 

 

반응형
그리드형

댓글