2022. 11. 29. 16:44ㆍ리눅스(Linux)
$ pam 인증 모듈 종합 실습
- 리눅스 시스템 스냅샷 초기설정으로 변경 후 작업을 진행
1. root로 접근하려면 먼저 itbank 계정으로만 로그인 후 su로 전환 할 수 있다, 다른 사용자는 root 접근이 안 되나, 다른 계정간 su는 허용되어야 한다.
2. root 계정은 콘솔( gdm-password ), 원격이든 직접적으로 로그인 할 수 없다.
3. 원격(sshd)에서 itbank 계정으로 접속할 경우 특정 대역에서 접속해야만 한다.
4. itbank는 평일 10시부터 20시까지는 제한 그 외의 시간에는 sshd를 사용할 수 있다.
5. 최소 암호 길이 : 14, 패스워드 입력 재시도 4, 특수문자 2 Credit
6. 계정 잠금 임계값 : 5, 잠금 기간 : 10분
$ 1번 실습
- root로 접근하려면 먼저 itbank 계정으로만 로그인 후 su로 전환 할 수 있다, 다른 사용자는 root 접근이 안 되나, 다른 계정간 su는 허용되어야 한다.
# 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_env.so
auth sufficient pam_fprintd.so
auth required pam_unix.so nullok try_first_pass
auth sufficient pam_succeed_if.so user = itbank use_uid quiet
auth sufficient pam_succeed_if.so user != root quiet
auth requisite pam_succeed_if.so uid >= 1000 quiet
auth required pam_deny.so
- 리눅스 사용자 인증 부분을 Sufficient에서 required로 변경
- succeed_if 모듈을 이용하여 조건을 추가
- 현재 인증을 시도하는 계정이 itbank 계정일 경우 바로 성공
- 현재 인증을 성공 한 계정이 root 계정이 아니라면 바로 성공
- itbank 계정에서 root 계정으로 전환이 가능
- user1 계정에서 root 계정으로 전환이 불가능
- 일반 사용자간 계정전환은 가능
$ 2번 실습
- root 계정은 콘솔( gdm-password ), 원격이든 직접적으로 로그인 할 수 없다.
# vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_access.so
account required pam_nologin.so
account include password-auth
# vi /etc/pam.d/gdm-password
auth [success=done ignore=ignore default=bad] pam_selinux_permit.so
auth substack password-auth
auth optional pam_gnome_keyring.so
account required pam_access.so
account required pam_nologin.so
account include password-auth
[root@localhost ~]# vi /etc/security/access.conf
- : root : ALL
- root 계정의 모든 곳에서의 접근을 허용하지 않겠다.
- root 계정으로 접속이 불가능 한 것을 확인
$ 3번 실습
- 원격(sshd)에서 itbank 계정으로 접속할 경우 특정 대역에서 접속해야만 한다.
# vi /etc/security/access.conf
+ : itbank : 192.168.1.0/24
- : root : ALL
- : itbank : ALL
- itbank 계정은 192.168.1.0/24 네트워크에서는 접속이 가능
- 그 외의 다른 네트워크에서는 접속이 불가능 하도록 설정
# vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_access.so
account required pam_nologin.so
account include password-auth
- SSH 서비스 라이브러리에 이미 pam_access.so 모듈이 추가되어 있으므로 확인만 진행 한다.
- 192.168.1.0/24 네트워크에서는 접속이 가능 한 것을 확인
$ 4번 실습
- itbank는 평일 10시부터 20시까지는 제한, 그외 시간에는 sshd를 사용할 수 있다.
# vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth include password-auth
account required pam_time.so
account required pam_access.so
account required pam_nologin.so
account include password-auth
- sshd 라이브러리에 pam_time.so 모듈 추가
# vi /etc/security/time.conf
sshd;*;itbank;!Wk1000-2000
- 평일 10시부터 오후 20시까지는 ssh 접속이 제한 되는 것을 확인
$ 5번 실습
- 최소 암호 길이 : 14, 패스워드 입력 재시도 4, 특수문자 2 Credit
# 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_env.so
auth sufficient pam_fprintd.so
auth required pam_unix.so nullok try_first_pass
auth sufficient pam_succeed_if.so user = whitehacker use_uid quiet
auth sufficient pam_succeed_if.so user != root quiet
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=4 minlen=14 ocredit=2
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
- user1 계정으로 로그인 하여 패스워드 변경 테스트를 진행
- "Qwer!234%" 사용
- 패스워드 변경작업이 정상적으로 잘 수행되는 것을 확인
- 9글자 + 숫자 1 + 소문자 1 + 대문자 1 + 특수문자 2 = 14글자 완성
$ 6번 실습
- 계정 잠금 임계값 : 5, 잠금 기간 : 10분
# vi /etc/pam.d/sshd
#%PAM-1.0
auth required pam_tally2.so deny=5 unlock time=600
auth required pam_sepermit.so
auth include password-auth
- sshd 라이브러리에 pam_tally2.so 모듈 추가 후 5번의 인증 실패 시 10분동안 계정잠김 상태가 되도록 설정값 입력
- password-auth 보다 앞쪽으로 설정, 만약 뒤쪽에 설정 되어있을 경우 패스워드값 입력이
정상적으로 들어오면 그자리에서 즉시 성공이 된다.
- user1 계정의 패스워드 입력 시 여러 번 틀려준다.
# pam_tally2
Login Failures Latest failure From
user1 6 01/29/19 13:03:16 192.168.1.1
- 정상적인 패스워드 값을 입력하여도 로그인이 되지 않는것을 확인 할 수 있다.
# pam_tally2 -u user1 --reset=0
- 패스워드 입력 횟수 초기화 후 다시 접속을 시도
- 패스워드 입력 실패 횟수 초기화 후 접속이 잘 되는 것을 확인
'리눅스(Linux)' 카테고리의 다른 글
Web Server (웹 서버) & WAS Server (왓스 서버)& 웹 프로그래밍 (0) | 2022.11.30 |
---|---|
[Centos 7] DNS ( Domain Name System ) (0) | 2022.11.29 |
[Centos 7] Linux Authentication Module - PAM (Pluggable Authentication Modules) (0) | 2022.11.29 |
[Centos 7] Linux Backup 실습 (Tar, xfsdump, xfsrestore, dd, TimeShift, Rsync) (0) | 2022.11.29 |
[Centos 7] Linux Backup 관리(Tar, xfsdump, xfsrestore, dd, TimeShift, Rsync) (0) | 2022.11.29 |