分享好友 最新动态首页 最新动态分类 切换频道
FIREWALLD--linux防火墙
2024-12-25 12:25

linux防火墙

防火墙的核心是数据报文过滤

工作在主机或者网络的边缘,对进出的数据报文进行检查,监控,并且能够根据事先定义的匹配条件和规则做出相应的动作的组件,机制或者系统

linux一般都是作为服务器系统来使用,对外提供一些基于网络的服务

通常我们都需要对服务器进行一些网络访问控制,类似防火墙的功能    

常见的访问控制包括:哪些ip可以访问服务器、可以使用哪些协议、哪些接口,是否通过数据包进行修改等

:服务器可能受到来自某个ip攻击,这时就需要禁止所有来自ip的访问

linux内核集成了网络控制功能。通过netfilter模块来实现

linux内核通过netfilter模块实现网络访问控制功能在用户 层我们可以通过iptables程序对netfilter进行控制管理。iptables 是一个应用层的应用程序,它通过 Netfilter 放出的接口来对存放在内核内存中的 XXtables(Netfilter的配置表)进行修改。这个XXtables由表tables、链chains、规则rules组成,iptables在应用层负责修改这个规则文件。类似的应用程序还有 firewalld 。

netfilter可以对数据进行允许、丢弃、修改操作

netfilter支持通过以下方式对数据包进行分类

源ip地址

目标ip地址

使用接口

