无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

Linux之防火墙原理 常用命令 规则表(设置大全)

前沿技术 Micheal 1年前 (2023-11-22) 241次浏览 已收录 0个评论 扫描二维码

Linux之防火墙原理 常用命令 规则表(设置大全)

目录

一、安全技术和防火墙

  • netfilter
    • 位于内核中包过滤功能体系
    • 防火墙的内核态
  • firewalld/iptables
    • 默认管理防火墙规则的工具
    • 防火墙的用户态

1.1安全技术

  • 入侵检测系统(Intrusion Detection Systems):特点是不阻断任何网络访问,量化、定位来自内外网络的威胁情况,主要以提供报警和事后监督为主,提供有针对性的指导措施和安全决策依据,类 似于监控系统一般采用旁路部署(默默的看着你)方式。
  • 入侵防御系统(Intrusion Prevention System):以透明模式工作,分析数据包的内容如:溢出攻击、拒绝服务攻击、木马、蠕虫、系统漏洞等进行准确的分析判断,在判定为攻击行为后立即予以 阻断,主动而有效的保护网络的安全,一般采用在线部署方式。(必经之路)
  • 防火墙( FireWall ):隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实现都是默 认情况下关闭所有的通过型访问,只开放允许访问的策略,会将希望外网访问的主机放在DMZ (demilitarized zone)网络中

1.2防火墙的分类

按保护范围划分:

  • 主机防火墙:服务范围为当前一台主机
  • 网络防火墙:服务范围为防火墙一侧的局域网

按实现方式划分:

  • 硬件防火墙:在专用硬件级别实现部分功能的防火墙;另一个部分功能基于软件实现,如:华为, 山石hillstone,天融信,启明星辰,绿盟,深信服, PaloAlto , fortinet, Cisco, Checkpoint, NetScreen(Juniper2004年40亿美元收购)等
  • 软件防火墙:运行于通用硬件平台之上的防火墙的应用软件,Windows 防火墙 ISA –> Forefront

按网络协议划分:

  • 网络层防火墙:OSI模型下四层,又称为包过滤防火墙
  • 应用层防火墙/代理服务器:proxy 代理网关,OSI模型七层

mac地址,ip地址,协议端口,应用层数据

包过滤防火墙

  • 优点:对用户来说透明,处理速度快且易于维护
  • 缺点:无法检查应用层数据,如病毒等

应用层防火墙

  • 优点:在应用层对数据进行检查,比较安全
  • 缺点:增加防火墙的负载

mac地址,ip地址,协议端口,应用层数据

二、netfilter

2.1

Linux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中。Netfilter 是Linux 2.4.x之后新一代的Linux防火墙机制,是linux内核的一个子系统。

2.2防火墙工具介绍

2.2.1 iptables

由软件包iptables提供的命令行工具,工作在用户空间,用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包

2.2.2 firewalld

从CentOS 7 版开始引入了新的前端管理工具
软件包:firewalld
管理工具:
firewall-cmd 命令行工具
firewall-config 图形工作

2.2.3 nftables

nftables是CentOS 8 新特性

2.3netfilter五个勾子函数和报文流向

4表5连
表中有链,链中有规则

  • 规则链
    • 规则的作用:对数据包进行过滤或处理
    • 链的作用:容纳各种防火墙规则
    • 链的分类依据:处理数据包的不同时机
  • 5种规则链
    • INPUT: 处理入站数据包
    • OUTPUT: 处理出站数据包
    • FORWARD:处理转发数据包
    • POSTROUTING链: 在进行路由选择后处理数据包
    • PREROUTING链: 在进行路由选择前处理数据包
  • 规则表
    • 表的作用:容纳各种规则链
    • 表的划分依据: 防火墙规则的作用相似
  • 4个规则表
    • raw表:确定是否对该数据包进行状态跟踪
    • mangle表:为数据包设置标记
    • nat表:修改数据包中的源、目标IP地址或端口
    • filter表:确定是否放行该数据包 (过滤)
       
  • 规则表之间的顺序
    • raw–>manle–>nat–>filter
  • 规则链之间的顺序
    • 入站:PREROUTING–>INPUT
    • 出战:OUTPUT–>POSTROUTING
    • 转发:PREROUTING–>FORWARD–>POSTROUTING
  • 规则链内的匹配顺序
    • 按顺序依次检查,匹配即停止
    • 若找不到相匹配的规则,则按该链的默认策略处理

三、iptable

Linux之防火墙原理 常用命令 规则表(设置大全)

3.1

###使用前准备
[root@localhost ~]#systemctl stop  firewalld
[root@localhost ~]#yum -y install iptables iptables-services
[root@localhost ~]#rpm -q iptables
iptables-1.4.21-35.el7.x86_64
[root@localhost ~]#systemctl start iptables.service

3.2语法

