ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

防火墙iptables规则配置

2019-08-25 22:08:57  阅读:176  来源: 互联网

标签:iptables 匹配 IP 防火墙 192.168 规则


文章目录

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启动时,会自动还原规则

标签:iptables,匹配,IP,防火墙,192.168,规则
来源: https://blog.csdn.net/jccodecode/article/details/100068424

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有