Linux 防火墙iptables 禁止某些 IP访问
linux防火墙规则路径

linux防火墙规则路径Linux防火墙规则路径一、概述Linux防火墙是保护计算机网络安全的重要组成部分,它可以通过配置防火墙规则来限制网络流量的进出,从而提高网络的安全性。
本文将介绍Linux防火墙规则的路径以及相关的配置方法。
二、防火墙规则路径Linux防火墙规则的路径通常位于/etc目录下的iptables或firewalld文件夹中,具体取决于使用的防火墙工具。
1. iptables工具Iptables是Linux上最常用的防火墙工具之一,其规则路径为/etc/sysconfig/iptables。
在该文件中,可以配置入站和出站规则,以及网络地址转换(NAT)规则等。
可以使用文本编辑器(如vi或nano)打开该文件进行配置。
2. firewalld工具Firewalld是CentOS 7及以上版本中默认的防火墙管理工具,其规则路径为/etc/firewalld。
在该文件夹中,有多个配置文件,如zones和services等。
zones文件夹中存放了不同区域(zone)的防火墙规则,而services文件夹中存放了各个服务的规则。
可以使用firewall-cmd命令或文本编辑器修改这些配置文件。
三、防火墙规则配置方法Linux防火墙规则的配置方法取决于所使用的防火墙工具。
1. iptables工具配置方法要配置iptables工具的防火墙规则,可以按照以下步骤进行操作:a. 打开终端窗口,使用root用户登录。
b. 进入/etc/sysconfig/iptables目录。
c. 使用文本编辑器打开iptables文件。
d. 在文件中添加所需的规则,如设置允许或禁止特定端口或IP地址等。
e. 保存文件并退出编辑器。
f. 重启iptables服务使配置生效。
2. firewalld工具配置方法要配置firewalld工具的防火墙规则,可以按照以下步骤进行操作:a. 打开终端窗口,使用root用户登录。
Linux下iptables屏蔽IP和端口号

Linux下iptables屏蔽IP和端⼝号封单个IP的命令:iptables -I INPUT -s 124.115.0.199 -j DROP封IP段的命令:iptables -I INPUT -s 124.115.0.0/16 -j DROP封整个段的命令:iptables -I INPUT -s 194.42.0.0/8 -j DROP封⼏个段的命令:iptables -I INPUT -s 61.37.80.0/24 -j DROP只封80端⼝:iptables -I INPUT -p tcp –dport 80 -s 124.115.0.0/24 -j DROP解封:iptables -F清空:iptables -D INPUT 数字列出 INPUT链所有的规则:iptables -L INPUT --line-numbers删除某条规则,其中5代表序号(序号可⽤上⾯的命令查看):iptables -D INPUT 5开放指定的端⼝:iptables -A INPUT -p tcp --dport 80 -j ACCEPT禁⽌指定的端⼝:iptables -A INPUT -p tcp --dport 80 -j DROP拒绝所有的端⼝:iptables -A INPUT -j DROP以上都是针对INPUT链的操作,即是外⾯来访问本机的⽅向,配置完之后需要保存,否则iptables 重启之后以上设置就失效service iptables saveiptables 对应的配置⽂件 /etc/sysconfig/iptables注意:iptables的规则匹配顺序上从上到下的,也就是说如果上下两条规则有冲突时,将会以上⾯的规则为准。
***************************************************************Linux中iptables设置详解⽆论如何,iptables是⼀个需要特别谨慎设置的东西,万⼀服务器不在你⾝边,很有可能导致⽆法SSH连接,这将是很认⼈头疼的事. 以下内容是为了防⽌这种情况发⽣⽽写的,如果SSH端⼝是22(这⾥不建议⽤默认端⼝最好改掉SSH端⼝).iptables -A INPUT -p tcp –dport 22 -j ACCEPTiptables -A OUTPUT -p tcp –sport 22 -j ACCEPT注意要/etc/rc.d/init.d/iptables save,以下每⼀步都最好执⾏⼀遍此语句,以下不再累述, 否则直接执⾏service iptables restart命令后, 刚才添加的将丢失.1.⾸先介绍⼀下指令和相关配置⽂件启动指令:service iptables start重启指令:service iptables restart关闭指令:service iptables stop然后是相关配置:/etc/sysconfig/iptables如何操作该配置呢?vim /etc/sysconfig/iptables2.下⾯介绍⼀些指令⽤法-A:指定链名-p:指定协议类型-d:指定⽬标地址–dport:指定⽬标端⼝(destination port ⽬的端⼝)–sport:指定源端⼝(source port 源端⼝)-j:指定动作类型3.全局DROP规则.iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP这个步骤是把所有不符合⾃⼰配置的规则ACCEPT的连接全部DROP掉,执⾏完以后如果咱SSH还没掉,那么谢天谢地,安全了,重启下iptables后继续下⾯的配置!4.可能有时候需要删除规则,使⽤指令完成的命令删除规则的⽅法:语法是: iptables -D chain rulenum [options]其中: chain 是链的意思,就是INPUT FORWARD 之类的rulenum 是规则的编号。
linux firewall 防火墙出入规则

