Linux系统-iptables防火墙配置

284 阅读6分钟

linux禁止特定ip访问某个端口


linux禁止特定ip访问某个端口

解决方法:


禁止特定ip访问8080端口的命令0:
iptables -I INPUT -s 192.168.227.133 -ptcp --dport 8080 -j DROP


允许特定ip访问8080端口的命令1:
iptables -D INPUT -s 192.168.227.133 -ptcp --dport 8080 -j DROP


允许特定ip访问8080端口的命令2:
iptables -I INPUT -s 192.168.227.133 -ptcp --dport 8080 -j ACCEPT

其中命令1执行的次数要和命令0相等才能访问,比如命令0执行了2次,那么命令1也得执行2次才有效,但命令2执行一次即可

查看iptables防火墙设置情况


iptables -L -n

## 查看含有DROP的信息

iptables -L -n | grep DROP

指定ip连接指定端口、访问指定网站

iptables防火墙只允许指定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/tmp

  


2.然后保存iptables

  


# service iptables save

  


3.重启防火墙

  


#service iptables restart

  


以下是端口,先全部封再开某些的IP

  


iptables -I INPUT -p tcp --dport 9889 -j DROP

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9889 -j ACCEPT

如果用了NAT转发记得配合以下才能生效

  


iptables -I FORWARD -p tcp --dport 80 -j DROP

iptables -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 DROP

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p udp --dport 53 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 25 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 110 -j ACCEPT

  


IPSEC NAT 策略

iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80

  


iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723

  


iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723

  


iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500

  


iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500

  


  


FTP服务器的NAT

iptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT

iptables -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 ACCEPT

iptables -A Filter -p tcp --dport 53 -j ACCEPT

iptables -A Filter -d www.3322.org -j ACCEPT

iptables -A Filter -d img.cn99.com -j ACCEPT

iptables -A Filter -j DROP

  


开放一个IP的一些端口,其它都封闭

iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT

iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 53 -j ACCEPT

iptables -A Filter -p udp --dport 53 -j ACCEPT

iptables -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 DROP

iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

iptables -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到PC

iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1

  


  


将WAN口8000端口NAT到19216810020080端口

iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80

  


MAIL服务器要转的端口

iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110

iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25

  


只允许PING 20296134133,别的服务都禁止

iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT

iptables -A Filter -j DROP

  


禁用BT配置

iptables –A Filter –p tcp –dport 6000:20000 –j DROP

  


禁用QQ防火墙配置

iptables -A Filter -p udp --dport ! 53 -j DROP

iptables -A Filter -d 218.17.209.0/24 -j DROP

iptables -A Filter -d 218.18.95.0/24 -j DROP

iptables -A Filter -d 219.133.40.177 -j DROP

  


基于MAC,只能收发邮件,其它都拒绝

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT

  


禁用MSN配置

iptables -A Filter -p udp --dport 9 -j DROP

iptables -A Filter -p tcp --dport 1863 -j DROP

iptables -A Filter -p tcp --dport 80 -d 207.68.178.238 -j DROP

iptables -A Filter -p tcp --dport 80 -d 207.46.110.0/24 -j DROP

  


只允许PING 20296134133 其它公网IP都不许PING

iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT

iptables -A Filter -p icmp -j DROP

  


禁止某个MAC地址访问internet:

iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP

  


禁止某个IP地址的PING:

iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

  


禁止某个IP地址服务:

iptables –A Filter -p tcp -s 192.168.0.1 --dport 80 -j DROP

iptables –A Filter -p udp -s 192.168.0.1 --dport 53 -j DROP

  


只允许某些服务,其他都拒绝(2条规则)

iptables -A Filter -p tcp -s 192.168.0.1 --dport 1000 -j ACCEPT

iptables -A Filter -j DROP

  


禁止某个IP地址的某个端口服务

iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j ACCEPT

iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j DROP

  


禁止某个MAC地址的某个端口服务

  


iptables -I Filter -p tcp -m mac --mac-source 00:20:18:8F:72:F8 --dport 80 -j DROP

  


禁止某个MAC地址访问internet:

iptables -I Filter -m mac --mac-source 00:11:22:33:44:55 -j DROP

  


禁止某个IP地址的PING:

iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

  


清除原有规则


iptables -F # 清除预设表filter中的所有规则链的规则

  


iptables -X # 清除预设表filter中使用者自定链中的规则

设定预设规则


iptables -p INPUT DROP

  


iptables -p OUTPUT DROP

  


iptables -p FORWARD DROP

  


上面的规则是不允许任何包通过.

  


添加规则


iptables -A INPUT -p tcp –dport 22 -j ACCEPT

  


iptables -A OUTPUT -p tcp –sport 22 -j ACCEPT

  


# 开启22端口, 允许SSH登录, 如开启8080端口:

  


iptables -A INPUT -p tcp –dport 8080 -j ACCEPT

  


iptables -A OUTPUT -p tcp –sport 8080 -j ACCEPT

  


禁止某个IP访问禁止某个IP访问


iptables -I INPUT -s x.x.x.x -j DROP

  


#也可进行更细致的设置, 如只允许192.168.1.14的机器进行SSH连接:

  


iptables -A INPUT -p tcp –dport 22 -s 192.168.1.14 -j ACCEPT

  


#如果要允许或限制一段IP地址可用192.168.1.0/24 表示192.168.1.1-255端的所有IP.

  


#防止同步包洪水(Sync Flood)

  


iptables -A FORWARD -p tcp –syn -m limitlimit 1/s -j ACCEPT

  


#防止各种端口扫描

  


iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limitlimit 1/s -j ACCEPT

  


# Ping of Death

iptables -A FORWARD -p icmp –icmp-type echo-request -m limitlimit 1/s -j ACCEPT