防火墙iptables规则配置

1. 概述:

  • 分类:
  1. 硬件防火墙:思科ASA,H3C的Sepath
  2. 软件防火墙:iptables等
  • 按假设位置分类:
  1. 主机防火墙
  2. 网关防火墙
  • iptables防火墙:
  1. netfilter:位于linux内核中的包过滤功能体系,称为防火墙的“内核态”
  2. iptables:位于/sbin/iptables,用来管理防火墙规则的工具,成为linux防火墙的“用户态”
  • 包过滤的工作层次:
    主要是网络层,针对IP数据包,体现在对包内IP,端口等信息的处理

2. iptables规则:

  • 规则链:每个规则链下,可以添加规则,链下的规则优先级高于规则链的默认规则
    INPUT入站,OUTPUT出站,FORWARD转发
    PREROUTING路由选择前,POSTROUTING路由选择后
  • 其中,转发链默认关闭,需要开启:
    将/etc/sysctl.conf转发参数改为1,7x版本文件内容为空,需要添加此参数
    net.ipv4.ip_forward=1
    使用sysctl -p使得文件内容立即生效
  • 规则表:容纳各种规则链
    raw:确定是否对数据包进行状态跟踪
    mangle:为数据包设置标记
    nat:修改数据包中的源,目标IP,端口
    filter:确定是否放行该数据包(过滤)
    匹配流程:raw–>mangle–>nat–>filter

3. iptable安装与命令:

3.1 安装:

CentOS 6x 中有iptables服务,而7x版本中需要安装:
yum -y install iptables-services

3.1 命令格式:

iptables [-t 表名] 选项 [链名][条件][-j 控制类型]

  • 注意:
    不指定表名时,默认filter
    不指定链,默认表内所有链
    选项,链名,控制类型需要大写,其他小写
    指定序号,是在链名后加数字,例:-D INPUT 2

3.2 常用选项:

  1. 增加新规则
    -A :在链末尾追加规则
    -I :在开头插入规则(或指定序号)
  2. 查看规则:
    -L : 列出表中所有规则(默认filter)
    -n :以数字形式(不属于选项,应该放在链名后)
    -v :详细信息(同上)
  3. 删除规则:
    -D :删除链内指定序号的一条规则
    -F :清空链下所有规则,不清空链本身默认规则(不指定表,默认清空表中所有链的链下规则)
  4. 替换规则:
    -R :替换某条规则,序号指定
    例:iptables -R INPUT 1 -p icmp -j ACCEPT
  5. 设置默认规则:
    -P :为指定链设置默认规则

3.3 常见控制类型:

使用参数 -j 指定
ACCEPT:允许通过
DROP:丢包,不回应
REJECT:拒绝通过,必要时会给提示
LOG:记录日志信息,然后传给下条规则继续匹配

4 规则匹配类型:

4.1 通用匹配:

包括网络协议,IP,网络接口

  • 常见匹配条件:
  1. 协议匹配:
    -p 指定协议,如tcp,udp,icmp(用于ping的协议)
  2. 地址匹配:
    -s 源地址
    -d 目标地址
  3. 接口匹配:
    -i 入站网卡
    -o 出站网卡

4.2 隐含匹配:

  1. 端口匹配:多个端口用:隔开
    –dport:目标端口
    –sport:来源端口
  2. TCP标记匹配:–tcp-flags
    例:
    iptables -I INPUT -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
    丢弃SYN请求包,放行其他的包

5 SNAT与DNAT

5.1 SNAT

作用:局域网主机共享单个公网IP地址接入网络
原理:出网关(路由)时,进行源地址转换
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o ens34 -j SNAT --to-source 192.168.100.100
修改路由选择后规则链,筛选进入网关的源IP,然后指定这些IP发来的数据包,从ens34发出去,控制类型为SNAT,发出去的时候,修改源地址为ens34的IP=192.168.100.100

5.2 DNAT

作用:提供给公户固有的外部公网IP,隐藏内网IP,保护后方服务器的安全
范例:
在192.168.200.200上,搭建一个nginx,监听8080端口
在192.168.200.200的网关服务器上,修改路由选择前的规则:
iptables -t nat -A PREROUTING -i ens34 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.200:8080
网卡ens34接收的TCP请求数据,当目标IP为网关本地,端口为80时,修改控制类型为DNAT,进行目标地址转换,转换为192.168.200.200:8080(nginx服务器,也可以指定负载均衡服务器)

6 防火墙备份与还原

6.1 导出(备份)防火墙规则

cat /etc/sysconfig/iptables
iptables-save > /etc/sysconfig/iptables
将已设置好的防火墙规则,导入到防火墙配置文件中

6.2 导入(还原)规则

先清空已有的规则
iptables -t nat -F
然后导入
iptables-restore < /etc/sysconfig/iptables

重定向出的文件也可以是自定义文件,若将规则保存到/etc/sysconfig/iptables中,iptables启动时,会自动还原规则

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值