Linux防火墙的出入规则主要通过iptables来实现。
以下是一些常见的Linux防火墙出入规则的示例:
入站规则:
1. 允许来自特定IP地址的连接:
```css
iptables -A INPUT -s <source_ip> -j ACCEPT
```
2. 允许来自特定端口的连接:
```css
iptables -A INPUT -p tcp --dport <port> -j ACCEPT
```
3. 禁止来自特定IP地址的连接:
```css
iptables -A INPUT -s <source_ip> -j DROP
```
出站规则:
1. 允许特定协议的出站连接:
```css
iptables -A OUTPUT -p <protocol> -j ACCEPT
```
2. 允许特定端口的出站连接:
```css
iptables -A OUTPUT -p tcp --sport <port> -j ACCEPT
```
3. 禁止特定协议的出站连接:
```css
iptables -A OUTPUT -p <protocol> -j DROP
```
以上规则可以通过相应的选项进行添加、修改和删除。
请注意,具
体的规则可能会根据您的需求和网络环境而有所不同。
在进行任何更改之前,建议先备份现有的iptables规则,并在更改规则后进行测试以确保其按预期工作。
linux设置防火墙规则-指定ip的访问权限

linux设置防⽕墙规则-指定ip的访问权限vim /etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统重启iptables时⾃动执⾏1、查看iptables -nvL --line-number-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数-n 不对ip地址进⾏反查,加上这个参数显⽰速度会快很多-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的⽹络接⼝–-line-number 显⽰规则的序列号,这个参数在删除或修改规则时会⽤到2、添加添加规则有两个参数:-A和-I。
其中-A是添加到规则的末尾;-I可以插⼊到指定位置,没有指定位置的话默认插⼊到规则的⾸部。
添加⼀条规则到尾部:iptables -A INPUT -s 192.168.1.5 -j DROP再插⼊⼀条规则到第三⾏,将⾏数直接写到规则链的后⾯:iptables -I INPUT 3 -s 192.168.1.3 -j DROP3、删除删除⽤-D参数删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):有时候要删除的规则太长,删除时要写⼀⼤串,既浪费时间⼜容易写错,这时我们可以先使⽤–line-number找出该条规则的⾏号,再通过⾏号删除规则。
删除第⼆⾏规则iptables -D INPUT 24、修改修改使⽤-R参数先看下当前规则:将第三条规则改为ACCEPT:iptables -R INPUT 3 -j ACCEPT5、永久⽣效service iptables save会将当前规则写⼊⽂件 /etc/sysconfig/iptables 中service iptables restart重启iptables。
iptables的用法

iptables的用法iptables是Linux系统中防火墙工具,用于配置、管理和过滤网络流量。
它可以用于设置各种规则,以控制网络传输,过滤入站和出站流量,并允许或拒绝特定的网络连接。
以下是iptables的常见用法:1. 查看当前的iptables规则:```iptables -L```2. 清除当前的iptables规则:```iptables -F```3. 允许特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j ACCEPT```4. 禁止特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j DROP```5. 允许特定端口的访问:```iptables -A INPUT -p tcp --dport <PORT_NUMBER> -j ACCEPT```6. 允许特定协议的访问:```iptables -A INPUT -p <PROTOCOL> -j ACCEPT```7. 配置端口转发:```iptables -t nat -A PREROUTING -p tcp --dport <SOURCE_PORT> -j DNAT --to-destination<DESTINATION_IP>:<DESTINATION_PORT>```8. 配置端口映射:```iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport<DESTINATION_PORT> -j SNAT --to-source <SOURCE_IP>```以上只是iptables的一些常见用法,它还提供了更多高级功能和选项,可以根据具体需求进行配置和使用。
使用Iptables限制内网访问某些网站

