zoukankan      html  css  js  c++  java
  • iptables

    CentOS7 的防火墙配置与之前的版本iptables不一样,CentOS7这个版本的防火墙默认使用的是firewall:

    1、开启和关闭

    1.1 开启防火墙:

    systemctl start firewalld.service  (centos7)

    service iptables start

    /etc/init.d/iptables start

    1.2 关闭防火墙

    systemctl stop firewalld.service (centos7)

    service iptables stop

    /etc/init.d/iptables stop

    1.3 开启开机启动:

    systemctl enable firewalld.service (centos7)

    1.4 关闭开机启动:

    systemctl disable firewalld.service (centos7)

    2、四表五链

    包过滤防火墙使用iptables 工具,即四表五链

    里面含有4个功能表:

    raw :确定是否对该数据包进行状态跟踪

    mangle: 为数据包设置标记(较少使用)

    nat :修改数据包中的源、目标IP地址或端口

    filter :确定是否放行该数据包(过滤)

    每个表专门写规则的地方(Chain-链)

    五链:

    INPUT:入站 :当收到访问防火墙本机地址的数据包(入站),应用此链中的规则

    OUTPUT:出站 :当防火墙本机向外发送数据包(出站)时,应用此链中的规则。

    FORWARD:转发 :当收到需要通过防火墙中转发送给其他地址的数据包时,应用此链中的规则

    POSTROUTING:路由后转换 :在对数据包做路由选择之后,应用此链中的规则

    PREROUTING:路由前转换 :在对数据包做路由选择之前,应用此链中的规则

    3、iptables语法

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

     注意:

     不指定表名默认为filter表

     不指定链名,默认为表内的所有链

     除非设定链的默认策略,否则必须指定匹配条件

     选项、链名、控制类型为大写字母,其余小写

    3.1 链名

    INPUT:入站 

    OUTPUT:出站 

    FORWARD:转发 

    POSTROUTING:路由后转换

    PREROUTING:路由前转换 

    3.2 控制类型

    ACCEPT :允许通过

    DROP :直接丢弃,不会给出任何回应

    REJECT :拒绝通过,必要时给出提示

    LOG :记录日志信息,然后传给下一条规则继续匹配

    3.3 选项

    第二行插入禁Ping的规则

    iptables -I INPUT 2 -p icmp -j ACCEPT

    末尾添加禁tcp协议的规则

    iptables -A INPUT -p tcp -j REJECT

    查看filter表:

    iptables -t filter -nvL

    查看filter表,每秒钟刷新一次

    watch n1 iptables -t filter -nvL

    删除filter表中FORWORD链中第二条规则:

    iptables -t filter -D FORWORD 2

    清除filter表中的FORWORD链:

    iptables -t filter -F FORWORD

    为指定的链设置默认规则, 但只能是 ACCEPT 和DROP

    iptables -t filter -P FORWARD DROP

     3.4 条件

    通用匹配:

    iptables -I INPUT -p icmp -j DROP

    iptables -I INPUT -s 172.23.10.1/24 -j DROP

    iptables -I INPUT -i eth0 -d 172.23.10.2/24 -j DROP

    隐含匹配:

    iptables -I FORWARD -s 172.23.10.3/24 --sport 21 -p tcp -j ACCEPT

    iptables -I INPUT -p tcp --dport 20,21 -j DROP

    iptables -A INPUT -p icmp --icmp-type 8 -j DROP   (8表示请求 =echo-request)

    iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT  (3表示不可达)

    iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT  (0表示回显=echo-reply)

    显示匹配:

    iptables -A INPUT -p tcp -m multiport --dport 80,21,443 -j ACCEPT

    iptables -I FORWARD -p tcp -m iprange --src-range 172.23.10.2-172.23.10.8 -j ACCEPT

    iptables -A INPUT -p tcp -m mac mac-source 00:11:ef:4d:3d:50 -j ACCEPT

    禁止转发与正常tcp连接无关的非syn请求数据包(如伪造的网络攻击数据包)

    iptables -I FORWARD -p tcp -m state --state NEW ! --syn -j DROP

    3.5 规则备份和还原

    iptables-save > /root/Desktop/iptables.txt

    恢复还原

    iptables-restore < /root/Desktop/iptables.txt

    永久保存为默认规则

    service iptables save

    4 、filter表 和nat表

    4.1  filter表

    里面含有3个链:

    INPUT

    FORWARD

    OUTPUT  :出站链,输出所有输出信息,包括拒绝信息

    4.2 nat表

    nat表 只有三个链:

    PREROUTING :路由前转换 ,在对数据包做路由选择之前,应用此链中的规则

    POSTROUTING :路由后转换 ,在对数据包做路由选择之后,应用此链中的规则

    OUTPUT

    4.2.1 源地址转换(SNAT)

    主要是针对信息往外发的规则,内部想访问外部的服务。

    假设linux服务器外部IP:16.29.4.20 ,内部IP为172.23.10.2 想访问web服务16.29.4.56

    那么需要在服务器的外部做地址转换:

    iptables -I POSTROUTING -p tcp -o eth1 -s 172.23.10.0/24 -j SNAT --to-source 16.29.4.20

    如果外部地址是动态的变化,可以使用MASQUERADE,动态的更改为当前的外部IP :

    iptables -I POSTROUTING -p tcp -o eth1 -s 172.23.10.0/24 -j MASQUERADE

    前提都是符合 FORWARD 规则,才能到转换规则

    4.2.2 目标地址转换(DNAT)

    主要针对外部访问内部的服务器

    假设内部web服务器为:192.168.10.1:8080,linux服务器外部IP:16.29.4.20 ,有一台PC:102.25.6.78想访问web服务

    为了更加的贴切用户的使用,那么访问内部的8080端口,在外部就应该映射为80端口,用户就不用输入端口号了(http 默认为80端口)。

    iptables -I PREROUTING -p tcp -i eth1 -d 16.29.4.20 --dport 80 -j DNAT --to-destination 192.168.10.1:8080

  • 相关阅读:
    如何在word中添加视频
    在vc中使用MapX时,如何在视图类中响应鼠标消息
    在vc6中检查一个目录是否存在,如果不存在就创建该目录
    Google推出中文图书搜索简体中文试用版(zz)
    用敏捷软件方法开发界面(zz)
    选择文件对话框的封装
    在vc6中如何使某个状态栏的按钮使能和失效
    MapX对图层的引用和创建实例
    有尊严的生命(zz)
    三十岁的男人(zz)
  • 原文地址:https://www.cnblogs.com/BackingStar/p/12732671.html
Copyright © 2011-2022 走看看