• 【包过滤防火墙——iptables静态防火墙】的简单使用


    防火墙就是堵和通的作用

    iptables :包过滤防火墙,是内核防火墙netfilter的管理工具

    核心:四表五链

    规则链的分类–五链

    在进行路由选择前处理的数据包:PREROUTING

    处理流入的数据包INPUT

    处理流出的数据包:OUTPUT

    处理转发的数据包:FORWARD

    在进行路由选择后处理的数据包:POSTROUTING

    处理的动作

    ACCEPT:允许流量通过

    REJECT:拒绝流量通过 (流量拒绝会通知,会返回流量拒绝信息)

    LOG:记录日志信息

    DROP:拒绝流量通过,丢弃 (直接把流量丢弃,不会返回任何值)

    iptables常用参数和作用

    参数作用
    -P设置默认策略
    -F清空规则链
    -L查看规则链
    -A在规则链的末尾加入新的规则
    -l num在规则链的头部加入新的规则
    -D num在规则链中删除某一条规则链
    -s匹配来源的ip/MASK
    -d匹配目标地址
    -i 网卡名称匹配这块网卡流入的数据
    -o 网卡名称匹配这块网卡流出的数据
    -p匹配协议,例如:TCP、UDP、ICMP
    –dport num匹配目标端口号
    –sport num匹配来源端口号

    以Centos7和Kali为例

    Centos——IP地址:192.168.80.131

    Kali————IP地址:192.168.80.141

    先停止、禁用firewalld

    systemctl stop firewalld
    systemctl disable firewalld
    
    • 1
    • 2
    • 查看规则链
    iptables -L
    
    • 1

    在这里插入图片描述

    • 清空规则链
     iptables -F
    
    • 1

    其实刚开始在没有配置规则的使用,查看规则链的时候就是空的

    • 设置默认规则 ,将流入的流量丢掉
     iptables -P INPUT DROP
    
    • 1

    image-20230902173734183

    命令回车 之后会发现,输入任何命令已经没有反应了

    因为我是通过SSH连接到Centos7系统的,流量属于流入的流量,通过iptables -P INPUT DROP命令将流入的流量全部都禁掉了,所以就不能SSH连接了

    主机使用ping命令也会ping不通centos

    image-20230902174220184

    • 允许icmp协议流量通过
    iptables -I INPUT -p icmp -j ACCEPT
    
    • 1

    image-20230902180051540

    再次测试网络连通性就 可以通了

    image-20230902175255098

    虽然能ping通,但是ssh还是连接不上 ,因为没有设置允许tcp协议(ssh协议用的是tcp协议) 流量通过

    • 可以显示规则的行数
    iptables -nL --line-numbers
    
    • 1
    • 删除刚才的默认策略
    iptables -D INPUT 1
    
    • 1

    image-20230902180227773

    • 允许所有流量通过
    iptables -P INPUT ACCEPT
    
    • 1

    image-20230902180424300

    现在SSH就能 连接成功了

    image-20230902180605329

    • 所有进来的22端口的TCP流量都给拒绝
     iptables -A INPUT -p tcp --dport 22 -j REJECT
    
    • 1

    命令回车后,ssh就不能连接了,已经被拒绝了

    image-20230902181045147

    查看一个规则

    image-20230902181347523

    • 允许192.168.80.0网段的22端口通过
    iptables -I INPUT -s 192.168.80.0/24 -p tcp --dport 22 -j ACCEPT
    
    • 1

    image-20230902182919230

    匹配规则:从上往下


    • 设置某个端口流量全部拒绝 (UDP、TCP)
    iptables -I INPUT -p tcp --dport 80 -j REJECT
    iptables -I INPUT -p udp --dport 80 -j REJECT
    
    • 1
    • 2
    • 在input链中添加某个IP拒绝访问某个端口
    iptables -I INPUT -p tcp -s 192.168.80.1 --dport 8080 -j REJECT
    
    • 1

    这里不能直接写真实机的地址,应该写VMnet8的地址,这样才能限制住真实机的访问

    image-20230902190144279

    Centos开启8080端口服务

    python3 -m http.server 8080
    
    • 1

    image-20230902190340997

    kali可以访问到

    image-20230902184716297

    真实机就访问不到了

    image-20230902190031690

    • 清空所有策略
    iptables -F
    
    • 1

    image-20230902190449942

    • 禁用某一段端口
    iptables -A INPUT -p tcp --dport 8000:9000 -j REJECT
    
    • 1
    • 保存规则
    iptables-save
    iptables-save > 1.txt
    
    • 1
    • 2

    https://www.cnblogs.com/ip99/p/15313691.html
    https://www.cnblogs.com/machangwei-8/p/15978257.html
    https://blog.csdn.net/u014644574/article/details/130071097

  • 相关阅读:
    endnote21从安装到使用!文献引用!Mac版
    实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名密码. 如果用户名密码出错, 使用自定义异常的方式来处理
    【antdv】input实现搜索框获取清空输入值
    互联网摸鱼日报(2023-09-18)
    独立服务器应该怎么选择?
    鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:RichText)
    python经典百题之画椭圆
    element-ui的el-table属性修改,如内边框,斑马纹,列宽度...
    基于变色龙算法的无人机航迹规划-附代码
    申报国家高新技术企业有什么好处?
  • 原文地址:https://blog.csdn.net/ZhaoSong_/article/details/132641958