특정 계정에 대한 SSH 접근 차단 및 계정 스위칭 허용 설정

System Story/CentOS 5,6 2016.09.21 17:20

Oracle DB, MySQL, PostgreSQL 등 DBMS를 설치, 운용하기 위해서는 해당 Aplication을 기동/정지/유지 보수하기 위한 전용계정을 필요로 하게 된다.


해당 OS 계정은 DBMS를 직접 제어할 수 있는 SQL Plus나 pSQL등의 권한이 있기 때문에 보안상 계정에 대한 접근을 제어할 필요가 있을 때가 있다.


만약 DBMS 운용계정등 특정 용도로 만들어진 OS 계정에 대한 SSH 원격 로그인 차단과 함께,

특정 계정에서만 해당 계정을 Switching 할 수 있도록 설정이 필요하다면,


아래와 같이 PAM 인증 Module 설정을 통해 해당 요건을 설정 할 수 있다.


다만 해당 설정은 SSH 및 PAM Base로 동작 하기 때문에 서버에 SSH 이외에 telnet과 같은 원격제어 서비스 데몬이 활성화 되어있고 그를 통해 접근 한다면 해당 설정은 무력화 된다.


때문에 SSH를 제외한 원격제어용 서비스 데몬을 모두 비활성화 처리 하거나 서비스 특성상 어쩔 수 없이 허용되야 할 경우 별도로 PAM 인증 설정을 추가하여야 한다.



1. Linux OS 이하 Telnet 서비스 비활성화 처리하기


[root@test01 ~]#
[root@test01 ~]# chkconfig --level 35 telnet off
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# chkconfig --list | grep telnet
             ekrb5-telnet:          off
             krb5-telnet:           off
             telnet:                 off
[root@test01 ~]#
[root@test01 ~]#



2. PAM 모듈 설치 확인하기


[root@test01 ~]#
[root@test01 ~]# rpm -qa | grep pam| uniq | sort -u
pam-0.99.6.2-14.el5_11
pam-devel-0.99.6.2-14.el5_11
pam_ccreds-3-5
pam_krb5-2.2.14-22.el5
pam_passwdqc-1.0.2-1.2.2
pam_pkcs11-0.5.3-26.el5
pam_smb-1.1.7-7.2.1
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# rpm -qi pam-0.99.6.2-14.el5_11
Name        : pam                          Relocations: (not relocatable)
Version     : 0.99.6.2                          Vendor: CentOS
Release     : 14.el5_11                     Build Date: 2015년 05월 27일 (수) 오후 10시 49분 12초
Install Date: 2015년 12월 09일 (수) 오전 05시 03분 57초      Build Host: builder17.centos.org
Group       : System Environment/Base       Source RPM: pam-0.99.6.2-14.el5_11.src.rpm
Size        : 2590520                          License: GPL or BSD
Signature   : DSA/SHA1, 2015년 05월 27일 (수) 오후 11시 34분 51초, Key ID a8a447dce8562897
URL         : http://www.us.kernel.org/pub/linux/libs/pam/index.html
Summary     : A security tool which provides authentication for applications
Description :
PAM (Pluggable Authentication Modules) 은 시스템 관리자들이 인증용 프로그램들을 다시 컴파일하지 않고도 인증정책을 새로 만들수 있도록 도와주는 보안 관련 툴입니다.
Name        : pam                          Relocations: (not relocatable)
Version     : 0.99.6.2                          Vendor: CentOS
Release     : 14.el5_11                     Build Date: 2015년 05월 27일 (수) 오후 10시 48분 51초
Install Date: 2015년 12월 09일 (수) 오전 05시 04분 02초      Build Host: builder17.centos.org
Group       : System Environment/Base       Source RPM: pam-0.99.6.2-14.el5_11.src.rpm
Size        : 2555432                          License: GPL or BSD
Signature   : DSA/SHA1, 2015년 05월 27일 (수) 오후 11시 34분 51초, Key ID a8a447dce8562897
URL         : http://www.us.kernel.org/pub/linux/libs/pam/index.html
Summary     : A security tool which provides authentication for applications
Description :
PAM (Pluggable Authentication Modules) 은 시스템 관리자들이 인증용 프로그램들을 다시 컴파일하지 않고도 인증정책을 새로 만들수 있도록 도와주는 보안 관련 툴입니다.
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# ls -l /lib/security/pam_listfile.so
-rwxr-xr-x 1 root root 8484 May 27  2015 /lib/security/pam_listfile.so
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# ls -l /lib/security/pam_wheel.so
-rwxr-xr-x 1 root root 5640 May 27  2015 /lib/security/pam_wheel.so
[root@test01 ~]#
[root@test01 ~]#  