使用Iptables限制内网访问某些网站说明:RHEL5 Server(10.200.2.216)内核启用IP路由转发功能,默认网关指向10.200.49.254,PC-A(10.200.51.202)的默认网关指向10.200.2.216,在RHEL5 Server上通过Iptables限制内网用户访问某些网站。
Iptabels脚本如下:[root@RHEL5 iptables]# cat iptables.sh#!/bin/bash###################################iptables -t filter -Fiptables -I FORWARD -d -j DROPiptables -I FORWARD -d -j DROPiptables -P FORWARD ACCEPT/sbin/modprobe ip_conntrack_ftp/sbin/modprobe ip_nat_ftp/sbin/modprobe ip_tables/sbin/modprobe ip_conntrack/sbin/modprobe iptable_filter/sbin/modprobe iptable_mangle/sbin/modprobe iptable_nat/sbin/modprobe ipt_LOG/sbin/modprobe ipt_limit/sbin/modprobe ipt_state###################################iptables -t nat -Fecho "1" > /proc/sys/net/ipv4/ip_forward执行上述Iptables脚本之前通过tcpdump抓包情况如下:[root@RHEL5 iptables]# iptables -LChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination[root@RHEL5 iptables]# tcpdump host 10.200.51.202 and tcpdump: WARNING: peth0: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on peth0, link-type EN10MB (Ethernet), capture size 96 bytes11:39:33.924695 IP bogon.2499 > 61.135.150.101.http: R 1891908261:1891908261(0) win 0 11:39:39.899241 IP bogon.2499 > 61.135.150.101.http: R 1891908261:1891908261(0) win 0 11:39:33.926437 IP bogon.spock > 61.135.150.101.http: . ack 837160346 win 6553511:39:33.926455 IP bogon.spock > 61.135.150.101.http: . ack 1 win 6553511:39:33.927586 IP bogon.spock > 61.135.150.101.http: . ack 365 win 6517211:39:33.927599 IP bogon.spock > 61.135.150.101.http: . ack 365 win 6517211:39:33.928334 IP bogon.facsys-ntp > 61.135.150.101.http: . ack 827826287 win 65535 11:39:33.928347 IP bogon.facsys-ntp > 61.135.150.101.http: . ack 1 win 6553511:39:33.929230 IP bogon.jdatastore > 61.135.150.101.http: . ack 836651119 win 65535 11:39:33.929243 IP bogon.jdatastore > 61.135.150.101.http: . ack 1 win 6553511:39:33.931603 IP bogon.jdatastore > 61.135.150.101.http: . ack 363 win 6517411:39:33.931615 IP bogon.jdatastore > 61.135.150.101.http: . ack 363 win 65174执行上述Iptables脚本之后通过tcpdump抓包情况如下:[root@RHEL5 ~]# iptables -LChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationDROP all -- anywhere DROP all -- anywhere 61.135.150.104DROP all -- anywhere 61.135.150.101DROP all -- anywhere 61.135.150.98DROP all -- anywhere 61.135.150.93DROP all -- anywhere 61.135.150.145DROP all -- anywhere 61.135.150.126DROP all -- anywhere 61.135.150.113DROP all -- anywhere 61.135.150.108Chain OUTPUT (policy ACCEPT)target prot opt source destination[root@RHEL5 ~]# tcpdump host 10.200.51.202 and tcpdump: WARNING: peth0: no IPv4 address assignedtcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on peth0, link-type EN10MB (Ethernet), capture size 96 bytes11:50:30.810243 IP bogon.hl7 > 61.135.150.104.http: S 298939320:298939320(0) win 65535 <mss 1360,nop,nop,sackOK>11:50:33.721198 IP bogon.hl7 > 61.135.150.104.http: S 298939320:298939320(0) win 65535 <mss 1360,nop,nop,sackOK>11:50:39.756776 IP bogon.hl7 > 61.135.150.104.http: S 298939320:298939320(0) win 65535 <mss 1360,nop,nop,sackOK>11:50:51.733564 IP bogon.rvs-isdn-dcp > 61.135.150.108.http: S 2663940900:2663940900(0) win 65535 <mss 1360,nop,nop,sackOK>11:50:54.745177 IP bogon.rvs-isdn-dcp > 61.135.150.108.http: S 2663940900:2663940900(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:00.780780 IP bogon.rvs-isdn-dcp > 61.135.150.108.http: S 2663940900:2663940900(0) win65535 <mss 1360,nop,nop,sackOK>11:51:12.757521 IP bogon.mpfoncl > 61.135.150.113.http: S 2746173429:2746173429(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:15.769177 IP bogon.mpfoncl > 61.135.150.113.http: S 2746173429:2746173429(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:21.804783 IP bogon.mpfoncl > 61.135.150.113.http: S 2746173429:2746173429(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:33.782256 IP bogon.mon > 61.135.150.126.http: S 557986306:557986306(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:36.793181 IP bogon.mon > 61.135.150.126.http: S 557986306:557986306(0) win 65535 <mss 1360,nop,nop,sackOK>11:51:42.728186 IP bogon.mon > 61.135.150.126.http: S 557986306:557986306(0) win 65535 <mss 1360,nop,nop,sackOK>注:Iptables脚本中若直接写网站域名(如:)的话,则系统要配置正确的DNS 解析(/etc/resolv.conf)。
使用Linux终端命令进行防火墙设置和管理

