취약점

 첫째로, (1) 패스워드 복잡성 설정이 되어 있지 않은 사용자 계정 패스워드 존재 시

비인가자가 무작위 대입 또는 사전 대입 공격을 통해 패스워드를 획득할 수 있다.

 

 둘 째,(2) 로그인 시도 임계값을 제한하지 않을 경우

무작위 대입 공격을 허용하게 되어 패스워드가 유출당할 수 있다.

 

따라서 시스템 정책에 관련 설정이 되어 있는지 점검하자!

 

 

보안조치 - (1) 패스워드 복잡성 설정

계정과 유사하지 않은 8자 이상의 영문, 숫자, 특수문자의 조합으로 암호 설정 및 패스워드 복잡성 옵션 설정

손볼 파일은 두 가지, /etc/pam.d/system-auth/etc/login.defs

각 각, 패스워드 정책과 패스워드 사용 기간 등을 설정할 수 있는 설정 파일이다.

 

 

복잡성 추가

[root@localhost ~]# vi /etc/pam.d/system-auth
...
password    requisite     pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
...

*retry=3 변경 도중 3번 틀리면 실패 처리

*llcredit(소문자), ucredit(대문자), dcredit(숫자), ocredit(특수문자)

*-1은 최소 하나를 사용해야 한다는 의미

*결과적으로 전체 길이는 8이고 대소문자, 숫자, 특수문자를 적어도 하나씩은 포함해야 하는 정책

 

 

■ 패스워드 최대/최소 사용 기간을 지정

[root@localhost ~]# vi /etc/login.defs 
# Password aging controls:
...
PASS_MAX_DAYS   60
PASS_MIN_DAYS   1
PASS_MIN_LEN    5
PASS_WARN_AGE   7
...

*최대 사용 기간은 60일, 최소 사용 기간은 1일, 만료 전 알림은 D-7

 

 

결과

설정 전

설정 후

암호 복잡도 정책에 의해 쉽사리 패스워드가 변경되지 않고

계정을 추가 생성 시 사용 기간도 최소 1일, 최대 60일로 잘 적용되고 있음을 알 수 있다!

 

 

보안조치 - (2) 계정 잠금 임계값 설정

로그인 시도 횟수를 제한해보자

수정해야 할 파일은 /etc/pam.d/system-auth

 

 

■ 로그인 시도 횟수를 설정

다음 설정 2가지를 추가 및 수정하자!

[root@localhost ~]# vi /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run
...
auth        required      pam_tally2.so deny=5 unlock_time=120 no_magic_root
...

...
account     required      pam_tally2.so
...

*unlock_time=120 : 5회 초과로 잠겼을 경우, 120초 이후에 잠금 해제

*no_magic_root : 루트 계정에게는 마법(?)이 효력 없음

 

 

결과

재시도 5번이 발생하면 즉, 6번째에서 잠김이 발생!

 

 

마무리

아무리 강력한 패스워드를 설정한다 한들, 무차별 대입 공격에 뚫릴 수 있다.

따라서 패스워드 정책도 까다롭게! 대입공격 차단도 철저하게!

 

 

참조

'리눅스 > 계정관리' 카테고리의 다른 글

[CentOS 7] root 계정 su 제한  (0) 2020.12.30
[CentOS 7] UID,GID와 관련한 보안  (0) 2020.12.30
[CentOS 7] 패스워드 파일 보호  (0) 2020.12.30
[CentOS 7] root 계정 원격 접속 제한  (0) 2020.12.25
개요  (0) 2020.12.25

취약점

root 원격 접속 차단이 적용되지 않은 시스템의 root 계정 정보를 비인가자가 획득할 경우
시스템 계정 정보 유출파일 및 디렉터리 변조 등의 행위 침해사고가 발생할 수 있음

따라서 시스템 정책에 root계정의 원격 터미널 접속 차단 설정이 필요!

 

 

보안조치

원격 접속 시 root 계정으로 바로 접속 할 수 없도록 설정파일 수정을 해주자!

손볼 파일은 2가지, /etc/pam.d/login/etc/securetty



 

■ 먼저는 /etc/pam.d/login 설정파일에서 scuretty 보안 모듈을 추가 및 수정해준다

[root@localhost tmp]# vi /etc/pam.d/login
#%PAM-1.0
...
auth       required     /lib/security/pam_securetty.so
...

 

마지막으로 /etc/securetty 설정파일에서 pts부분을 주석처리해주자!

*pts : pseudo terminal slave의 약어로 원격 접속에 사용되는 터미널
*tty  : 로컬 접속에 사용됨

[root@localhost tmp]# vi /etc/securetty
console
tty1
tty2
tty3
tty4
#pts/0
#pts/1
#pts/2
#pts/3
...

 

 

실습

설정 전 

 

설정 후 

 

 

마무리

이렇게 root로의 원격 접속을 막았으나 우회 가능성이 있다.

일반 유저로 들어간 뒤 su명령어를 사용

이에 대한 방어법은 su명령어 제한을 둘 수 있다.

 

 

참조

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

환경 :

VMware

CentOS Linux release 7.9.2009 (Core)

 

다음 보안 항목을 나만의 리눅스 서버에 적용하자!

 

참조

+ Recent posts