请选择 进入手机版 | 继续访问电脑版

找我啊

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 356|回复: 2

常用iptables 规则

[复制链接]

17

主题

19

帖子

99

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99
QQ
发表于 2019-6-26 10:57:45 | 显示全部楼层 |阅读模式
只能收发邮件,别的都关闭
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 1Array2.168.100.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.2:80
iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.2:1723
iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.2:500
iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.2:4500
FTP服务器的NAT
iptables -I PFWanPriv -p tcp --dport 21 -d 1Array2.168.100.200 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.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.zhaowoa.com
-j ACCEPT
iptables -A Filter -d img.cnArrayArray.com -j ACCEPT
iptables -A Filter -j DROP
开放一个IP的一些端口,其它都封闭
iptables -A Filter -p tcp --dport 80 -s 1Array2.168.100.200 -d www.zhaowoa.com
-j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 1Array2.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 10Array -s 1Array2.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 1Array2.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 1Array2.168.20.3 -j REJECT
连续端口
iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 1Array2.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 1Array2.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 1Array2.168.0.1
将WAN口8000端口NAT到1Array2。168。100。200的80端口
iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.200:80
MAIL服务器要转的端口
iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.200:110
iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 1Array2.168.100.200:25
只允许PING 202。Array6。134。133,别的服务都禁止
iptables -A Filter -p icmp -s 1Array2.168.100.200 -d 202.Array6.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.20Array.0/24 -j DROP
iptables -A Filter -d 218.18.Array5.0/24 -j DROP
iptables -A Filter -d 21Array.133.40.177 -j DROP
基于MAC,只能收发邮件,其它都拒绝
iptables -I Filter -m mac --mac-source 00:0A:EB:Array7:7Array:A1 -j DROP
iptables -I Filter -m mac --mac-source 00:0A:EB:Array7:7Array:A1 -p tcp --dport 25 -j ACCEPT
iptables -I Filter -m mac --mac-source 00:0A:EB:Array7:7Array:A1 -p tcp --dport 110 -j ACCEPT
禁用MSN配置
iptables -A Filter -p udp --dport Array -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 202。Array6。134。133 其它公网IP都不许PING
iptables -A Filter -p icmp -s 1Array2.168.100.200 -d 202.Array6.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 1Array2.168.0.1 ?j DROP
禁止某个IP地址服务:
iptables ?A Filter -p tcp -s 1Array2.168.0.1 --dport 80 -j DROP
iptables ?A Filter -p udp -s 1Array2.168.0.1 --dport 53 -j DROP
只允许某些服务,其他都拒绝(2条规则)
iptables -A Filter -p tcp -s 1Array2.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 1Array2.168.0.1 ?j DROP


回复

使用道具 举报

17

主题

19

帖子

99

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99
QQ
 楼主| 发表于 2019-6-26 10:58:53 | 显示全部楼层