iptables  [-t 表名]  管理选项  [链名]  [匹配条件]  [-j 控制类型]
DROP(已读不回) REJECT(回复拒绝) ACCEPT(允许)
#-t不加,默认filter表

查看防火墙规则

iptables -vnL --line-numbers
-v  查看时显示更详细信息
-n  所有字段以数字形式显示
-L  查看规则列表
--line-numbers  显示各条规则在链内的顺序号
#无论查看,添加,删除,只有filter 表可以省略
 
[root@localhost ~]#iptables  -vnL  --line-number
Chain INPUT (policy ACCEPT 124 packets, 7828 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 76 packets, 6296 bytes)
num   pkts bytes target     prot opt in     out     source               destination  

添加新的防火墙规则

 
###服务器1
[root@localhost ~]#iptables -t filter -A INPUT -s 192.168.174.102 -j DROP
[root@localhost ~]#iptables  -vnL  
Chain INPUT (policy ACCEPT 24 packets, 1588 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       192.168.174.102      0.0.0.0/0           
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 19 packets, 1700 bytes)
 pkts bytes target     prot opt in     out     source               destination 
 
 
###服务器2
[root@localhost ~]#ping 192.168.174.100
PING 192.168.174.100 (192.168.174.100) 56(84) bytes of data.
#没有回应
 
 
###通过抓包只有主机2请求的包
[root@localhost ~]#tcpdump -i ens33 -p icmp  -nn
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
23:44:31.702172 IP 192.168.174.102 > 192.168.174.100: ICMP echo request, id 4469, seq 106, length 64
23:44:32.702594 IP 192.168.174.102 > 192.168.174.100: ICMP echo request, id 4469, seq 107, length 64
 
 

删除清空替换

###替换
-R
[root@localhost ~]#iptables -A INPUT -s 192.168.91.102 -j DROP
[root@localhost ~]#iptables  -vnL  --line-number
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       all  --  *      *       192.168.91.102       0.0.0.0/0           
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination   
      
[root@localhost ~]#iptables -R INPUT 1 -s 192.168.91.101 -j ACCEPT 
[root@localhost ~]#iptables  -vnL  --line-number
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       192.168.91.101       0.0.0.0/0           
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination 
 
 
 
###清空
-F
[root@localhost ~]# iptables -F 
 
 
###删除
-D
[root@localhost ~]#iptables  -vnL  --line-number
Chain INPUT (policy DROP 3 packets, 192 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       192.168.91.101       0.0.0.0/0           
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 4 packets, 396 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
[root@localhost ~]#iptables -D INPUT 1
[root@localhost ~]#iptables  -vnL  --line-number
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination  

黑白名单

白名单:在名单才可以
 
黑名单:在名单里的不可以
 
-P
####黑名单
[root@localhost ~]#iptables  -vnL  
Chain INPUT (policy ACCEPT 66 packets, 4784 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 57 packets, 4972 bytes)
 pkts bytes target     prot opt in     out     source               destination    
 
 
[root@localhost ~]#iptables -P INPUT DROP
 
####白名单
[root@localhost ~]#iptables  -vnL  
Chain INPUT (policy DROP 43 packets, 4056 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 12 packets, 1668 bytes)
 pkts bytes target     prot opt in     out     source               destination  
 
 
####
[root@localhost ~]#iptables -P INPUT ACCEPT
[root@localhost ~]#iptables -vnL
Chain INPUT (policy ACCEPT 6 packets, 364 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 4 packets, 384 bytes)
 pkts bytes target     prot opt in     out     source               destination 
[root@localhost ~]#iptables -A INPUT -s 0.0.0.0/0 -j REJECT
[root@localhost ~]#iptables -vnL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       30  2188 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 47 packets, 5176 bytes)
num   pkts bytes target     prot opt in     out     source               destination  
 
[root@localhost ~]#iptables -I INPUT 1 -s 192.168.174.1 -j ACCEPT
[root@localhost ~]#iptables -vnL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       192.168.174.1        0.0.0.0/0           
2       40  3065 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination 
[root@localhost ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
^C
--- 127.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2000ms
 
###在最后一条加了 默认拒绝所有 实现白名单功能 还可以使用iptables -F
 
 
###添加回环网卡
[root@localhost ~]#iptables -I INPUT 2 -i lo -j ACCEPT
[root@localhost ~]#iptables -vnL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        1    40 ACCEPT     all  --  *      *       192.168.174.1        0.0.0.0/0           
2        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
3       56  4413 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
[root@localhost ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.019 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.027 ms

四、firewalld

五、实操

Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)
Linux之防火墙原理 常用命令 规则表(设置大全)

本文作者:德国南部之星

本文链接:https://www.cnblogs.com/mtwm/p/17636921.html

Docker 入门教程 (runoob 菜鸟,从入门实战到精通)

 

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝
发表我的评论
取消评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

表情 贴图 加粗 删除线 居中 斜体 签到