- This topic has 1개 답변, 2명 참여, and was last updated 15 years, 6 months 전에 by
인베인. This post has been viewed 3419 times
-
-
* 적용 OS : Fedora 9~12/Centos5.x/RHEL 5.x/SULinux 2.0
크래킹 목적으로 특정 서비스 포트로 불법적으로 접근하는 아이피 주소를 차단하고자 하는 경우에는 사용자 정의 체인에 새로운 룰을 추가하여 접근을 제한시킬 수 있습니다. 이를 위해서 block-ip 스크립트를 다음과 같이 생성합니다.
#!/bin/sh
#
# Scripted by No1linuxer at no1linux.org
#
EXT_IF="eth0"
chain="RH-Firewall-1-INPUT" <- 사용자 정의 체인명으로 변경해 주어야 합니다.
if [ $# -lt 1 ]; then
echo "Usage: block-ip <TCP port>"
exit 1
fi
if [ -f /etc/sysconfig/firewall.blacklist ]; then
for i in $(< /etc/sysconfig/firewall.blacklist) ; do
iptables -I $chain -i $EXT_IF -p tcp --dport $1 -s $i -j DROP
cat /etc/sysconfig/firewall.blacklist >> /etc/sysconfig/fw.blacklisted
cat /dev/null > /etc/sysconfig/firewall.blacklist
done
else
echo "Please create /etc/sysconfig/firewall.blacklist file and then input blocking an IP per a line."
fi
상기 스크립트에서 EXT_IF=는 인터넷이 연결된 이더넷 인터페이스를 의미하며 chain=에 사용자 정의 체인이름을 넣어주어야 합니다. block-ip 스크립트에 실행 가능한 퍼미션을 부여합니다.
# chmod 750 block-ip
/etc/sysconfig/firewall.blacklist 파일 안에는 차단할 아이피주소를 한 줄씩 넣어줍니다.
192.168.0.4
192.168.0.9
10.0.0.2
이 스크립트를 실행하는 방법은 다음과 같습니다.
./block-ip 서비스포트
서비스 포트를 스크립트 뒤에 넣어 실행하면
/etc/sysconfig/firewall.blacklist 파일에 있는 모든 아이피들은 22번 포트로 접근이 불가능해집니다.
방화벽에 등록된 블랙리스트 아이피는 /etc/sysconifg/fw.blacklisted 파일에 기록되며,
/etc/sysconfg/firwall.blacklist 파일은 초기화되어 데이터가 남아 있질 않게 됩니다. 계속해서 블랙리스트
등록하고자 하는 아이피들은 /etc/sysconfig/firewall.blacklist 파일에 넣어주고, block-ip
스크립트를 실행해 주면 됩니다.반대로 블랙리스트로 등록된 특정 아이피를 방화벽에서 해제해 주려면 다음과 같은 스크립트(unblock-ip)를 만듭니다.
#!/bin/sh
#
# Scripted by No1Linuxer at no1linux.org
#
EXT_IF="eth0"
chain="RH-Firewall-1-INPUT" <- 사용자 정의 체인 이름으로 변경해 주어야 합니다.
if [ $# -lt 1 ]; then
echo "Usage: unblock-ip <TCP port>"
exit 1
fi
if [ -f /etc/sysconfig/firewall.whitelist ]; then
for i in $(< /etc/sysconfig/firewall.whitelist) ; do
iptables -D $chain -i $EXT_IF -p tcp --dport $1 -s $i -j DROP
cat /etc/sysconfig/fw.blacklisted | sed -e "/$i/d" > /tmp/fw.unblacklisted
mv -f /tmp/fw.unblacklisted /etc/sysconfig/fw.blacklisted
cat /dev/null > /etc/sysconfig/firewall.whitelist
done
else
echo "Please create /etc/sysconfig/firewall.whitelist file and then input unblocking an IP per a line."
fi
/etc/sysconfig/firewall.whitelist 파일에 해제하고자 할 블랙리스트
아이피를 한 줄로 넣어준 후에 ‘unblock-ip 포트번호’ 실행하면 됩니다. 이 명령이 실행되면 블랙리스트 아이피는
방화벽에서 해제되며, /etc/sysconfig/fw.blacklisted에는 방화벽에서 블랙리스트로 설정된 아이피만 계속 남아
있게 됩니다.*참고: 프로그래밍 능력이 전무한 상태라 쉘 스크립트가 좀 허접할 수 있으므로, 이점 양해바라고, 좀더 매끄럽게 스크립트화될 수 있도록 조언해 주시면 감사하겠습니다.
리눅스를 더 가까이 - No1.Linux
- 답변은 로그인 후 가능합니다.