prevent-0.6은 /var/log/secure 로그를 실시간으로 분석하여, ssh의 접근 실패를 감지하여, 불법적인 접근시도인 bruteforce attack을 탐지하고 차단하기 위한 프로그램 입니다.
(접근 아이피에 대한 clipping level을 지정해 주는 프로그램 입니다.)
[실행]
chmod 700 prevent 라고 퍼미션을 준뒤에,
실행은 ./prevent start & 라고 하며, background에서 돌수 있도록 동작을 시켜주시면 좋습니다.
정지는 ./prevent stop 이며, ./prevent라고 치면 프로그램의 실행 방법을 알수 있습니다.
[프로그램 동작 개요]
static으로 컴파일 되어있기 때문에, 어떤 Version의 Redhat 배포판에서도 동작이 가능합니다.
(Redhat 계열과 비슷한 구조를 가진 다른 배포판에서도 동작이 가능할것으로 판단됩니다.)
다만 권고할것이 있다면, /var/log/secure 파일이 있어야 하며, 차단을 위해서 /etc/hosts.deny를 사용하며, /etc/hosts.deny 안에 다음과 같이 설정되어야 합니다.
vi /etc/hosts.deny
——————
sshd: . /etc/denyip
——————
/etc/denyip 파일은 프로그램이 동작할때 자동 생성되며, 퍼미션은 0600 으로 root만 읽고 쓰기가 되도록설정해 줍니다.
ssh 접속 실패에 대해서는 clipping level 5를 적용하였기 때문에, 다섯번의 연결 실패가 있다면, 자동으로 denyip에 등록이 되고, 차단이 되게 됩니다.
(이때 ip의 접속 실패를 count하는곳은 /var/log/prevent/(접속 실패 경험이 있는 ip) 에서 각 ip별로 counting됩니다. prevent 디렉토리는 자동생성 됩니다.)
* 단 5번중 한번이라도 정상적인 접속이 이루어졌다면, 실패 기록은 clear 됩니다.
(정상 사용자의 차단 방지)
/var/log/prevent/ 에 등록 되고 삭제되는 조건
– 등록 : ssh 연결이 한번이라도 실패하게되면, 자동적으로 등록되고 counting됨.
– 삭제 : 1) ssh 연결이 5번 실패하여, denyip에 등록되는 경우 삭제됨.
………..2) ssh 연결이 5번안에 한번이라도 성공하게 되면, 삭제됨.