커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
*
HanIRC의 #coffeenix 방
[
장비 및 회선 후원
]
> Forum <
IT 일정
N
e
w
!
자동화 프로젝트
HOME
>
네트워크(network)
>
ssh / telnet
도움말
검색 :
사이트
WHOIS
웹서버 종류
pam_geoip를 활용한 sshd 설정
작성일 : 2011/08/22 18:39
글쓴이 : 티니 (
http://tini4u.net/
)
조회수 : 8412
[
이전화면
/
수정
] 비밀번호 :
--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky #at# tini4u.net]
- 작성일 : 2011-08-22
- 사이트 :
http://linux.tini4u.net/
- 원제목 : pam_geoip를 활용한 sshd 설정
- 환 경 : CentOS 5.6
- 키워드 : pam_geoip, geoip, pam, sshd
--------------------------------------------------------------------------------------
이 문서에서는 MaxMind의 GeoIP 데이터와 pam 모듈의 연동 방법을 다루도록 하겠습니다.
이미 온라인상에 GeoIP DB를 활용하는 방법은 많이 존재합니다.
Apache, Nginx, PHP, iptables 기타 등등..
이런 방법중에 한가지로 PAM 모듈과 연동하여 활용하는 방법을 알아보도록 하겠습니다.
1. GeoIP C API 설치 [최신버전:
http://www.maxmind.com/app/c]
c 언어로 제작된 모듈들을 빌드하기 위해서는 MaxMind에서 제공하는 GeoIP C API가 필요합니다.
[root@localhost]# wget
http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz
[root@localhost]# tar xfz GeoIP-1.4.8.tar.gz; cd GeoIP-1.4.8
[root@localhost]# ./configure --prefix=/usr/local/GeoIP
[root@localhost]# make
[root@localhost]# make install
2. GeoIP DataBase 다운로드 (도시코드)
GeoIP 연동시 사용할 DB를 다운로드 합니다.
MaxMind 에서 제공하는 Open DB는 2가지 종류가 있는데
국가코드만 제공하는 GeoIP.dat, 국가코드 및 도시코드까지 제공하는 GeoLiteCity.dat이 있습니다.
여기서는 GeoLiteCity.dat를 다운로드 받도록 하겠습니다.
[root@localhost]# wget
http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
[root@localhost]# gzip -d GeoLiteCity.dat.gz
[root@localhost]# mv GeoLiteCity.dat /usr/local/GeoIP/share/GeoIP/GeoLiteCity.dat
3. pam_geoip 설치 [최신버전:
http://ankh-morp.org/code/pam_geoip/]
이제 GeoIP와 연동을 도와줄 실제 PAM 모듈을 설치하도록 하겠습니다.
[root@localhost]# wget
http://ankh-morp.org/code/pam_geoip/pam_geoip-0.9.tar.gz
[root@localhost]# tar xfz pam_geoip-0.9.tar.gz; cd pam_geoip-0.9
[root@localhost]# sed -i 's|CCFLAGS=|CCFLAGS=-I/usr/local/GeoIP/include |g' Makefile
[root@localhost]# sed -i 's|LDFLAGS=|LDFLAGS=-L/usr/local/GeoIP/lib |g' Makefile
[root@localhost]# make module
-- i386
[root@localhost]# cp -a pam_geoip.so /lib/security/pam_geoip.so
-- x86_64
[root@localhost]# cp -a pam_geoip.so /lib64/security/pam_geoip.so
4. geoip.conf 설정
※ 여기서는 SSHd와 연동하는 방법만 설명합니다. 나머지는 응용하시면 되겠습니다.
GeoIP PAM 모듈이 참조할 시큐리티 설정파일을 생성하도록 하겠습니다.
아래 설정은 한국과 미국, 그리고 영국을 제외한 모든 국가의 접속을 차단하겠다는 설정 입니다.
location 섹션에서 콤마를 기준으로 앞이 국가코드, 뒤가 도시코드 입니다.
여러개를 입력하시려면 세미콜론으로 입력하시면 됩니다.
[root@localhost]# vi /etc/security/geoip.conf
#
# /etc/security/geoip.conf - config for pam_geoip.so
#
#
#<domain> <service> <action> <location>
* sshd allow KR,Seoul
* sshd allow KR,*
* sshd allow US,*; GB,*
* sshd deny *
5. sshd와의 연동
이제 sshd에서 사용하는 pam 설정 파일에 geoip를 연동시키도록 하겠습니다.
기존 설정의 최상단에 pam_geoip.so 모듈을 연동하도록 아래와 같이 설정을 추가해 주시면 됩니다.
[root@localhost]# vi /etc/pam.d/sshd
#%PAM-1.0
#-- pam_geoip
account required pam_geoip.so system_file=/etc/security/geoip.conf \
geoip_db=/usr/local/geoip/GeoLiteCity.dat action=allow
#-- end
auth include system-auth
account required pam_nologin.so
account include system-auth
password include system-auth
session optional pam_keyinit.so force revoke
session include system-auth
session required pam_loginuid.so
6. 작동 테스트
※ 정상적으로 로그인 되었을 경우
Jan 01 00:00:00 localhost sshd[29200]: pam_geoip(sshd:account): location matched: KR,*
Jan 01 00:00:00 localhost sshd[29200]: Accepted password for root from 123.123.123.123 port 1743 ssh2
Jan 01 00:00:00 localhost sshd[29200]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jan 01 00:00:00 localhost sshd[29200]: pam_unix(sshd:session): session closed for user root
※ 로그인이 거부 되었을 경우
Jan 01 00:00:00 localhost sshd[29231]: pam_geoip(sshd:account): location matched: *,*
Jan 01 00:00:00 localhost sshd[29231]: Failed password for root from 123.123.123.123 port 1744 ssh2
Jan 01 00:00:00 localhost sshd[29232]: fatal: Access denied for user root by PAM account configuration
커피닉스 카페 최근 글
[08/25]
#gpt_question_subje
[08/20]
From what I've seen
[08/14]
сайт
[06/16]
[질문]SAN 스위치 브로드케이드 dcx8510-4 장비관련입니다.
[04/22]
Re: 영화속에 컴퓨터 이야기 ~스워드피쉬(2001)
[10/20]
Cross Compiler 깔
[07/14]
SSL АО
[04/26]
Re: 도스화면 원격조종 여부
[04/25]
도스화면 원격조종 여부
[10/30]
Cshell에서 난수 설정
[10/23]
공항철도주식회사 SE 구인 件
[01/26]
Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
[01/25]
wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
[01/11]
특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
[08/01]
DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
N
e
w
! 최근에 등록한 페이지
KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
오픈캐스케이드 캐드 (OpenCASCADE CAD)
QCad for Windows --- GNU GPL (Free Software)
The Hello World Collection
IPMI를 활용한 리눅스 서버관리
DNS 설정 검사
nagiosgraph 설치 방법
Slony-I 설치 방법 (postgresql replication tool)
Qmail기반의 Anti spam 시스템 구축하기
clusterssh
[ 함께하는 사이트 ]
운영진 :
좋은진호(truefeel)
, 야수(yasu), 범냉이, sCag
2003년 8월 4일~