#!/bin/bash
  #####################模块加载和清空原有规则###########################
  #有任何出问题或者建议希望可以给我留言 or e-mail:xuanfei2046@163.com
  depmod -a
  modprobe ip_tables
  modprobe ip_conntrack
  modprobe ip_nat_ftp
  modprobe iptable_filter
  modprobe iptable_mangle
  modprobe iptable_nat
  modprobe ipt_LOG
  modprobe ipt_limit
  modprobe ipt_state
  modprobe ipt_owner
  modprobe ipt_REJECT
  modprobe ipt_MASQUERADE
  
  modprobe ip_tables
  modprobe iptable_filter
  modprobe iptable_nat
  modprobe ip_conntrack
  modprobe ip_conntrack_ftp
  modprobe ip_nat_ftp
  
  echo 1 > /proc/sys/net/ipv4/ip_forward
  iptables -F
  iptables -X
  iptables -t nat -F
  iptables -t nat -X
  iptables -P INPUT ACCEPT
  iptables -P OUTPUT ACCEPT
  iptables -P FORWARD ACCEPT
  iptables -t nat -P PREROUTING ACCEPT
  iptables -t nat -P OUTPUT ACCEPT
  iptables -t nat -P POSTROUTING ACCEPT
  ##############让内网访问外网############begin
  iptables --table nat --append POSTROUTING --out-interface eth0 --source 10.0.0.0/24 --jump MASQUERADE
  #允许内网消息
  iptables --append FORWARD --in-interface eth0 --match state --state ESTABLISHED,RELATED --jump ACCEPT
  #内网来的消息前转
  iptables --append FORWARD --source 10.0.0.0/24 --jump ACCEPT
  ###############让内网访问外网############end
  
  ###############vmnet1###################begin
  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  iptables -t filter -A FORWARD -i eth0 -o vmnet1 -m state --state RELATED,ESTABLISHED -j ACCEPT
  iptables -t filter -A FORWARD -i vmnet1 -o eth0 -j ACCEPT
  ##############vmnet1####################end
  
  #######################一条规则完成###############################
  #iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to-source 10.0.0.1
  
  ############允许DNS############begin
  #iptables -A OUTPUT -o eth0 -p udp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
  #iptables -A INPUT -i eth0 -p udp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  #iptables -A OUTPUT -o eth0 -p tcp --sport 1024: --dport 53 -m state --state ! INVALID -j ACCEPT
  #iptables -A INPUT -i eth0 -p tcp --sport 53 --dport 1024: -m state --state RELATED,ESTABLISHED -j ACCEPT
  
  ############DNS自动前转############
  #/sbin/iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 10.0.0.42
  ##udp方式DNS前转给172.16.100.42这台DNS服务器处理
  #/sbin/iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 10.0.0.42
  #tcp方式DNS前转给172.16.100.42这台DNS服务器处理
  
  ############让外网访问内网############
  #/sbin/iptables -t nat -A PREROUTING -p tcp -d 10.0.0.198 --dport 80 -j DNAT --to-destination 10.0.0.2
  #把访问本机80端口的请求转给内网192.168.200.2处理
  #/sbin/iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.2 --dport 80 -j SNAT --to-source 10.0.0.1
  #访问内网80端口时把source改成内网IP
  
  ############让外网访问内网############begin
  #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j SNAT --to-source 202.112.113.2
  #内网访问外网时把source改成外网IP
  #iptables -t nat -A PREROUTING -p tcp -d 202.112.113.2 --dport 80 -j DNAT --to-destination 192.168.0.2
  #把访问外网80端口的请求转给内网
  #iptables -t nat -A POSTROUTING -p tcp -d 192.168.0.2 --dport 80 -j SNAT --to-source 192.168.0.1
  #访问内网80端口时把source改成内网IP
  
  
  ############################# open 外部主机 ssh port 22#########################
  
  #iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 22 -j ACCEPT
  #iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 22 -d $FW_IP --dport 1024:65535 -j ACCEPT
  #
  # 以下是 ssh protocol 比较不同的地方
  #iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1020:1023 -d any/0 --dport 22 -j ACCEPT
  
  ####################### open 对外部主机 ftp port 21###############################
  # 以下是打开命令 channel 21
  #iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 21 -j ACCEPT
  #iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 21 -d $FW_IP --dport 1024:65535 -j ACCEPT
  
  # 以下是打开资料 channel 20
  #iptables -A INPUT -i eth0 -p tcp -s any/0 --sport 20 -d $FW_IP --dport 1024:65535 -j ACCEPT
  #iptables -A OUTPUT -o eth0 -p tcp ! --syn -s $FW_IP --sport 1024:65535 -d any/0 --dport 20 -j ACCEPT
  
  # 以下是打开 passive mode FTP 资料通道
  #iptables -A OUTPUT -o eth0 -p tcp -s $FW_IP --sport 1024:65535 -d any/0 --dport 1024:65535 -j ACCEPT
  #iptables -A INPUT -i eth0 -p tcp ! --syn -s any/0 --sport 1024:65535 -d $FW_IP --dport 1024:65535 -j ACCEPT
  
  ##########################可以对外 ping 任何一台主机####################################
  #iptables -A OUTPUT -o eth0 -p icmp -s $FW_IP --icmp-type 8 -d any/0 -j ACCEPT
  #iptables -A INPUT -i eth0 -p icm -s any/0 --icmp-type 0 -d $FW_IP -j ACCEPT
  
  
  #iptables -A INPUT -j REJECT
  #iptables -A FORWARD -j REJECT
  ######################################
  #iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  #iptables -A -FORWARD -s 0/0 -d 0/0 -j ACCEPT
回复

使用道具 举报

17

主题

19

帖子

99

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
99
QQ
 楼主| 发表于 2019-6-26 10:59:13 | 显示全部楼层