使用协议(TCP UDP ICMP

端口号

连接状态 (new established related invalid

iptables service 首先对旧的防火墙规则进行了清空,然后重新完整地加载所有新的防火墙规则,而如果配置了需要 reload 内核模块的话,过程背后还会包含卸载和重新加载内核模块的动作,而不幸的是,这个动作很可能对运行中的系统产生额外的不良影响,特别是在网络非常繁忙的系统中。

如果我们把这种哪怕只修改一条规则也要进行所有规则的重新载入的模式称为静态防火墙的话,那么 firewalld 所提供的模式就可以叫做动态防火墙,它的出现就是为了解决这一问题,任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables 即可,它具备对 IP v4  IP v6 防火墙

设置的支持。

应用层    (通过人机交互实现各种服务)             系统调用   用户层

——————————————————————————————

                                                        内核接口层

                  TCP/UDP                                                    ip_tables  内核模块                                         

              网络层 ip        hook  回调函数点           Netfilter    

              数据链路层

———————————————————————————— ——

                物理层                                           硬件/驱动层

五元组 (保障网络安全

 源ip  数据报文从哪来

 目ip  数据报文从哪去

 源端口   1--1024预定义端口  

 目的端口

 传输协议  

(Hook Point,我们可以理解为回调函数点,数据包到达这些位置的时候会主动调用我们的函数,使我们有机会能在数据包路由的时候改变它们的方向、内容

内核通过钩子函数实现(hook function)

五个位置的钩子函数

    • INPUT当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。
    • OUTPUT当防火墙本机向外发送数据包(出站)时,应用此链中的规则。
    • FORWARD当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。
    • PREROUTING在对数据包作路由选择之前,应用此链中的规则,如DNAT。
    • POSTROUTING在对数据包作路由选择之后,应用此链中的规则,如SNAT。

filter表     数据包过滤

主要用于对数据包进行过滤,根据具体的规则决定是否放行该数据包(如DROP、ACCEPT、REJECT、LOG)。filter 表对应的内核模块为iptable_filter

nat表   地址转换

主要用于修改数据包的IP地址、端口号等信息(网络地址转换SNAT、DNAT)。属于一个流的包(因为包的大小限制导致数据可能会被分成多个数据包)只会经过

这个表一次。

mangle表   报文重构

拆解报文,作出修改并重新封装的功能

raw表    原始报文

是自1.2.9以后版本的iptables新增的表,主要用于决定数据包是否被状态跟踪机制处理。(关闭nat表中的连接追踪机制在匹配数据包时,raw表的规则要优先于其他表。包含两条规则链——OUTPUT、PREROUTING

4个表的优先级由高到低的顺序为:raw-->mangle-->nat-->filter

:如果PREROUTING链上,即有mangle表,也有nat表,那么先由mangle处理,然后由nat表处理

RAW表只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在某个链上,RAW表处理完后,将跳过NAT表和MANGLE表处理,即不再做地址转换和数据包的链接跟踪处理了.

 

防火墙的核心是数据报文过滤

网络模块由内核实现,而过滤的实现必须在内核中,而用户是无法直接访问内核,更别说把过滤规则放置到内核中

因此在TCP/IP协议栈上,选取了几个不同的位置,开放给用户空间的应用程序,该应用程序可以通过系统调用将规则

发送到指定的内核位置。

功能

可以保护易受攻击的服务

控制内外网的访问

集中管理内网安全性

提高网络保密性和私有性

记录网络的使用状态,提供规划依据

工作流程:网口数据包由底层的网卡NIC接收,通过数据链路层的解包之后(去除数据链路帧头),就进入了TCP/IP协议栈(本质就是一个处理网络数据包的内核驱动)和Netfilter混合的数据包处理流程中了。数据包的接收、处理、转发流程构成一个有限状态向量机,经过一些列的内核处理函数、以及Netfilter Hook点,最后被转发、或者本次上层的应用程序消化掉。

 

 

动作

ACCEPT 接受数据包

DROP        丢弃数据包

REJECT        丢弃数据包并向发送者返回错误消息

命令格式

 

    • -A:新增一条规则,到该规则链列表的最后一行
    • -I:插入一条规则,原本该位置上的规则会往后顺序移动,没有指定编号则为1
    • -D:从规则链中删除一条规则,要么输入完整的规则,或者指定规则编号加以删除
    • -R:替换某条规则,规则替换不会改变顺序,而且必须指定编号。
    • -P:设置某条规则链的默认动作
    • -nL:-L、-n,查看当前运行的防火墙规则列表

    • [-i|o 网卡名称]:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出
    • [-p 协议类型]:可以指定规则应用的协议,包含tcp、udp和icmp等
    • [-s 源IP地址]:源主机的IP地址或子网地址
    • [--sport 源端口号]:数据包的IP的源端口号
    • [-d目标IP地址]:目标主机的IP地址或子网地址
    • [--dport目标端口号]:数据包的IP的目标端口号

-m:extend matches,这个选项用于提供更多的匹配参数,如

    • -m state --state ESTABLISHED,RELATED
    • -m tcp --dport 22
    • -m multiport --dports 80,8080
    • -m icmp --icmp-type 8

安装iptables

#yum install iptables-sevices

Systemctl stop firewalld

案例讲解

#iptables -L              (协议状态)

#iptables-save

Yum install iptbales-services

[root@localhost ~]# systemctl start iptables.service

1、搭建web服务,并且能够访问

#开放web服务端口

[root@mail html]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#列出规则表中的编号

#iptables  -L --line-numbers

#删除刚刚添加的规则,并进行测试

[root@mail html]# iptables -D INPUT 1

2、禁止所有人ssh远程登陆该服务器

[root@mail html]# iptables -I INPUT -p tcp --dport 22 -j REJECT

#删除刚刚添加的规则,并进行测试

[root@mail html]# iptables -D INPUT 1

3、禁止某个主机地址ssh远程登陆该服务器

#拒绝144主机访问服务器的22端口

[root@mail ~]# iptables -I INPUT -p tcp -s 192.168.171.144 --dport 22 -j REJECT

#开启服务器的web服务,并用144客户端进行访问

[root@mail html]# iptables -I INPUT -p tcp -s  192.168.171.144  --dport 80 -j ACCEPT

#查看所有规则

Netstat -lntup | grep 80  查看开放的端口

案例练习

1、添加iptables规则禁止用户访问域名为www.baidu.com的网站

iptables -I FORWARD -d www.baidu.com -j DROP

2、添加iptables规则禁止用户访问ip地址为20.20.20.20的网站

iptables -I FORWARD -D 20.20.20.20 -j DROP

3、添加iptables规则禁止IP地址为192.168.171.144的客户机上网

iptables -I FORWARD -s 192.168.171.144 -j DROP

4、添加iptables规则禁止192.168.171.0子网所有的客户机上网

iptables -I FORWARD -s 192.168.171.0/24 -j DROP

5、禁止192.168.171.0子网所有客户机使用ftp协议下载

iptables -I FORWARD -s 192.168.171.0/24 -p tcp --dport 21 -j DROP

6、禁止192.168.171.0子网所有客户机使用telnet协议连接远程计算机

iptables -I FORWARD -s 192.168.171.0/24 -p tcp --dport 23 -j DROP

7、强制所有的客户机访问192.168.171.1这台web服务器

iptables -t nat -I PREROUTING -i eht0 -p tcp --dport 80 -j DNAT --to-destination 192.168.171.1:80

8、禁止internat上的计算机通过ICMP协议ping到nat服务器的ppp0接口,但允许内网的客户机通过ICMP协议ping通

iptables -I INPUT -i ppp0 -p icmp -j DROP

-i eth0:从这块网卡流入的数据

流入一般用在INPUT和PREROUTING上

-o eth0:从这块网卡流出的数据

流出一般在OUTPUT和POSTROUTING上

9、发布内网192.168.171.143主机的web服务,internet用户通过访问防火墙的IP地址即可访问该主机的web服务

iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.171.143:80

10、发布内网192.168.171.143主机的终端服务,internat用户通过访问防火墙的IP地址访问该主机的终端服务

iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.171.143:3389

示例:

#开放常用的端口

iptables -A INPUT -p TCP --dport 80 -j ACCEPT

iptables -A INPUT -p TCP --sport 80 -j ACCEPT

iptables -A INPUT -p TCP --dport 25 -j ACCEPT

iptables -A INPUT -p TCP --sport 25 -j ACCEPT

iptables -A INPUT -p TCP --dport 110 -j ACCEPT

iptables -A INPUT -p TCP --sport 110 -j ACCEPT

iptables -A INPUT -p TCP --dport 143 -j ACCEPT

iptables -A INPUT -p TCP --sport 143 -j ACCEPT

#SSH

iptables -A INPUT -p TCP --dport 59687 -j ACCEPT

iptables -A INPUT -p TCP --dport 9900 -j ACCEPT

iptables -A INPUT -p UDP --sport 53 -j ACCEPT

iptables -A INPUT -p TCP --sport 53 -j ACCEPT

#antispam

iptables -A INPUT -p TCP --sport 6220 -j ACCEPT

iptables -A INPUT -p TCP --sport 6610 -j ACCEPT

iptables -A INPUT -p TCP --sport 6611 -j ACCEPT

#SSL

iptables -A INPUT -p TCP --dport 995 -j ACCEPT

iptables -A INPUT -p TCP --dport 993 -j ACCEPT

iptables -A INPUT -p TCP --dport 465 -j ACCEPT

iptables -A INPUT -p TCP --dport 443 -j ACCEPT

#NTP date

iptables -A INPUT -p UDP --sport 123 -j ACCEPT

#snmp

iptables -A INPUT -i eth0 -p udp -s 125.76.229.215 --dport 161 -j ACCEPT

iptables -A INPUT -i eth0 -p udp -s 60.195.249.83 --dport 161 -j ACCEPT

iptables -P FORWARD DROP

iptables -A INPUT -j REJECT

iptables -P OUTPUT ACCEPT

#防止同步包洪水(Sync Flood

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

#防止各种端口扫描

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

#Ping洪水攻击(Ping of Death

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#屏蔽 SYN_RECV 的连接

iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT

FirewallD 使用服务(service) 和区域(zone)来代替 iptables 的规则(rule)和链(chain)。

/usr/lib/firewalld      service ssh.xml

 

默认情况下,有以下的区域(zone)可用

    • drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。
    • block — 阻塞区:拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。
    • public — 只接受被选择的传入网络连接,用于公共区域。
    • external —外部区 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。
    • dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。
    • work — 对于处在你工作区域内的计算机,只接受被选择的传入网络连接。
    • home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。
    • internal —内部网络 对于处在你内部网络的计算机,只接受被选择的传入网络连接。
    • trusted — 受信任区所有网络连接都接受。

预定义服务/添加端口

1 直接编辑配置文件/etc/firewalld/

2 使用firewall-config图形工具

通过这个图形工具,可以更改和检查firewalld内存中的配置(Runtime,也可以修改磁盘上的持久配置(Permanent

3 使用firewall-cmd命令

预定义服务

使用firewall-config来启动图形界面查看预定义服务,在有条件的情况下推荐使用

预定义服务可以通过查看firewalld.service(5)man手册

也可以通过查看目录了解更详细,该目录下面的禁止编辑

[root@localhost ~]# ls /usr/lib/firewalld/services/

也可以查看该目录下的,该目录下的可以编辑

[root@localhost ~]# ls /etc/firewalld/services/

#使用命令查看所有支持的服务

[root@localhost ~]# firewall-cmd --get-services

#添加服务

[root@mail ~]# firewall-cmd --add-service=http

#设置服务超时时间,即服务的开启时间,单位秒

[root@mail ~]# firewall-cmd --add-service=http --timeout=10

熟练和习惯使用tab进行选项补全和参数补全

#启用紧急模式(所有的 规则出入都拒绝)

[root@mail ~]# firewall-cmd --panic-on

#禁用紧急模式

[root@mail ~]# firewall-cmd --panic-off

#查询紧急模式状态

[root@mail ~]# firewall-cmd --query-panic

#查看当前区域

[root@mail ~]# firewall-cmd --get-default-zone

#查看所有支持的区域

[root@mail ~]# firewall-cmd --get-zones

#设置trusted区域为当前区域

[root@mail ~]# firewall-cmd --set-default-zone=trusted

#根据接口查询区域

[root@mail ~]# firewall-cmd --get-zone-of-interface=eno16777736

#添加当前源地址

[root@mail ~]# firewall-cmd --add-source=192.168.171.1/24

#添加一个端口

[root@mail ~]# firewall-cmd --add-port=8080/tcp

#删除源地址

[root@mail ~]# firewall-cmd --remove-source=192.168.171.1/24

#删除端口

[root@mail ~]# firewall-cmd --remove-port=8080/tcp

#以上都为运行时生效

#永久生效

#添加规则

[root@mail ~]# firewall-cmd --permanent --add-service=http

#重新加载

[root@mail ~]# firewall-cmd --reload

#列出所支持的ICMP类型

[root@mail ~]# firewall-cmd --get-icmptypes

#列出所有区域的详细信息

[root@mail ~]# firewall-cmd --list-all-zones

#添加ssh服务进行测试

[root@mail ~]# firewall-cmd --permanent --add-service=ssh

#列出指定区域的规则

[root@mail ~]# firewall-cmd --zone=trusted --list-all

#启用伪装功能,但因为内核限制,只支持ipv4

[root@mail ~]# firewall-cmd --add-masquerade

#添加禁止icmp报文

[root@mail ~]# firewall-cmd --add-icmp-block=echo-request

永久模式不直接影响运行时状态,只有在重启服务或者重载时生效

运行模式,直接模式不保存规则,在重载或者重启服务后必须再次提交,传递的参数和iptable一致

#添加一个列表

[root@mail ~]# firewall-cmd ----direct permanent --add-chain ipv4 raw blacklist

#给列表添加一个规则

[root@mail ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw PREROUTING 0 -s 192.168.171.0/24 -j blacklist

#定义列表的动作

[root@mail ~]# firewall-cmd --direct --permanent --add-rule ipv4 raw blacklist 1 -j DROP

rich rule

图形界面

命令行界面

#添加一个富规则

firewall-cmd [--zone=zone] --add-rich-rule='rule' [--timeout=timeval]

#删除一个富规则

firewall-cmd [--zone=zone] --remove-rich-rule='rule'

#查询一个富规则

firewall-cmd [--zone=zone] --query-rich-rule='rule'

富规则的格式

rule [family="rule family"]

[ source address="address" [invert="True"] ]

[ destination address="address" [invert="True"] ]

[ element ]

[ log [prefix="prefix text"] [level="log level"] [limit

value="rate/duration"] ]

[ audit ]

编辑配置文件/etc/firewalld/firewalld.conf

Lockdown=yes

#重载

firewall-cmd --reload

#启用imaps服务

firewall-cmd --add-service=imaps

端口管理

#查询所有可用端口

semanage port -l

semanage port -a -t nfs_port_t -p tcp 8080
 

iptables raw表_海哥学运维-CSDN博客_iptables raw

指定规则操作表

指定规则表中的

某一个链

最新文章
SEO自动化工具,助力企业网站快速提升搜索引擎排名
自动SEO工具帮助企业网站优化,通过智能算法分析关键词、提升内容质量,快速提升搜索引擎排名,让企业网站在搜索引擎中获得更高曝光,助力业务增长。自动SEO的内涵解读自动SEO的显著优势运用自动SEO策略提升企业网站排名在互联网高速发展的
AI插画生成器Ilus AI:可快速生成涂鸦、扁平化插画
站长之家(ChinaZ.com)5月8日 消息:Ilus AI是一款先进的AI插画生成器,它能够快速生成各种风格的插画,包括墨线画、涂鸦和扁平化设计等。这款工具为用户提供了一种创新的方式来创作个性化的插画,大大缩短了设计过程所需的时间。官网:htt
分类信息网站平台百度小程序系统源码
2020年09月02日刘贵3南阳网络推广,南阳seo,南阳网络推广公司,南阳新媒体推广,南阳网络营销策划,南阳网络营销,南阳网络推广外包,南阳网站推广,河南网络营销,南阳网站优化信息技术咨询服务;网络与信息安全软件开发;网络技术服务;互联网安
《深圳seo公司》揭秘:打造网络营销领域的视觉革命与媒介深度(深圳seo公司揭秘高效SEO策略,助您网站跃居行业前沿)
:揭秘深圳SEO公司:如何助力企业网络营销成功?随着互联网的快速发展,网络营销已经成为企业拓展市场的重要手段。而在众多网络营销策略中,搜索引擎优化(SEO)以其高效、低成本的优势,受到越来越多企业的青睐。在深圳这样的一线城市,众
MC在线网页版整理合集 附游玩链接
MC Web 在线MinecraftMC Web是我在51放假的时候制作的,目的就是整理网络上的一些MC网页,通过爬虫或开源的项目来上传至github.com上,这个网站是开源的,你也可以通过访问https://github.com/cnzz666/cnzz666.github.io 来克隆或修改项目
SEO常见问题详解
在做SEO的过程中,我们经常遇到紧急的事情,比如:你的某个目标关键词不知道为什么关键词排名突然下降,而你某些重要的商业活动,即将开启,就需要用到这个词,这个时候你怎么办,很多SEO人员会选择用快排的策略,试图快速排名。(笑哥网站
成品站719如何帮助企业提升站建设效率并优化SEO
在如今的数字时代,企业网站和个人网站的建设已经不再局限于单纯的展示功能,更多的是为了提升用户体验与网站优化。成品网站1.1.719作为一种新型的建站方案,逐渐受到越来越多企业和站长的青睐。它具备了多种优点,包括快速搭建、模板丰富
优化seo的软件 高效SEO优化工具:加速网站排名的秘密武器
在当今这个数字化时代,搜索引擎优化(SEO)已成为企业网站获取自然流量、提升品牌曝光度及增强市场竞争力不可或缺的一环面对日益复杂的搜索引擎算法和激烈的在线竞争环境,借助专业的“优化SEO的软件”成为了众多企业的明智之选本文将深入
人力资源管理系统:国内十大效率提升利器
一、Zoho PeopleZoho People是一款功能全面且易于使用的在线人力资源管理系统,它为各种规模的企业提供了一系列工具,用于自动化和简化人力资源管理流程。1、集中式员工信息管理Zoho People使公司能够整合来自全球多个地点的员工记录和信息
喜讯!两江新区1人获评全国退役军人服务中心(站)“百名优秀主任(站长)”
为表扬先进典型、弘扬奋斗精神,充分发挥先进典型示范带动作用,近日,退役军人事务部办公厅对300名基层退役军人服务中心(站)主任(站长)给予表扬。人和街道退役军人服务站站长侯帆获评2023年度全国退役军人服务中心(站)“百名优秀主
相关文章
推荐文章
发表评论
0评