使用Linux终端命令进行防火墙设置和管理一、介绍Linux操作系统是一种广泛使用的操作系统,其安全性备受关注。
在Linux系统中,防火墙是保护计算机网络安全的重要组成部分。
本文将介绍如何使用Linux终端命令进行防火墙的设置和管理。
二、防火墙的基本概念防火墙是一种网络安全设备,用于设置规则和策略,限制进出计算机网络的流量。
它可以过滤网络数据包,防止恶意攻击和未经授权的访问。
在Linux系统中,防火墙通常使用iptables命令来实现。
三、iptables命令的基本用法1. 查询防火墙规则:使用iptables -L命令可以列出当前的防火墙规则。
例如,输入以下命令:```shelliptables -L```2. 添加防火墙规则:使用iptables -A命令可以添加一条新的防火墙规则。
例如,要允许来自特定IP地址的HTTP访问,可以输入以下命令:```shelliptables -A INPUT -s <IP地址> -p tcp --dport 80 -j ACCEPT```3. 删除防火墙规则:使用iptables -D命令可以删除特定的防火墙规则。
例如,要删除上述添加的防火墙规则,可以输入以下命令:```shelliptables -D INPUT -s <IP地址> -p tcp --dport 80 -j ACCEPT```4. 保存防火墙规则:使用iptables-save命令可以保存当前的防火墙规则。
例如,输入以下命令可以将当前的防火墙规则保存到/etc/iptables.rules文件中:```shelliptables-save > /etc/iptables.rules```5. 加载防火墙规则:使用iptables-restore命令可以加载之前保存的防火墙规则。
例如,输入以下命令可以从/etc/iptables.rules文件中加载防火墙规则:```shelliptables-restore < /etc/iptables.rules```四、常用防火墙配置示例1. 允许SSH访问:要允许SSH访问,可以使用以下命令:```shelliptables -A INPUT -p tcp --dport 22 -j ACCEPT```2. 允许HTTP和HTTPS访问:要允许HTTP和HTTPS访问,可以使用以下命令:```shelliptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT```3. 允许Ping请求:要允许Ping请求,可以使用以下命令:```shelliptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT```4. 阻止特定IP地址的访问:要阻止特定IP地址的访问,可以使用以下命令:```shelliptables -A INPUT -s <IP地址> -j DROP```五、注意事项1. 防火墙规则的顺序很重要,应该根据需要正确设置规则的顺序。
iptables防火墙只允许指定ip连接指定端口访问指定网站

