Iptables防火墙访问策略

IPTABLES

防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在linux内核中.数据包过滤表中,规则被分组放在我们所谓的链(chain)中.
在这里插入图片描述
iptables5个链

  • INPUT:入站规则
  • OUTPUT:出站规则
  • FORWARD:转发规则
  • PREROUTING:路由前规则
  • POSTROUTING:路由后规则
    规则链之间的顺序
  • 入站:PREROUTING–>INPUT
  • 出站:OUTPUT—>POSTROUTING
  • 转发:PREROUTING—>FORWARD–>POSTROUTING

过滤匹配流程
  • 规则链内匹配顺序
    顺序比对,匹配即停止
    若无任何匹配,则按该链的默认策略处理

基本用法
  • 指令格式
    iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
  • 注意事项
    • 可以不指表,默认filter表
    • 可以不指链,默认对应表的所有链
    • 如果没有匹配规则,默认使用防火墙默认规则
    • 选项/链名/目标操作用大写字母,其余都小写

目标操作

  • ACCEPT:允许通行
  • DROP:直接丢弃,不作出任何回应
  • REJECT:拒绝通过,必要时给出提示
  • LOG:记录日志,然后传给下一条规则(不遵循"匹配即停止")

常用管理选项

类别选项用途
添加规则-A在链的尾部追加一条规则
------I在链头(或指定序号)插入一条规则
查看规则-L列出所有规则条目
-n以数字形式显示地址,端口信息
–line-numbers查看规则时,显示规则的序号
删除规则-D删除链内指定序号(或内容)的一条规则
-F清空所有规则
默认策略-P为指定链设置默认规则

过滤条件


类别选项用法
通用匹配协议匹配-p 协议名称
地址匹配-s 源地址,-d 目标地址
接口匹配-i 接收数据的网卡,-o 发送数据的网卡
隐含匹配端口匹配–sport 源端口号,–dport 目标端口号
ICMP类型匹配–icmp-type ICMP类型(echo-reply,echo-request)
iptables -nL //查看filter表中所有的规则
iptables  -nL FORWARD //查看FORWARD链中的规则
iptables -t raw -nL --line-numbers //查看raw表中规则,及序号
iptables -t filter -P INPUT DROP //设置防火墙默认规则
iptables -t filter -F //清空filter表中的所有规则 
iptables -t filter -F INPUT //清空filter表中INPUT链中的所有规则
iptables -t filter  -D  INPUT 序号 //选出第几条规则
iptables -I INPUT -p tcp -s 192.168.4.52 -j ACCEPT 
// 插入规则到INPUT链的开头,允许192.168.4.52 使用tcp协议访问本机
iptables -I INPUT 2 -P icmp -j ACCEPT
//插入规则至表中INPUT链的第二行,允许任何人使用ICMP协议
iptables -A INPUT -p udp -j ACCEPT
//掺入规则至INPUT链尾,.......
iptables -I INPUT -i eth0 -p tcp --dport 80 -j REJECT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
//echo-replyPING包的返回包
iptables-save >/etc/sysconfig/iptables
//所有的规则都是临时规则,需要save保存才会永久生效
扩展条件
  • 基本用法
    -m 扩展模块 --扩展条件 条件值
    在这里插入图片描述
iptables -A INPUT -m mac --mac-source 52:54:00:c4:44:f0 -j DROP
iptables -A INPUT -p tcp -m multiport --dport 20,22,25,80,110,16501:16800 -j ACCEPT
//16501:16800端口16501到16800
iptables  -A  INPUT  -p tcp  --dport  22  \
> -m  iprange  --src-range  192.168.4.10-192.168.4.20   -j  ACCEPT
//IP段

NAT表应用

目的:源地址为私有地址,服务器如何正确给出回应
1.DNAT:目标地址转换
2.SNAT:源地址转换
3.REDIRECT:重定向针对本机地转发

  • 修改数据包源地址
  • 仅用于nat表的POSTROUTING链
  • 外部地址只能用DNAT

  • 局域网共享公网IP上网
    在这里插入图片描述
1>局域网设置默认网关
route add default gw 192.168.4.5
2>配置SNAT共享上网
echo 1 > /proc/sys/net/ipv4/ip_forward 
//开启路由转发
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -p tcp --dport 80 -j SNAT --to-source 192.168.2.5
//源地址转换
iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306
//路由前目标地址转化
iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT --to 192.168.1.1
//路由后源地址转换
 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 // 本机端口转发80转发到8080
 保存
 service iptables save
地址伪装策略
  • 共享动态公网ip地址实现上网
    –针对外网接口ip地址不固定的情况
    –将SNAT改为MASQUERADE即可
    –对于ADSL宽带拨号连接,网络接口可写为ppp+
iptables -t nat -A POSTROUTING -s 192.168.4.0/24 -o eth1 -j MASQUERADE
//不用指定SNAT目标IP,不管eth1的出口获得怎样的动态ip,MASQUERADE会自动获取eth1的ip地址,然后SNAT转发出去
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值