[보안] Password

markyang92·2021년 6월 2일
0

security

목록 보기
5/10
post-thumbnail
post-custom-banner

이 문서는 Ubuntu 20.04 LTS를 기준으로 함

패스워드 최대 사용 기간 설정

  • 패스워드의 최대 사용 기간은 90일 미만으로 하자!
  • 기존
    • /etc/login.defs
      • PASS_MAX_DAYS: 사용가능한 password 기간
        • 90으로 바꾸자

패스워드 최소 길이 설정

/etc/login.defs

  • 아래와 같이 PASS_MIN_LEN을 설정하자

/etc/pam.d/common-password

  1. common-password 파일은 매우 중요하므로 미리 백업하는 것을 추천한다.
  • $ cat /etc/pam.d/common-password 파일 내의 아래 항목 확인

    여기서 min=8과 같은 항목이 존재하는지 확인 (없다면 아래 라인 추가)
password      requisite      pam_cracklib.so retry=3 minlen=8 difok=3   


주의
1. /etc/pam.d/common-passwd 파일은 매우 중요하므로 백업을 만들어 둔다.
2. 위 라인은 "Enter" 없이 추가되어야 하며, 반드시 이어진 라인으로 추가
3. 기존 root 창을 연결한 상태에서 신규 터미널에서 테스트를 하여 정상여부를 확인한다.


성공
Bad: new password is just a wrapped version of the old one은 아래에 이전 암호 기억도 넣어서 뜨는 거임


에러 확인
1. $ passwd 명령으로 현재 로그인한 계정의 패스워드를 바꾸는 명령 입력

올바른 암호 입력 시, 인증 토큰 수정 오류
틀린 암호 입력 시, 모듈을 알 수 없음(Module is unknown)


암호 없는 계정

  1. $ cat /etc/passwd 를 보면

    두 번째 필드가 패스워드인데 저기가 비면 패스워드가 없는 것!
  1. 쉘을 잘 다루면 바로 찾을 수 있겠지만..
    본인은 그냥 $ cat /etc/passwd | grep :: 로 찾아봄

    두번째 필드가 빈 곳은 없네..

  1. 만약 있다면! 두 번째 필드*를 추가하자.
$ sudo vi /etc/passwd	# 직접 파일 수정한다.
===== /etc/passwd =======
ID::1234:4567::/var/lib:/usr/sbin	# 두 번째 필드가 빈 계정 발견!

ID:*:1234:4567::/var/lib:/usr/sbin	# 두 번째 필드에 * 삽입

/etc/shadow 권한

  • /etc/shadow는 패스워드가 암호화되어 저장되어 있다.
    • 이 파일의 권한이 400이 아니면 취약하다.
$ sudo chown root /etc/shadow	# /etc/shadow 파일의 소유를 root로 한다.
$ sudo chmod 400 /etc/shadow	# /etc/shadow의 permission을 400으로한다.
$ ls -l /etc/shadow
-r-------- 1 root shadow 1487  62 18:07 /etc/shadow

/etc/shadow 없는 경우

  • 패스워드를 /etc/shadow로 암호화 하지 않다면
$ sudo pwconv

명령으로 shadow化 하여 /etc/shadow 파일을 생성해야한다.


만기될 패스워드 경고

  • 만기도래 패스워드를 사전에 권고하여 패스워드 변경을 권고함
    • 패스워드가 만기 경고는 7일 이상으로 설정되어 있으면 양호
  • $ sudo vi /etc/login.defs PASS_WARN_AGE 7
  • 7이상으로 설정

최근 패스워드 기억 피하기

  • 패스워드 추측 공격을 피하기 위하여 패스워드 최근 사용 기억 여부 설정 점검
    최근 패스워드 기억 설정이 존재하고 값은 1이상으로 설정되어야 양호
  • /etc/pam.d/common-passwd 파일에 아래 라인을 추가한다.
password	requisite	pam_pwhistory.so remember=1

주의
1. /etc/pam.d/common-passwd 파일은 매우 중요하므로 백업을 만들어 둔다.
2. 위 라인은 "Enter" 없이 추가되어야한다. 스페이스 바 하나 띄워서 입력
3. 기존 root 창을 연결한 상태에서 신규 터미널에서 테스트를 하여 정상여부를 확인한다.


성공


패스워드 복잡도

  • 해당 파일에 어려운 패스워드 강제 적용 설정이 존재해야 양호
    • 영문 대,소문자 구분없이 2문자, 숫자 2개, 특수문자 1개
    • lcredit=2: 소문자 2개 이상
    • dcredit=2: 대문자 2개 이상
    • ocredit=2: 특수문자 1개 이상

  • /etc/pam.d/common-password


profile
pllpokko@alumni.kaist.ac.kr
post-custom-banner

0개의 댓글