iptables防⽕墙只允许指定ip连接指定端⼝访问指定⽹站IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统。
如果 Linux 系统连接到因特⽹或 LAN、服务器或连接 LAN 和因特⽹的代理服务器,则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防⽕墙配置。
需要开80端⼝,指定IP和局域⽹.下⾯三⾏的意思:先关闭所有的80端⼝开启ip段192.168.1.0/24端的80⼝开启ip段211.123.16.123/24端ip段的80⼝# iptables -I INPUT -p tcp --dport 80 -j DROP# iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT# iptables -I INPUT -s 211.123.16.123/24 -p tcp --dport 80 -j ACCEPT以上是临时设置。
1.先备份iptables# cp /etc/sysconfig/iptables /var/tmp2.然后保存iptables# service iptables save3.重启防⽕墙#service iptables restart以下是端⼝,先全部封再开某些的IPiptables -I INPUT -p tcp --dport 9889 -j DROPiptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9889 -j ACCEPT如果⽤了NAT转发记得配合以下才能⽣效iptables -I FORWARD -p tcp --dport 80 -j DROPiptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT常⽤的IPTABLES规则如下:只能收发邮件,别的都关闭iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -j DROPiptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p udp --dport 53 -j ACCEPTiptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 25 -j ACCEPTiptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 110 -j ACCEPTIPSEC NAT 策略iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPTiptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500FTP服务器的NATiptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPTiptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21只允许访问指定⽹址iptables -A Filter -p udp --dport 53 -j ACCEPTiptables -A Filter -p tcp --dport 53 -j ACCEPTiptables -A Filter -d -j ACCEPTiptables -A Filter -d -j ACCEPTiptables -A Filter -j DROP开放⼀个IP的⼀些端⼝,其它都封闭iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d -j ACCEPTiptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPTiptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPTiptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPTiptables -A Filter -p tcp --dport 53 -j ACCEPTiptables -A Filter -p udp --dport 53 -j ACCEPTiptables -A Filter -j DROP多个端⼝iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT连续端⼝iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT指定时间上⽹iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROPiptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPTiptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT禁⽌多个端⼝服务iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT将WAN ⼝NAT到PCiptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1将WAN⼝8000端⼝NAT到192。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux 防火墙iptables 禁止某些 IP 访问
编辑:phper 来源:转载
在Linux下,使用ipteables来维护IP规则表。
要封停或者是解封IP,其实就是在IP规则表中对入站部分的规则进行添加操作。
方法一,过滤一些IP访问本服务器
要封停一个IP,使用下面这条命令:
代码如下复制代码iptables -I INPUT -s ***.***.***.*** -j DROP
要解封一个IP,使用下面这条命令:
代码如下复制代码iptables -D INPUT -s ***.***.***.*** -j DROP
参数-I是表示Insert(添加),-D表示Delete(删除)。
后面跟的是规则,INPUT 表示入站,***.***.***.***表示要封停的IP,DROP表示放弃连接。
此外,还可以使用下面的命令来查看当前的IP规则表:
代码如下复制代码iptables -list
比如现在要将123.44.55.66这个IP封杀,就输入:
代码如下复制代码iptables -I INPUT -s 123.44.55.66 -j DROP
要解封则将-I换成-D即可,前提是iptables已经有这条记录。
如果要想清空封掉的IP地址,可以输入:
代码如下复制代码iptables -flush
要添加IP段到封停列表中使用下面的命令:
代码如下复制代码iptables -I INPUT -s 121.0.0.0/8 -j DROP
其实也就是将单个IP封停的IP部分换成了Linux的IP段表达式。
关于IP段表达式网上有很多详细解说的,这里就不提了。
方法二,使用脚本来进行屏蔽
1.先下载ip地址文件
我们先到IPdeny下载以国家代码编制好的ip地址列表,比如下载cn.zone:
wget /ipblocks/data/countries/cn.zone
现在有了国家的所有IP地址,要想屏蔽这些IP 就很容易了,直接写个脚本逐行读取cn.zone文件并加入到iptables中:
iptables屏蔽某个国家ip段
代码如下复制代码#!/bin/bash
# Block traffic from a specific country
# written by
COUNTRY = "cn"
IPTABLES = /sbin/iptables
EGREP = /bin/egrep
if [ "$(id -u)" != "0" ]; then
echo "you must be root" 1>&2
exit 1
fi
resetrules() {
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
}
resetrules
for c in $COUNTRY
do
country_file = $c.zone
IPS = $($EGREP -v "^#|^$" $country_file)
for ip in $IPS
do
echo "blocking $ip"
$IPTABLES -A INPUT -s $ip -j DROP
done
done
exit 0
方法三,上面两个实例都可以但都不简明,下面我来介绍一下
在iptables中,添加两个常用的IP段,其他网段的数据包都DROP了,而不是REJECT(REJECT还要发送ICMP回应包给连接方)。
代码如下复制代码
# iptables -A INPUT -p tcp --dport 22 -s 120.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 183.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
测试:
在另外一个机子连接这个VPS,数据包被成功DROP了。
代码如下复制代码root@293621:~# iptables -vL
Chain INPUT (policy ACCEPT 36 packets, 6257 bytes)
pkts bytes target prot opt in out source destination
222 16280 ACCEPT tcp -- any any 120.0.0.0/8 anywhere tcp dpt:ssh 0 0 ACCEPT tcp -- any any 183.0.0.0/8 anywhere tcp dpt:ssh
4 240 DROP tcp -- any any anywhere anywhere tcp dpt:ssh。