출처 : 유튜브 따라하면서 배우는 IT
su [-] [사용자명]
- 다른 사용자로 로그인할 때 사용한다.
-
(dash)의 유무
- 있을 때 : su - root / 입력한 사용자의 사용자 초기화 파일 적용
- 없을 때 : su root : 현재 사용자의 환경을 유지, 사용자 초기화파일 적용X
last
: /var/log/wtmp 로그 파일을 참조해서 로그인했던 정보를 출력해주는 명령어 시스템에 공통적인 인증 방법을 제공
어떤 보안 인증 기능을 추가할 때 모듈로 만들어서 쉽게 보안 설정 내용들을 교체 또는 추가 제거가 가능하다.
모듈의 종류는 다양하며, 각각 모듈의 기능을 정확히 파악하는 것이 중요
프로그램이 사용자 인증이 필요하면 PAM 라이브러리를 호출
PAM 라이브러리는 호출되면 호출한 응용 프로그램의 설정 파일을 검사, 설정 파일의 내용에 맞는 PAM 모듈을 적용
설정 파일이 없으면, 기본 설정 파일 사용 (other)
설정 파일은 사용자 인증을 검사하기 위해 필요한 유형(형식)을 가짐
auth | sufficient | pam_rootok.so | |
---|---|---|---|
module_type | config_flag | module_path | module_argument |
PAM이 어떤 타입의 인증을 사용할 것인지를 지정
auth : 사용자 인증에 사용하며 올바른 패스워드인지 아닌지 확인
account : 계정 관리를 수행, 사용자의 위치, 시간, 권한 등을 지정하여 접근을 결정
passwd : 사용자가 패스워드를 변경할 수 있는 모듈 지정
session : 사용자가 인증 받기 전후에 수행되어야 할 작업을 지정
PAM에서 사용되는 모듈들이 결과에 따라 어떤 동작을 취할지 결정
required
: 이 모듈이 성공값을 반환해야 최종 인증에 성공
requisite : 이 모듈이 성공값을 반환해야 최종 인증에 성공
sufficient : 이 모듈이 성공값을 반환하면 바로 인증 성공
optional : 선택사항, 일반적으로 무시, 다른 플래그에 의한 최종 결과가 불분명할 시 optional값이 적용
include : 다른 설정 파일을 불러옴
/usr/lib64/security 디렉토리 내의 어떤 모듈을 사용할 지 지정
모듈에 전달되는 매개변수 값을 나타냄
debug : 시스템 로그 파일에 디버그 정보를 남기게 함
no_warn: 모듈이 경고 메시지를 보내지 않게 함
pam_permit.so, pam_deny.so : 항상 성공/실패를 return
pam_warn : 호출한 사용자 및 호스트 정보를 messages 로그에 남김
pam_access : 계정 또는 IP 주소를 이용해서 시스템 접급을 허용/거부
pam_pwcheck : /etc/login.defs 파일을 참조하여 암호를 확인하는 명령어
pam_securetty : /etc/securetty 파일을 참조하여 터미널 장치가 root로 접근할 수 있는지 없는지 판단
pam_time : 시간, 쉘 등을 설정할 수 있는 모듈
pam_wheel : su 서비스에 사용함, su를 이용한 root접근을 막을 수 있음
- Root 계정 접근 제어 설정해보기
- 보안을 위하여 root 사용자로 바로 로그인하지 못하도록 설정해보기
- PAM 설정해보기
- PAM 모듈을 설정하여 여러가지 접근 제어 설정해보기
su , passwd
cat su
텍스트로 되어있는 설정파일 #은 주석. PAM 모듈은 여러 가지 사용한다.
root사용자면 ok를 반환하도록. 이 값이 성공하면 밑에것들은 확인하지 않고 바로 로그인이 되도록 성공시킴. 성공하지 않으면 그 다음줄을 반환할 것이다.
account : 사용자 계정을 관리
include: 다른 설정파일을 불러와서, 그 설정내용까지도 확인하게 하는 것.
su - user01 바로 로그인이 되는 것처럼..
cat su -> include -> postlogin (이 파일을 불러와서 추가적으로 하고 있다는 말임)
postlogin 등 PAM 모듈 설정 파일
system-auth 까지 또 추가적으로 불러오고 있는 것임
시나리오 1 : root로 바로 로그인 할 때
- 필요한 것 : root사용자의 패스워드만 필요
시나리오 2 : root로 바로 로그인은 못하고 일반 사용자로 로그인 후 su 로 root전환
- 🔐⭐🌟필요한 것 : 일반 사용자 id, 일반 사용자 PW, root PW
- 좀 더 안전하게 사용할 수 있다.
cd /etc/pam.d
ls
vi su
(원격에 접속)🖥️ 특정 사용자는 로그인을 평일 9시 반부터 18시 반까지 주말에는 이용 불가
/etc/pam.d/sshd 파일에 다음 설정 추가
account (공백) requisite (공백) pam_time.so
- pam_time.so : 시간값으로 설정할 수 있는 모듈
/etc/security/time.conf sshd 프로그램을 이용하는 모든 터미널 장치는 일주일 중에서 아침 9시부터 저녁 5시까지는 접속을 금지
sshd;*;user;!Wk0900-1700
프로그램;터미널;사용자;시간
restart하면 ifconfig보면 ip주소를 볼 수 있다.
putty 로 설정 후에 확인!
vi /etc/pam.d/sshd
명령어 입력sshd;*;root;!Wk0900-1700
- 어떤 서비스인지, *(터미널 장치를 지정(어떤 터미널을 통해서든)), root(사용자 이름),특정 사용자 시간 앞에 !는 저 시간을 제외(저 때만 접속이 안 되게 설정)