01. 사용자 관리 - 패스워드 이론

prana·2023년 3월 2일
0

Linux

목록 보기
14/28

패스워드 관련 파일 및 명령어

출처 : 유튜브 따라하면서 배우는 it - 리눅스 고급

🔐 패스워드 정책 - 복잡도, 변경주기, 히스토리 등

  • 대/소문자, 숫자, 특수문자를 혼용하여 8글자 이상의 패스워드를 사용

    • 최소 두 개, 보편적으로 3개. 심한 곳은 4개 (패스워드 복잡도라고 함)
  • 동일 문자를 연속 4회 이상 사용하기 금지

  • 패스워드 히스토리를 관리해 2~3개 이상 동일 패스워드 사용 금지

    • 2~3개 이전에 사용했던 패스워드를 그대로 사용하는 걸 말함.
  • 패스워드 변경 주기를 설정 (패스워드 유효기간을 90일 이하로 설정)

    • ex) 3~6개월
  • 사전에 나오는 쉬운 단어나 이름은 패스워드로 사용하지 못하도록 설정

    • 딕셔너리 어택 (패스워드에 많이 사용하는 단어들만 모아둔 파일 ex:qwert123! )
  • 기본 설정된 패스워드는 사용하지 못하도록 설정

  • 초기 부여된 패스워드는 사용자 최초 접속시 변경하도록 설정


패스워드 관련 파일

/etc/security/pwquality.conf - 패스워드 정책 설정 파일

  • cat /etc/security/pwqality.conf 입력하면 나오는 화면
  • 설정파일 같은 곳에 맨 앞 #으로 써놓은 건 주석(설명)임, 설정으로 하려면, #을 지워야 함

패스워드 기본값 설정 파일 - /etc/login.defs

  • etc/shadow 파일에 나오는 ex) 최소 사용일 0 / 최대 사용일 99999 등 자동으로 세팅이 되게 하고 싶다면.!
  • 사용자 생성 시 UID가 1000부터 생성이라고 했는데, 이런 값들도 여기에서 설정할 수 있다.

🤩 패스워드를 변경할 때 사용하는 passwd 명령어

passwd [사용자명]

  • 해당 사용자의 패스워드 변경
  • 사용자명을 입력하지 않으면 현재 사용자의 패스워드로 변경
명령어설명
-n패스워드 변경 후 최소 사용 기간
-x패스워드 변경 후 최대 사용 기간
-w패스워드 만기일 이전에 사용자에게 경고 메시지를 전달할 날짜 지정
-f최초 로그인 시에 강제로 패스워드를 변경하도록 설정
-dshadow 파일의 패스워드 필드 값을 제거.

passwd 입력 없이 로그인 가능
-l해당 사용자의 상태를 locking으로 변경
-S해당 사용자의 현재 패스워드 설정 조회

-ex) 패스워드 필드를 없애면 : 패스워드 없음

  • -l:로그인을 할 수 없음

다음 실습 목차

  1. 사용자 관련 파일 확인해보기
  • /etc/passwd나 /etc/shadow 같은 파일의 내용을 직접 확인해보기
  1. 사용자 관리해보기
  • 사용자 관리 명령어를 이용해서 사용자를 생성 또는 삭제해보는 등의 관리
  1. 패스워드 설정해보기
  • 생성한 사용자가 로그인할 때 필요한 패스워드를 설정해보기

실습

  • 패스워드 별도로 설정이 안돼있어서, !! 부분에 패스워드를 변경하기로 한다.
  • 복잡한 패스워드가 아니어도 설정은 가능
  • 근데, 정책을 설정해서 복잡하게 해야하는 건 맞음

  • passwd -e user01 하고 다시 su - user01 하면 새로운 패스워드로 입력하면 된다

  • authconfig : 명령어를 이용해서 패스워드 정책 설정 (pwquality.conf 대신)
  • 옵션 설정 시 -- 두개로 작성, a 등의 한글자가 아닌 문장이나 한 단어로 길다.

  • authconfig가 authselect로 바뀐 모양이다.
  • 흐음...

  • ex) --enablereqlower : 적어도 몇개의 소문자 사용 등

  • enable reqire lower

  • 명령어를 입력하고, tail -15 /etc/security/pwquality.conf으로 보는 것 같다.
  • lcredit = -1 : 최소한 한 개 이상 쓰게 / 숫자:그 숫자만큼

