[SSH]SSH Geoip적용 하여 국가별 IP 허용하기
리눅스 서버 설치 이후 SSH같은 원격 서비스 같은 경우에는 많은 로그인 시도가 발생 하게 되며,
그때그때 해당 IP를 차단하는 방법도 있지만, 이 방법은 많은 손이 가게 되며,
cp pam_geoip.so /lib/security/
64BIT
cp pam_geoip.so /lib64/security/
/etc/ld.so.conf 파일에 GeoIP모듈 추가 하기
vi /etc/ld.so.conf
/usr/local/GeoIP/lib 추가
ldconfig 실행 하기
SSH에 pam_geoip 적용 하기
vi /etc/security/geoip.conf 파일 생성
아래 내용 추가
#
# /etc/security/geoip.conf - config for pam_geoip.so
#
#
#<domain> <service> <action> <location>
* sshd deny KR,Seoul
* sshd deny KR,*
* sshd allow US,*; GB,*
* sshd deny *
/etc/pam.d/sshd 수정 하기
vi /etc/pam.d/sshd
가장 상단에 아래 내용 추가 하기
account required pam_geoip.so system_file=/etc/security/geoip.conf
geoip_db=/usr/local/GeoIP/share/GeoIP/GeoLiteCity.dat action=allow
적용 된 내용 확인 하기
한국 IP 차단 설정후 확인된 로그 입니다.
Oct 28 15:43:53 localhost sshd[12583]: pam_geoip(sshd:account): location KR,* denied for user 로그인ID from 210.116.123.xxx (IPv4)
Oct 28 15:43:53 localhost sshd[12583]: Failed password for 로그인ID from 210.116.123.xxx port 2056 ssh2
Oct 28 15:43:53 localhost sshd[12587]: fatal: Access denied for user 로그인ID by PAM account configuration
한국 IP 허용 설정후 확인된 로그 입니다.
Oct 28 15:50:14 localhost sshd[12595]: pam_geoip(sshd:account): location KR,* allowed for user 로그인ID from 210.116.123.xxx (IPv4)
Oct 28 15:50:14 localhost sshd[12595]: Accepted password for 로그인ID from 210.116.123.xxx port 3805 ssh2
Oct 28 15:50:14 localhost sshd[12595]: pam_unix(sshd:session): session opened for user 로그인ID by (uid=0)