Block or unblock: ip, range, subnet, contries trong iptables (block ip nuoc ngoai)
1. Block 1 dia chi IP
Following iptable rule will drop incoming connection from host/IP 202.54.20.22:
Trích dẫn:
|
iptables -A INPUT -s 202.54.20.22 -j DROPiptables -A OUTPUT -d 202.54.20.22 -j DROP |
2. Block day IP
a. su dung command
Trích dẫn:
|
# iptables -A INPUT -s 192.168.100.0/24 -j DROP |
b. Edit file /etc/sysconfig/iptables
them vao
Trích dẫn:
|
sbin/iptables -I INPUT -s 221.0.0.0/255.0.0.0 -j DROPsbin/iptables -I INPUT -s 221.0.0.0/8 -j DROP |
3. Block tat ca ip trong danh sach chi dinh
Cach 1:
If you have lots of IP address use the following shell script:
A) Tao file:
Trích dẫn:
|
# vi /root/ip.blocked |
Nhap vao cac dia chi IP ma ban can block:
# Ip address block file
Trích dẫn:
|
202.54.20.22 202.54.20.1/24 #65.66.36.87 |
Save file
B) Tao doan script nhu sau va them vao file iptables:
Trích dẫn:
|
BLOCKDB=”/root/ip.blocked” IPS=$(grep -Ev “^#” $BLOCKDB) for i in $IPS do iptables -A INPUT -s $i -j DROP iptables -A OUTPUT -d $i -j DROP done |
C) Restart lai iptables service
# /etc/init.d/iptables restart
Cach 2:
Nếu bạn đang đối mặt với rất nhiều cuộc tấn công, tốt hơn hết bạn nên sử dụng một phương pháp tự động hơn để thêm địa chỉ IP từ danh sách cấm. Để làm việc này, ta tạo đoạn mã sau:
#!/bin/sh
for i in $(< banned_IPs.cfg) ; do
iptables -I INPUT -i eth1 -s “$i” -j DROP
done
Lưu đoạn mã trên vào một file với tên bất kì như banned_IPs.sh và gán cho nó quyền thực thi:
# chmod +x banned_IPs.sh
Bây giờ tạo một file banned_IPs.cfg và nhập vào danh sách địa chỉ IP bạn muốn khóa, mỗi cái trên một dòng:
122.174.12.228
129.122.10.23
111.154.84.130
Bây giờ chạy file banned_IPs.sh để đưa địa chỉ IP bạn muốn khóa thêm vào danh sách IP cấm trong iptables:
# ./banned_IPs.sh
Chúc Vui vẻ !
4.Unblock / Delete an IP Address Listed in IPtables Tables
List existing chains
Type the following command to list current IPs in tables:
Trích dẫn:
|
iptables -L -n iptables -L -n -v iptables -L chain-name -n -v iptables -L spamips -n -v |
List existing chains with line number
To display line number along with other information, enter:
iptables -L INPUT -n –line-numbers
iptables -L OUTPUT -n –line-numbers
iptables -L OUTPUT -n –line-numbers | less
iptables -L spamips -n -v –line-numbers
iptables -L spamips -n -v –line-numbers | grep 202.54.1.2
Trích dẫn:
|
Chain droplist (3 references)num pkts bytes target prot opt in out source destination 1 0 0 LOG 0 — * * 116.199.128.0/19 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DROP Block’ 2 0 0 DROP 0 — * * 116.199.128.0/19 0.0.0.0/0 3 0 0 LOG 0 — * * 116.50.8.0/21 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DROP Block’ 4 0 0 DROP 0 — * * 116.50.8.0/21 0.0.0.0/0 5 0 0 LOG 0 — * * 128.199.0.0/16 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DROP Block’ 6 0 0 DROP 0 — * * 128.199.0.0/16 0.0.0.0/0 7 0 0 LOG 0 — * * 132.232.0.0/16 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DROP Block’ 8 0 0 DROP 0 — * * 132.232.0.0/16 0.0.0.0/0 9 342 23317 LOG 0 — * * 134.175.0.0/16 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DROP Block’ 10 342 23317 DROP 0 — * * 134.175.0.0/16 0.0.0.0/0 11 0 0 LOG 0 — * * 134.33.0.0/16 0.0.0.0/0 LOG flags 0 level 4 prefix `LASSO DR |
You will get the list of all blocked IP. Look at the number on the left, then use number to delete it. For example delete line number 10 (subner 134.175.0.0/16), enter:
iptables -D INPUT 10
You can also use the following syntax to delete / unblock an IP use the following syntax:
iptables -D INPUT -s xx.xxx.xx.xx -j DROP
iptables -D INPUT -s xx.xxx.xx.xx/yy -j DROP
iptables -D spamlist -s 202.54.1.2 -d 0/0 -j DROP
iptables -D spamlist -s 202.54.1.2/29 -d 0/0 -j DROP
http://www.cyberciti.biz/faq/block-e…sing-iptables/
5. Block IP nuoc ngoai
Tạo tập tin
#vi /root/country.block.iptables.sh
với nội dung như bên dưới:
Chú y: Điền mã nước mà bạn muốn chặn vào phần: ISO=
Xem mã nước:
http://www.iana.org/domains/root/db/
Trích dẫn:
|
#!/bin/bash ### Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code ### ISO=“af cn”### Set PATH ### IPT=/sbin/iptables WGET=/usr/bin/wget EGREP=/bin/egrep### No editing below ### SPAMLIST=“countrydrop” ZONEROOT=“/root/iptables” DLROOT=“http://www.ipdeny.com/ipblocks/data/countries”cleanOldRules(){ $IPT -F $IPT -X $IPT -t nat -F $IPT -t nat -X $IPT -t mangle -F $IPT -t mangle -X $IPT -P INPUT ACCEPT $IPT -P OUTPUT ACCEPT $IPT -P FORWARD ACCEPT } # create a dir # clean old rules # create a new iptables list for c in $ISO # get fresh zone file # country specific log message # get # Drop everything # call your other iptable script exit 0 |
Lập lịch cho file này chạy một tuần 1 lần
Trích dẫn:
|
@weekly /root/country.block.iptables.sh |
Chạy ngay không cần lập lịch
Trích dẫn:
|
# ./root/country.block.iptables.sh |
Chúc bạn thành công!
tham khao:
Range IP của các nước
http://www.find-ip-address.org/ip-country/
http://www.cyberciti.biz/faq/block-e…sing-iptables/
http://howtoforge.com/blocking-ip-addresses-of-any-country-with-iptables
http://www.cyberciti.biz/faq/samba-r…-to-ipc-share/