vi /etc/login.defs

  • 사용자 패스워드 설정 시 기본적으로 설정되는 내용들
  • shadow 파일 설정되는 값
  • PASS_MAX_DAYS 등 확인 가능

  • UID, GID 값 설정 가능
  • CREATE_HOME : yes -> -m 옵션이 홈 디렉토리 생성
  • umask 077 기본-> 사용자 초기화 파일이 부팅되면서 022로 되는 것

  • shadow파일에 설정되는 내용, 사용자 생성 시 기본적으로 생성되는 내용

  • vi /etc/login.defs로 바꿔보기

-> 설정 내용 바꾼 다음, 사용자 추가 해보고
tail -1 /etc/shadow 파일 확인해보면 기본 설정들이 바껴있는 것을 확인할 수 있다.

  • 최소 하루는 있어야 비번을 바꿀 수 있게 됨!
    (터미널 두 개 여는 건 window + 화살표키 )

실습

1. 패스워드 변경하기

  • 남아있는 사용자 확인하고, test 계정에서 !! 되어있는 건 패스워드 필드에 패스워드 설정이 안 되어 있어서 그런것.
  • 다시 하라 하니까 간단 패스워드도 설정 가능.
  • 정책을 설정하여 복잡한 패스워드로 설정할 수 있어야 함.
  • 옵션을 사용해보자.

2. vi /etc/security/pwquality.conf

  • dcredit : 최소한 숫자가 몇 개 이상은 포함되게 해라.

  • ucredit : 대문자가 최소한 포함되게

  • ocredit : other characters, 특수문자

  • minrepeat : 반복되는거

  • gecoscheck : /etc/passwd 의 6번째 필드, 주석란(설명)에 쓴 내용이 들어가면 안 됨

  • dictpath : 특정 파일 경로 안의 내용들은 쓰지 못하게 함. 사전 파일 등도 팔기도 하니까. 보안이 굉장히 강한 곳은 여기까지 되어있음.

3. authconfig 명령어를 이용해서 패스워드 정책 변경

-> 2023. 3월에는 authselect로 보라고 하는 것 같다.

  • lcredit = -1 : 소문자가 반드시 하나 이상 포함되어야 함.

  • 각 항목에서 -1 값을 주면 반드시 해당하는 문자를 포함시켜야 함. 즉 dcredit=-1 이라면 패스워드에 숫자가 반드시 포함되어야 함.

  • 리눅스 유저 패스워드 복잡성

  • root로 user02 를 만들고 패스워드를 만들어준 다음, 오른쪽 창에는 user02로 로그인하여 passwd로 변경하면 복잡하게 만들어지게 된다는 걸 볼 수 있다.

4. /etc/login.defs - 기본적으로 설정되는 내용, shadow파일에 설정되는 내용

  • 사용자 패스워드를 설정했을 때 기본적으로 설정되는 내용 shadow파일에 설정되는 내용
  • head -1 /etc/shadow
  • 5 : Pass_Min_len 은 필드에 나타나지 않음

  • UID 값 설정 가능

  • -m 옵션이 여기에서 지정되어 있어서 그런 것임

    위에 적은 내용

4. 패스워드 기본값 바꾸기

  • /etc/shadow 파일에 들어가는 내용이나 사용자를 생성했을 때 기본값을 생성해주는 내용

  • 해당 내용(PASS_MIN_LEN) 직접 값 변경해주고 새로 로그인해서 들어가서 passwd를 바로 바꾸려고 하면, You must wait ~~ 최소한 하루는 사용해야 바꿀 수 있다고 문구가 뜨는 것을 확인할 수 있다.

참고 내용

0개의 댓글