3. 특정 계정에 대한 SSH 로그인 제한 PAM 인증 설정 및 로그인 제한 계정목록 작성 (예시계정 : oradba)


[root@test01 ~]#
[root@test01 ~]# vi /etc/pam.d/sshd  ## 맨 윗줄에 아래 설정 추가

auth          required     pam_listfile.so item=user sense=deny file=/etc/ssh/sshusers_limit onerr=succeed

[root@test01 ~]#
[root@test01 ~]# 

[root@test01 ~]#
[root@test01 ~]# vi /etc/ssh/sshusers_limit

oradba

[root@test01 ~]#
[root@test01 ~]#


※ telnet의 경우 아래 참고

[root@test01 ~]#
[root@test01 ~]# vi /etc/pam.d/login
auth    required     pam_listfile.so item=user sense=deny file=/etc/telnet_users_limit onerr=succeed
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# vi /etc/telnet_users_limit

oradba

[root@test01 ~]#



4. 특정 계정에서만 해당 계정(oradba)으로 스위칭 할 수 있도록 아래와 같이 Pam 추가 (예시 : dba 그룹)


[root@test01 ~]#
[root@test01 ~]# vi /etc/pam.d/su 
auth                     required   pam_wheel.so debug use_uid group=dba
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]#



5. oradba 계정에 대한 SSH 원격로그인 차단 확인 및 Switching 차단 로그 확인하기


[helperchoi@test01 ~]$
[helperchoi@test01 ~]$ ssh oradba@192.168.137.10
Address 192.168.137.10 maps to test01, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!


oradba@192.168.137.10's password:

Permission denied, please try again.

oradba@192.168.137.10's password:


[helperchoi@test01 ~]$
[helperchoi@test01 ~]$
[helperchoi@test01 ~]$ su oradba


Password:
su: incorrect password


Password:
su: incorrect password


[helperchoi@test01 ~]$
[helperchoi@test01 ~]$
[helperchoi@test01 ~]$



[root@test01 ~]# cat /var/log/secure

Aug 11 18:34:38 test01 sshd[16058]: Address 192.168.137.10 maps to test01, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
Aug 11 18:34:46 test01 sshd[16058]: pam_listfile(sshd:auth): Refused user oradba for service sshd
Aug 11 18:34:48 test01 sshd[16058]: Failed password for oradba from 192.168.137.10 port 39510 ssh2
Aug 11 18:34:55 test01 sshd[16058]: pam_listfile(sshd:auth): Refused user oradba for service sshd
Aug 11 18:34:57 test01 sshd[16058]: Failed password for oradba from 192.168.137.10 port 39510 ssh2
Aug 11 18:34:57 test01 sshd[16062]: Connection closed by 192.168.137.10
Aug 11 18:35:21 test01 su: pam_wheel(su-l:auth): no members in 'dba' group
Aug 11 18:35:27 test01 su: pam_wheel(su-l:auth): no members in 'dba' group




6. 특정 계정에서(helperchoi)  oradba 계정으로 스위칭 할 수 있도록 Group 권한(dba) 할당 후 Switching 확인


[root@test01 ~]#
[root@test01 ~]# usermod -G dba helperchoi
[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# id helperchoi
uid=509(helperchoi) gid=510(helperchoi) groups=510(helperchoi),512(dba)
[root@test01 ~]#
[root@test01 ~]#


[helperchoi@test01 ~]$
[helperchoi@test01 ~]$ su oradba
Password:
[oradba@test01 helperchoi]$
[oradba@test01 helperchoi]$
[oradba@test01 helperchoi]$


[root@test01 ~]#
[root@test01 ~]#
[root@test01 ~]# tail -f /var/log/secure

Aug 11 18:56:09 test01 su: pam_wheel(su:auth): Ignoring access request 'helperchoi' for 'oradba'
Aug 11 18:56:11 test01 su: pam_unix(su:session): session opened for user oradba by helperchoi(uid=509)












Trackbacks 0 : Comments 0

Write a comment