[2024.06.13]
[SSH]
01. 환경 설정 파일
> /etc/ssh/sshd_config
> root 로그인 차단
저장 후 systemctl restart sshd도 실행해 준다
#LoginGraceTime 1m <-- root 사용자 접근 제한
#PermitRootLogin no <-- 로그인 대기 시간 설정
#MaxAuthTries 3 <-- 로그인 시도 횟수 설정
원래 기존 vi sshd_config 안에는 횟수가 6회로 설정되어 있어 6회 이상 로그인 실패 시 이렇게 메시지가 뜬다
아까 sshd 파일에 들어가서 해당 횟수 설정을 할 수 있는데 40번의 MaxSessions 를 3으로 지정해 준 다음
다시 Putty로 들어가서 로그인 시도 후 3회 오류를 내면 해당 메시지가 뜨게끔 설정이 되는 걸 확인할 수 있다
로그인 대기 시간도 설정할 수 있는데 해당 화면에서 LoginGraceTime을 1m(1분)으로 설정한 다음
Putty로 들어가서 아무것도 하지 않고, 마우스 커서도 움직이지 않는 상태로 1분 대기하면 해당 화면이 뜨게 된다
02. 사용자 접근 제한
AllowUsers korea <-- korea 사용자만 허용
vi sshd_sysconfig 파일의 상단에 AllowUsers korea를 입력해 주고 저장
Putty에서 korea를 제외한 root 및 test는 로그인이 되지 않는 걸 볼 수 있다
AllowUsers를 한 korea만 로그인이 되는 화면
cd /etc/pam.d
vi su로 가서 6번 라인에 주석을 달아 준다
그런 후 su root 및 test로 접근 시도 시에 정상적으로 로그인이 되는 걸 확인할 수 있다
AllowUsers korea1 <-- korea1만 사용자만 허용
CentOS7에서 korea1만 설정해 놨기 때문에 korea1을 제외한 korea, korea2, korea3는 해당 화면처럼 로그인이 안 된다
korea1만 설정해 뒀기 때문에 해당 화면처럼 로그인이 되는 걸 확인할 수 있다
AllowUsers korea* <-- korea 계정으로 시작하는 모든 사용자만 허용
그렇기 때문에 korea 계정으로 시작하지 않는 root 및 test 계정은 로그인이 되지 않는다
DenyUsers korea <-- korea 사용자만 차단
DenyUsers korea1 <-- korea1만 사용자만 차단
DenyUsers korea* <-- korea 계정으로 시작하는 모든 사용자만 차단
먼저 DenyUsers korea를 하게 되면 korea 사용자만 차단하는 명령어다
명령어를 저장 후 korea를 로그인하게 되면 로그인이 되지 않는 걸 볼 수 있다
korea 사용자만 차단하는 명령어이기 때문에 korea를 제외한 모든 사용자는 로그인이 가능하다
예를 들어 test로 로그인했을 시 나오는 화면이다
이번에는 korea1, korea2 사용자만 차단하는 명령어다
korea1과 korea2만 차단했기 때문에 로그인이 되지 않으나
둘을 제외한 korea는 로그인이 되며, test나 root 역시 로그인이 가능해진다
해당 *의 경우 korea 계정으로 시작하는 모든 사용자를 차단하는 명령어다
그렇기 때문에 korea는 로그인이 되지 않고 test는 로그인이 되는 걸 확인할 수 있다
AllowGroups china <-- china 그룹 사용자만 허용
다른 창에서 groupadd china를 하고 cat /etc/group으로 china 그룹이 만들어진 걸 확인
groupadd china까지 해 준 다음 systemctl restart sshd를 실행한 다음,
putty로 확인하면 아무것도 china 그룹에 속하지 않기 때문에 다 로그인이 차단된다
#usermod -G china korea1 <-- china group에 korea1을 추가
해당 화면 확인 후
그룹에 korea1만 추가했기 때문에 korea1만 로그인이 가능하고 나머지는 로그인이 차단된 걸 볼 수 있다
그 후 korea2를 추가 후에 su korea2로 접근해도 성공적으로 로그인이 된다
*반대로 DenyGroups china를 하게 될 경우 group에 소속된
korea1, korea2만 로그인이 차단되며 나머지는 다 로그인이 가능해지게 된다
AllowGroups china <-- china 그룹 사용자만 허용
AllowGroups china* <-- china 그룹으로 시작하는 사용자만 허용
DenyGroups china <-- china 그룹 사용자만 차단
DenyGroups china* <-- china 그룹으로 시작하는 사용자만 차단
<그 외 테스트>
CenOS7에서 addgroup으로 china1으로 그룹 하나를 더 추가한 후 china1 그룹에 korea4, korea5를 넣어 준다
그 다음 vi sshd_sysconfig로 가서 DenyGroups china*를 하게 되면 korea1과 다른 그룹에 속해 있는 korea4, korea5를 제외한
나머지 korea3나 korea6는 로그인이 가능한 화면을 확인해 볼 수 있다
반대로, AllowGroups china*을 설정하게 되면 korea1과 korea4, korea5만 로그인이 가능해지며 나머지는 차단된다
03. PAM(Pluggable Authentication Module) 활용한 사용자 접근 통제
> /etc/pam.d/sshd
#vi sshd
2 auth required pam_listfile.so item=user sense=deny file=/etc/ssh/sshusers onerr=succeed
2번 라인에 해당 명령어를 삽입한다
#cd /etc/ssh
#vi sshusers
후 korea1, korea2를 삽입하며 여기에 삽입한 user만 차단된다
korea1과 korea2만 차단되는 걸 확인할 수 있다
반대로
2 auth required pam_listfile.so item=user sense=allow file=/etc/ssh/sshusers onerr=succeed
해당 자리에 allow를 넣게 되면 korea1, korea2만 허용되기 때문에 둘만 로그인이 된다
korea1과 korea2는 로그인이 되며, korea3는 로그인이 되지 않는 화면
auth required pam_listfile.so item=group sense=allow file=/etc/ssh/sshgroups onerr=succeed
#cd /etc/ssh
#vi sshgroups
china1을 설정해 준 다음 저장
china1에서는 korea4, 5가 포함되어 있기 때문에 로그인이 되나
korea4, korea5를 제외하고 나머지는 다 정상적으로 로그인이 되지 않는다