• iptables 规则更改(filter)、firewalld centos7 更改配置


    iptables中定义默认策略(policy)

    当数据包不在我们设置的规则之内时,则该数据包的通过与否,是以Policy的设置为准。在安全性比较高的主机中,Filter内的INPUT链定义的比较严格,INPUT的Policy定义为DROP

    ptables定义规则:

    格式:iptables [-t table] -P [INPUT,OUTPUT,FORWARD] [ACCEPT,DROP ]

    -p : 定义策略(Policy)。注意:P为大写 
    ACCEPT:数据包可接受 
    DROP:数据包被丢弃,client不知道为何被丢弃。

    iptables  -P INPUT DROP  //INPUT默认设置为DROP
    iptables  -P OUTPUT DROP  //OUTPUT默认设置为ACCEPT
    iptables  -P FORWARD DROP // FORWARD默认设置为ACCEPT  
    

      

    iptables定义规则(filter)的格式: 
    iptables [-AI 链名] [-io 网络接口 ] [ -p 协议 ] [ -s 来源IP/网络 ] [ -d 目标IP/网络 ] -j [ACCEPT | DROP|REJECT|LOG]

    参数说明: 
    -A:新增一条规则,该规则在原规则的最后面。 
    -I:插入一条规则,默认该规则在原第一条规则的前面。即该新规则变为第一条规则。

    -io 网络接口:设置数据包进出的接口规范。 
    -i:表示输入。即数据包进入的网络接口。与INPUT链配合 
    -o : 表示输出。数据包传出的网络接口。与OUTPUT链配合

    -p 协定: 此规则适应于哪种数据包。如tcp,udp,icmp及all.

    -s 来源 IP/网络:设置次规则之前数据包的来源地,可指定单纯的IP或网络,例如: 
    IP : 192.168.0.100 
    网络 : 192.168.0.0/24或者192.168.0.0/255.255.255.0 
    如果规则为不允许,则在IP/网络前加 “!” 即可。 
    -s ! x.x.x.x

    -d 目标 IP/网络。与-s类似,只是是目标IP或者网络而已。

    -j:后面接操作。如ACCEPT,DROP ,REJECT或者LOG(记录)

    比如:开放lo这个本机的接口以及某个IP来源

    //设置io成为受信任的设备,亦即进出lo的数据包都接受
    iptables -t filter -A INPUT -i eth0  -j ACCEPT
    

     

    我们可能会有疑惑,为什么没有-s -d等规则,表示不论数据包来自何处或去到哪里,只要是来自lo这个接口全部接受。

    设置来自192.168.100.10的就接受,192.168.100.11的就丢弃。

    iptables -A INPUT -i eth0 -s 192.168.100.10 -j ACCEPT
    iptables -A INPUT -i eth0 -s 192.168.100.11 -j DROP
    iptables -I INPUT -i eth0 -s 192.168.100.0/24 -j ACCEPT
    

     此时我们执行iptables-save 

    [root@localhost ~]# iptables-save
    # Generated by iptables-save v1.4.7 on Wed Jun  6 10:41:44 2018
    *nat
    :PREROUTING ACCEPT [9:1155]
    :POSTROUTING ACCEPT [4:1312]
    :OUTPUT ACCEPT [4:1312]
    COMMIT
    # Completed on Wed Jun  6 10:41:44 2018
    # Generated by iptables-save v1.4.7 on Wed Jun  6 10:41:44 2018
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [65:5416]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A INPUT -i eth0 -p tcp -m tcp --sport 80 -j ACCEPT
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    # Completed on Wed Jun  6 10:41:44 2018
    

      

    TCP,UDP协议的规则对比:针对端口设置

    • 在 -s 参数后面可以增加一个参数 -sport 端口范围(限制来源端口),如:1024:65535
    • 在-d 参数后面可以增加一个参数 -dport 端口范围(限制目标端口)

    需要特别注意,这两个参数重点在port上面,并且仅有TCP和UDP数据包具有端口,因此要想使用–dport,–sport时需要加上-p tcp或者 -p udp才会成功。

    下面做几个小测试:

    //丢弃所有想要链接本机21端口的数据包
    iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP
    //想要链接到本机的网上邻居(UDP port 137,138 tcp 139,445)就放行
    iptables -A INPUT -i eth0 -p udp --dport 137:138 -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT
    iptables -A INPUT -i eth0 -p tcp --dport 445 -j ACCEPT
    //只要来自192.168.1.0/24的1024:65535端口的数据包,且想要连接的本机的ssh port就阻挡
    iptables -A INPUT -i eth0 -p tcp -s 192.168.1.0/24 --sport 1024:65535 --dport ssh -j DROP
    
    iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP
    

      除了制订端口号之外,TCP数据包还有特殊的标识,比如主动链接的SYN标志。iptables支持使用–syn来处理。

    iptables -A INPUT -i eth0 -p tcp --sport 1:1023 -dport 1:1023 --syn -j DROP
    

      

    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld 
    开机禁用  : systemctl disable firewalld
    开机启用  : systemctl enable firewalld
     
     
    2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

    启动一个服务:systemctl start firewalld.service
    关闭一个服务:systemctl stop firewalld.service
    重启一个服务:systemctl restart firewalld.service
    显示一个服务的状态:systemctl status firewalld.service
    在开机时启用一个服务:systemctl enable firewalld.service
    在开机时禁用一个服务:systemctl disable firewalld.service
    查看服务是否开机启动:systemctl is-enabled firewalld.service
    查看已启动的服务列表:systemctl list-unit-files|grep enabled
    查看启动失败的服务列表:systemctl --failed

    3.配置firewalld-cmd

    查看版本: firewall-cmd --version
    查看帮助: firewall-cmd --help
    显示状态: firewall-cmd --state
    查看所有打开的端口: firewall-cmd --zone=public --list-ports
    更新防火墙规则: firewall-cmd --reload
    查看区域信息:  firewall-cmd --get-active-zones
    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
    拒绝所有包:firewall-cmd --panic-on
    取消拒绝状态: firewall-cmd --panic-off
    查看是否拒绝: firewall-cmd --query-panic
     
    那怎么开启一个端口呢
    添加
    firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
    重新载入
    firewall-cmd --reload
    查看
    firewall-cmd --zone= public --query-port=80/tcp
    删除
    firewall-cmd --zone= public --remove-port=80/tcp --permanent
     

     

  • 相关阅读:
    poj2528 Mayor's posters(线段树区间修改+特殊离散化)
    codeforces 733D Kostya the Sculptor(贪心)
    codeforces 733C Epidemic in Monstropolis
    poj 2828--Buy Tickets(线段树)
    lightoj 1125
    HDU 2795 Billboard (线段树)
    hdu 5945 Fxx and game(dp+单调队列! bc#89)
    poj3666 Making the Grade(基础dp + 离散化)
    codeforces 652D
    lightoj 1140
  • 原文地址:https://www.cnblogs.com/heitaoq/p/9343523.html
Copyright © 2020-2023  润新知