work_firewall.sh:
  # Display start message
  echo "Starting iptables rules..."
  # 设置变量
  IPT=/sbin/iptables
  INTERNET_SERVER=192.168.0.1
  IP_ME="127.0.0.1"
  IP_SPEC_RANGE="192.168.0.240/30"
  IP_WORK_RANGE="192.168.0.2/28"
  IP_ALL="192.168.0.0/24"
  # 清除所有规则
  $IPT -F
  $IPT -t nat -F
  # 重置所有链默认设置
  $IPT -P INPUT DROP
  $IPT -P OUTPUT ACCEPT
  $IPT -P FORWARD ACCEPT
  $IPT -t nat -P PREROUTING ACCEPT
  $IPT -t nat -P POSTROUTING ACCEPT
  # 1. 限制internet对web服务器的访问
  # (1) 允许自己无限制访问自己
  $IPT -A INPUT -s $IP_ME -j ACCEPT
  # (2) 允许访问www服务
  $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
  # (3) 允许访问ftp服务
  $IPT -A INPUT -p tcp --dport 20 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 21 -j ACCEPT
  # (4) 允许访问mail服务
  $IPT -A INPUT -p tcp --dport 110 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 143 -j ACCEPT
  $IPT -A INPUT -p tcp --dport 25 -j ACCEPT
  # (5) 允许访问tomcat服务
  $IPT -A INPUT -p tcp --dport 8080 -j ACCEPT
  # 2. 允许工作人员通过局域网访问服务器
  $IPT -A INPUT -s $IP_SPEC_RANGE -j ACCEPT
  $IPT -A INPUT -s $IP_WORK_RANGE -j ACCEPT
  # 3. 允许特殊IP无限制上网
  $IPT -t nat -A PREROUTING -s $IP_SPEC_RANGE -j ACCEPT
  # 4. 对工作范围内IP限制部分上网功能
  # (1) 允许访问DNS和ECHO
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 53 -j ACCEPT
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 42 -j ACCEPT
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 7 -j ACCEPT
  # (2) 禁止QQ的TCP登录
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 219.133.38.5 -p tcp -j DROP
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.165 -p tcp -j DROP
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.17.209.23 -p tcp -j DROP
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.153 -p tcp -j DROP
  # (3) 禁止MSN登录
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 207.46.104.20 -j DROP
  # (4) 允许访问www
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 80 -j ACCEPT
  # (5) 允许访问ftp
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 20 -j ACCEPT
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 21 -j ACCEPT
  # (6) 允许访问mail
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 110 -j ACCEPT
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 143 -j ACCEPT
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 25 -j ACCEPT
  # (7) 允许访问tomcat
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 8080 -j ACCEPT
  # (8) 禁止访问其它服务
  $IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d ! $IP_ALL -j DROP
  # 5. 共享上网
  $IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
  # 显示结束信息
  echo "Completed iptables rules."
  
  
  网上讲解iptables命令如何使用的文章已经数不胜数了,但真正要理解它的工作原理还是不太容易,也许是自己太笨周六那天竟然午饭都没吃苦苦思索了整整一天才慢慢有所领悟。netfilter/iptables共有三组规则表:filter、nat和mangle。filter表用于一般的信息包过滤,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则;nat表用于转发的信息包过滤,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则;mangle表用于高级路由,我此次没有用到,因此也没有深究,有空了再看看^_^。filter表包括INPUT链、OUTPUT链和FORWARD链;nat表包括PREROUTING链、POSTROUTING链和OUTPUT链;mangle表包括PREROUTING链和OUTPUT链。filter表为默认规则表。
  表名
  功能
  
  filter 用于一般的信息包过滤,包括INPUT链、OUTPUT链和FORWARD链,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则
  nat 用于转发的信息包过滤,包括PREROUTING链、POSTROUTING链和OUTPUT链,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则
  mangle 用于高级路由,包括PREROUTING链和OUTPUT链
  
  上面的脚本先清除了所有链的所有规则并重置了默认设置,其中INPUT链默认不接受外来访问服务器的任何数据包,接着第1步开放了服务器的80、20、21、110、143、25和8080端口,第2步允许局域网内的192.168.0.2到192.168.0.16及192.168.0.240到192.168.0.243的客户端访问服务器,第3步允许192.168.0.240及192.168.0.243无限制访问外网,第4步允许192.168.0.2到192.168.0.16访问外网的80、20、21、110、143、25、8080及DNS和echo,第5步局域网内客户端共享上网。
  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|找我啊 ( 沪ICP备17031007号-2 )

GMT+8, 2019-9-17 00:38 , Processed in 0.044315 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表