1. **PAM 설정 파일 수정하기**
PAM을 통해 비밀번호 정책을 설정하기 위해서는 `/etc/pam.d/common-password` 파일을 편집해야 합니다. 이 파일 내에는 `pam_unix.so` 모듈이 있으며, 이 모듈에 다양한 옵션을 추가하여 비밀번호 정책을 설정할 수 있습니다. 예를 들어, 비밀번호의 최소 길이를 8자로 설정하고, 대문자, 숫자, 특수 문자를 포함하도록 강제할 수 있습니다.
```bash
$ sudo nano /etc/pam.d/common-password
```
아래와 같이 `pam_unix.so` 모듈 라인에 옵션을 추가합니다.
```
password requisite pam_pwquality.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
```
- `minlen=8`: 비밀번호 최소 길이를 8자로 설정
- `ucredit=-1`: 대문자가 최소 1개 이상 포함되어야 함
- `lcredit=-1`: 소문자가 최소 1개 이상 포함되어야 함
- `dcredit=-1`: 숫자가 최소 1개 이상 포함되어야 함
- `ocredit=-1`: 특수 문자가 최소 1개 이상 포함되어야 함
2. **비밀번호 만료 정책 설정하기**
사용자의 비밀번호 만료 시기를 설정하여 주기적으로 비밀번호를 변경하도록 강제하는 것도 중요합니다. 이를 위해 `chage` 명령어를 사용할 수 있습니다. 예를 들어, 특정 사용자 계정이 90일마다 비밀번호를 변경하도록 설정하려면 다음과 같이 명령어를 입력합니다.
```bash
$ sudo chage -M 90 <username>
```
- `-M 90`: 최대 사용 기간을 90일로 설정
만약 사용자가 비밀번호를 변경할 시기가 다가왔을 때 경고 메시지를 받고 싶다면 -W 옵션을 사용할 수 있습니다.
```bash
$ sudo chage -W 7 <username>
```
- `-W 7`: 비밀번호 만료 7일 전에 경고 메시지 전달
3. **변경 사항 적용 확인하기**
정책을 설정한 후에는 다시 한 번 설정이 제대로 적용되었는지 확인하는 것이 중요합니다. `chage` 명령어를 통해 확인할 수 있습니다.
```bash
$ sudo chage -l <username>
```
명령어를 입력하면 사용자의 비밀번호 만료 날짜, 경고 날짜, 계정 상태 등에 대한 정보를 확인할 수 있습니다.
이와 같은 방법으로 리눅스 시스템의 사용자 비밀번호 정책을 효과적으로 설정 및 관리할 수 있습니다. 비밀번호 정책을 적절히 설정하면, 외부의 불법적인 접근과 보안 위협으로부터 시스템을 더욱 안전하게 보호할 수 있습니다.