-
중국발 해킹 시도와 fail2ban 사용하기일상/블로그관리 2014. 12. 15. 03:37728x90반응형
주말에 서버에서 작업하고 있는데 자꾸 이메일 알림이 들어와서 메일함을 확인해보니
아래와 같은 메세지가 메일함에 가득 차 있었다.
Hi,
The IP 123.127.36.162 has just been banned by Fail2Ban after
5 attempts against SSH.
Here are more information about 123.127.36.162:[Querying whois.apnic.net]
[whois.apnic.net]
% [whois.apnic.net]
% Whois data copyright terms http://www.apnic.net/db/dbcopyright.html% Information related to '123.127.36.160 - 123.127.36.191'
inetnum: 123.127.36.160 - 123.127.36.191
netname: BUCGI-CO
descr: BUCGI-CO
country: CN
admin-c: Qh284-AP
tech-c: Qh284-AP
mnt-by: MAINT-CNCGROUP-BJ
changed: hostmast@publicf.bta.net.cn 20080403
status: ASSIGNED NON-PORTABLE
source: APNICperson: QI haifeng
address: Chao yang qu wang jing xin xing chan ye kai fa qu li ze zhong yuan 2-218-220
country: CN
nic-hdl: Qh284-AP
phone: +86-10-13581605988
fax-no: +86-10-64915798
e-mail: buchi2006@163.com
mnt-by: MAINT-CNCGROUP-BJ
changed: hostmast@publicf.bta.net.cn 20080403
source: APNIC% This query was served by the APNIC Whois Service version 1.69.1-APNICv1r0 (UNDEFINED)
Regards,
Fail2Ban
어떤 IP가 패스워드 무작위 입력으로 SSH 로그인 시도를 5번 시도하다가 fail2ban 프로그램에 자동으로 막혀
block 처리가 되었다는 것을 알려주는 메일이였다.
친절하게 침입을 시도한 ip의 whois 정보까지 같이 알려주고 있다. 중국 주소인 듯 하다.
이런 시도가 많았는지 아래와 같이 grep "Last"로 확인해보니 어제 하루에만 거의 40번의 해킹 시도가 있었다.
Last-Attempt-Date: Sun, 14 Dec 2014 02:54:28 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 02:54:28 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 03:07:01 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 03:07:01 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 03:59:04 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 03:59:04 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 05:57:36 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 05:57:36 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 06:20:04 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 06:20:04 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 06:44:00 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 06:44:00 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 08:32:38 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 08:32:38 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 09:47:55 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 09:47:54 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 10:12:01 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 10:12:01 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 10:35:17 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 10:35:16 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 13:36:00 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 13:36:00 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 14:37:24 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 14:37:24 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 16:04:27 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 16:04:27 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 16:17:48 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 16:17:47 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 17:57:49 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 17:57:49 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 23:46:25 +0900
Last-Attempt-Date: Sun, 14 Dec 2014 23:46:25 +0900흔한 아이디와 무작위로 쉬운 암호를 입력해 계속해서 ssh 로그인을 시도하는 것을 ssh brute force login attack이라고 하는데
fail2ban은 이런 공격을 막기 위한 프로그램으로 iptables가 연동되어 공격을 시도한 ip 차단을 자동으로 할 수 있는 것이 장점이다.
fail2ban을 사용해서 차단된 ip들은 iptalbes -L 명령어로 확인할 수 있다.
어제 해킹을 시도했던 아이피들이 차단이 된 것을 아래와 같이 확인하였다.
# iptables -L
...
Chain fail2ban-SSH (1 references)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
DROP all -- 1.234.56.125 anywhere
DROP all -- 123.127.36.162 anywhere
DROP all -- 122.225.97.67 anywhere
DROP all -- 122.225.109.201 anywhere
DROP all -- 61.174.51.226 anywhere
DROP all -- 62.210.151.213 anywhere
DROP all -- 68.64.163.122 anywhere
DROP all -- 122.225.103.103 anywhere
DROP all -- 60.173.26.16 anywhere
DROP all -- 122.225.109.99 anywhere
DROP all -- 61.174.50.161 anywhere
DROP all -- 94.126.178.1 anywhere
DROP all -- 61.174.51.210 anywhere
DROP all -- 114.31.6.235 anywhere
DROP all -- 218.2.0.121 anywhere
DROP all -- 122.225.103.121 anywhere
RETURN all -- anywhere anywhere추가로 더 자세한 로그를 보고 싶으면 /var/log/secure 파일을 확인해보면 된다.
지금도 잘 막고 있긴 하지만 공격이 계속 들어오고 있으니 설정을 좀 더 엄격하게 해야할 것 같아
/etc/fail2ban/jail.conf 에 있는 fail2ban의 현재 설정값을 확인해 보았다.
# "bantime" is the number of seconds that a host is banned.
bantime = 84600# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600# "maxretry" is the number of failures before a host get banned.
maxretry = 3..
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath = /var/log/secure
maxretry = 5
maxretry는 최대 로그인 실패 가능 횟수를 의미하고
findtime은 위 로그인 실패를 확인할 시간 단위이다.
bantime에서는 findtime 안에 maxretry 번 로그인 실패한 ip들을 차단할 시간을 설정할 수 있다.
이 파일에서는 600초안에 3번 로그인 실패한 ip를 하루(84600초)동안 차단하도록 되어있다.
ssh-iptables 는 ssh 접근을 탐지해서 실패할 경우 iptables에서 차단하는 기능을 설정할 수 있다.
enabled=true로 되어 있어야 해당 기능을 실행할 수 있다.
그리고 maxretry는 ssh에서의 최대 로그인 실패 횟수를 의미한다.
일단 findtime을 조금 늘리고 ssh-iptalbes의 maxretry를 3으로 변경하였다.
그리고 아래와 같이 service fail2ban 서비스를 재시작하여 변경된 설정을 변경하였다.
#service fail2ban restart
Stopping fail2ban: [ OK ]
Starting fail2ban: [ OK ]일단은 이렇게 미봉책으로 설정을 조금 수정하였지만
차후 ssh 포트를 변경하거나 중국발 ip를 다 접근 차단하는 식이 추가 대응이 필요할 것 같다.
728x90반응형'일상 > 블로그관리' 카테고리의 다른 글
[정기 초대장 배포 완료 ] 초대장 10장 배포합니다. (44) 2015.01.12 [ 구글 애드센스 ] pin number 도착 (0) 2014.12.20 [정기 초대장 배포] 초대장 10장 배포합니다. (39) 2014.11.29 [정기 초대장 배포] 초대장 10장 배포합니다. (29) 2014.10.17 [마감] 티스토리 초대장 10장 배포 (33) 2014.08.03