특정 아이피와 포트 접속 제한 |
* 이 게시물은 페도라및 센트OS용이지만 넘버원 리눅스에서도 연습용으로 사용가능합니다.
* 적용 OS : Fedora/Centos5.x/RHEL 5.x/SULinux 2.0
* CentOS 서버 구축 1023~1024쪽 업데이트 문서
크래킹 목적으로 특정 서비스 포트로 불법적으로 접근하는 아이피 주소를 차단하고자 하는 경우에는 사용자 정의 체인에 새로운 룰을 추가하여 접근을 제한시킬 수 있습니다. 이를 위해서 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에는 방화벽에서 블랙리스트로 설정된 아이피만 계속 남아 있게
됩니다.





