ruhuanxingyun

简介:CentOS7.0版本及以上使用Firewall防火墙,CentOS7.0以下使用Iptablesl防火墙,如果CentOS7.0以上需要安装Iptables防火墙,请先关闭Firewall防火墙。Firewalld和Iptables一样自身并不具备防火墙的功能,需要通过内核netfilter来实现,二者只不过使用方法不一样,其中firewalld的底层是使用iptables进行数据过滤,建立在iptables之上。firewalld默认是拒绝的,需要设置以后才能放行,而iptables默认是允许的,需要拒绝的才去限制。要想端口隐藏,不被nmap扫描到,哪怕close等都不出现,就需要开启firewalld

一、Firewall

  1. 查看防火墙的状态

    systemctl status firewalld   或   firewall-cmd --state

    其中:Active: active (running) 高量显示 则表示开启状态;

       Active: inactive (dead) 灰色显示 则表示关闭状态

  2. 开启防火墙

     systemctl start firewalld   或   service firewalld start

  3. 关闭防火墙

    systemctl stop firewalld   或   service firewalld stop

  4. 重启防火墙

    systemctl restart firewalld  或   service firewalld restart

  5. 查看开放的端口

    firewall-cmd --zone=public --list-ports

  6. 开启端口(修改后需要firewall-cmd --reload)

    firewall-cmd --zone=public --add-port=8080/tcp --permanent 

    其中:

      firewall-cmd:操作firewall的工具;

       --zone=public:表示作用域;

      --add-port:标识添加的端口和访问类型;

      --permanent:表示设置为持久;

  7. 关闭端口

    firewall-cmd --zone=public --remove-port=8080/tcp --permanent

  8. 设置开机启动

     systemctl enable firewalld

  9. 禁用开机启动

    systemctl disable firewalld

  10. 配置rich-rule实现IP端口限制访问

    A. 删除原有的3306端口访问规则:firewall-cmd --permanent --remove-port=3306/tcp;

    B. 添加规则:firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.17.0.0/16" port protocol="tcp" port="3306" accept";

    C. 生效规则:firewall-cmd --reload;

    D. 查看结果:firewall-cmd --list-all;

    E. 剔除规则:firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="172.17.0.0/16" port protocol="tcp" port="3306" accept";

 

二、Iptables

  1. 语法

    iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作;

    iptables -A INPUT -s 127.0.0.1 -p tcp --dport 3306 -j ACCEPT

    iptables -A INPUT -d 172.17.0.1 -p tcp -m multiport --dports 6801,3306 -j ACCEPT

    iptables -A INPUT -p tcp --dport 3306 -j DROP

    iptables -D INPUT -p tcp --dport 3300 -j DROP

    iptables -A INPUT -m iprange --src-range 10.15.119.115-0.15.119.123 -p tcp -m multiport --dports 9801,9802,9803 -j ACCEPT
    iptables -A INPUT -p tcp -m multiport --dports 9801,9802,9803 -j DROP

    iptables是按照顺序执行的,如果第一条命中,后面的规则都将失效。

  1. iptables中四表

    A. filter:控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output;

    B. nat:控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting;

    C. mangle:修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting;

    D. raw:控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output;

  2. iptables中五链

    A. PREROUTING:路由前;

    B. INPUT:数据包流入口;

    C. FORWARD:转发管卡;

    D. OUTPUT:数据包出口;

    E. POSTROUTING:路由后;

  3. 链管理

    A. -N, --new-chain chain:新建一个自定义的规则链,比如docker链;

  4. 规则管理

    A. -A:在指定链的尾部追加新规则;

    B. -I:在指定链的指定位置插入新规则,默认为首部;

    C. -D:根据规则编号删除规则。

  5. 动作

    A. ACCEPT:接收数据包;

    B. DROP:丢弃数据包;

  6. 匹配条件

    (1) 通用匹配条件

      A. -p:指定规则的协议,如tcp、udp等;

      B. -s:指定数据包的原地址,如果不指定-s参数,就代表所有地址,如:192.168.0.1;

      C. -j:执行目标,即指定与规则匹配时如何处理数据包;

    (2) 扩展匹配条件

      A. --dport:目的端口,针对-p参数的

    (3)显示扩展匹配条件

      A. -m multiport --dports port[,port|,port:port]...:指定多个目标端口;

      B. -m iprange --src-range from[-to]:以连续地址块的方式来指定多IP;

  7. 查看防火墙的状态

    systemctl status iptables.service   或   service iptables status  

  8. 开启防火墙

    systemctl start iptables.service   或   service iptables start  

  9. 关闭防火墙

    systemctl stop iptables.service   或   service iptables stop 

  10. 重启防火墙

    service iptables restart 

  11. 设置开机启动

    systemctl enable iptables.service

  12. 禁用开机启动

    systemctl disable iptables.service

  13. 查看当前iptables规则:iptables -L -n

 

https://www.cnblogs.com/vathe/p/6973656.html

 

可参考:iptables基础知识详解

 

 

分类:

技术点:

相关文章: