요즘에는 중국 뿐만아니라 다른 나라에서도 불법 접근을 정말 많이 시도 하고 있습니다.
지난 주에는 해킹 까지 당하는 불상사가 있었습니다.-_-; 저같은 초보도 맘이 상하더군요..
아무튼 이런저런 일 때문에 스크립트를 짜집기 해 보았습니다.
시간적 여유가 많다면 문제점을 파악하고 해결하고 싶은데... 그럴 여유가 없군요..
설명 :
1. /var/log/secure 에서 불법 접근을 검색한다.
2. 검색한 내용을 "anonymous_blacklist" 파일에 저장한다.
3. "anonymous_blacklist" 와 "blacklist.txt" 문서를 비교하여 유니크한 IP만을 "blacklist.tmp"파일에 저장한다.
4. "blacklist.tmp" 파일을 "blacklist.txt" 로 복사한다.
5. iptables -F 명령어를 실행하여 모든 룰을 초기화 한다.
6. "blacklist.txt"에 저장되어 있는 IP를 iptables에 등록한다.
7. 기본 서비스 포트를 iptables에 등록 한다.
주의!!
1. crontab에 올려서 주기적으로 실행을 시키기 때문에(저는 5분 단위 ^_^;;) 그전에 뚤리면 대략 난감이죠..
2. 관리자도 패스워드를 한번이라도 틀리게 되면 접속을 할수 없는 상황이 생깁니다. ㅡㅡ;;(diff 를 이용해서 기본 접속 허용 IP를 만들어 놓는것이 ... 어떨까...요?
[root@FC4 ~]# |
[root@FC4 ~]# vi /admin/ip-deny.sh
#!/bin/sh IPTABLES=/sbin/iptables ALLOWED="22 25 80" #서비스 허용 포트 BLACKLIST=/admin/admin-script/BlackList/blacklist.txt #불법 침입 IP 리스트
grep "Failed password for" /var/log/secure |\ egrep -v "invalid user|{USERID}|{LOGINIP}" |\ awk '{ print $11}' |\ uniq > /admin/admin-script/BlackList/tmp/anonymous_blacklist
grep "Failed password for invalid user" /var/log/secure.1 |\ awk '{ print $13}' |\ uniq >> /admin/admin-script/BlackList/tmp/anonymous_blacklist
cat /admin/admin-script/BlackList/tmp/anonymous_blacklist /admin/admin-script/BlackList/blacklist.txt |\ sort | uniq > /admin/admin-script/BlackList/tmp/blacklist.tmp
cp /admin/admin-script/BlackList/tmp/blacklist.tmp /admin/admin-script/BlackList/blacklist.txt
$IPTABLES -F
for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do echo "BlackList ( $x )" $IPTABLES -A INPUT -t filter -s $x -j DROP done
for port in $ALLOWED; do echo "Accepting port ( $port )" $IPTABLES -A INPUT -t filter -p tcp --dport $port -j ACCEPT done
$IPTABLES -A INPUT -t filter -s xxx.xxx.xxx.xxx -j ACCEPT $IPTABLES -A INPUT -t filter -p tcp --syn -j DROP exit 0 |