Linux中的防火墙(粗糙版)

防火墙的配置和策略

安全技术:

入侵检测系统:特点是不阻断网络访问,量化,定位的方式来锁定内外网络的危险情况,提供告警服务和事后监督为主。

说白了就是默默看着你,没有主动行为

入侵防御系统:特点是以透明模式工作,分析数据包,木马,病毒,服务攻击等进行准确的分析判断,判定之后会立即阻断。

他是主动地有效的保护网络安全

是所有数据进入指定网络的必经之路

防火墙就是入侵防御系统(人工配置或者系统预设):主要就是隔离,工作在网络或者主机的边缘

对进出网络或者主机的数据包基于一定规则的检查。而且在匹配到某规则时,由规则定义做出相应的处理动作

只有允许策略的数据包,才能够通过

防水墙:ensp.他是不透明的一种工作方式,你干什么都会有记录,但是你自己不知道

保护范围:

主机防火墙:只能保护当前一台主机

网络防火墙:可以保护整个防火墙另一侧的局域网

网络协议:

网络层防火墙:iptables firwalld 包过滤防火墙,对数据包进行过滤

应用层防火墙:

iptables 就是包过滤防火墙

面试题:通信的五要素和四要素:

五要素:

源IP和目的IP

源端口和目的端口

协议(tcp/udp)

四要素:

源IP和目的IP

源端口和目的端口

iptables:属于用户态防火墙

用户态:面向使用对象,我们就是使用工具,配置策略

内核态:代码层(开发考虑的)

iptables的配置规则生效之后,会立即生效,无须重启

centos7之前,iptables是默认配置,现在默认配置是firewalld

之后要使用iptables需提前将firewalld关闭

面试题:四个表组成:

row表:控制数据包的状态跟踪,以及可以决定是否跳过后续的处理。(关闭还是启用数据包的跟踪机制,加快数据包穿越防火墙的速度)

mangle表:修改数据包的头部信息(修改数据包的标记位规则)

nat表:用于网络地址转换,可以改变数据包的源IP地址和目的IP地址

filter表:是iptables的默认表,用于过滤数据包,可以控制数据包的进出。以及是否接受或者拒绝数据包

每个表里面都有链:链里面有5个链:

INPUT链:数据包进入本机的规则

OUTPUT链:数据包出本机的规则

PREROUTING链:数据包进入本机之前,是否做地址转换

POSTROUTING链:数据包离开本机之前,是否要做地址转换

FORWARD链:是否运行数据包通过本机进行转发

四个表......5个链......每个链里面都有对应的规则

规则就是我们人工配置的策略

数据包进入本机之后,匹配表是由优先级的

row............mangle.........net............filter

PS:到工作中千万不要这么干,发现服务无法启动不要去关防火墙。 生产的防火墙都是白名单。清空防火墙策略,你也要倒霉。

iptables命令的格式和相关选项:

格式:

iptables -t 表名 管理选项 链名 匹配条件 -j 控制类型

不加 -t 表名 默认就是fiter表

不加链名,就是指所有链,不推荐如此操作

管理选项:

-A:在指定链的末尾追加一条

-I:在指定链中插入一条新的规则,根据编号来进行插入,不指定序号,直接插入当前链中的第一条(不推荐)

-P:指定默认策略

-D:删除规则

-R:修改或者替换规则(不推荐)

-L:查看

v:显示详细信息

n:所有字段以数字形式显示

-F:清空链当中的所有规则(慎用)

-X:清空自定义链的规则

匹配条件:

-p:指定匹配数据包的协议类型

-s:指定匹配数据包的源IP地址

-d:指定匹配数据包的目的IP地址

-i:指定数据包进入使用本机的网络接口

-o:指定数据包离开本机使用的网络接口

-sport:指定源端口

-dport:指定目的端口

控制类型:

ACCPET:允许数据包通过

DROP:直接丢弃数据包而且没有任何回应信息

REJECT:拒绝数据包通过,会给一个响应信息

SNAT:修改数据包的源地址

DNAT:修改数据包的目的地址

规则内的匹配顺序:

自上向下按照顺序依次进行检测,找到匹配的规则立刻停止,如果在链中找不到规则,则会按照该链默认策略处理

1.如果策略已保存过,写在配置文件中的保存,导入到iptables,重启服务即可

2.机房调整

3.炸

命令:

iptables -F #清空所有策略

iptables -vnL

iptables -vnL --line-numbers

iptables -t filter -A INPUT -p icmp -j REJECT #禁止所有主机ping本机,包括本机

iptables -t filter -A INPUT -p icmp -j ACCEPT #允许ping通,-A在前一条规则后添加

PS:匹配到了就不会在匹配后面的规则

iptables -t filter -I INPUT 1 -P icmp -j ACCEPT #指定序号插入,插入到第一条,他是立即生效

iptables -vnL --line-numbers #查看行规则的位置

iptables -t filter -I INPUT 1 -p icmp -j DROP #

iptables -A INPUT -s 192.168.86.12 -p icmp -j REJECT #指定拒绝主机

iptables -t filter -I INPUT 1 -s 192.168.86.12 -p tcp --dport 80 -j REJECT

删除规则:

iptables -D INPUT 需要删除的序号

修改规则:(极其不推荐此功能)

iptables -R INPUT 1 -s 192.168.86.12 -p tcp --dport 80 -j ACCEPT

修改默认策略:

iptables -P INPUT DROP

拒绝整个网段:

iptables -A INPUT -ptcp -s 192.168.86.0/24 --dport 80 -j REJECT

拒绝多个网络是用逗号隔开

拒绝多个端口是用:隔开,而且需要小的端口在前,大的端口在后

iptables -A INPUT -p tcp -m -- dport 22:80 -j REJECT

显示匹配:已-m扩展模块形式指出类型,多端口MAC地址,ip范围

多端口:

iptables -A INPUT -p tcp -m multiport -- dport 80,22,21,53 -j REJECT

IP范围:

iptables -A INPUT -p tcp -m iprange --src-range 192.168.86.11-192.168.86.14 --dport 80 -j REJECT

MAC地址:

iptables -A INPUT -m mac --mac-source mac地址 -j REJECT

对指定设备进行操作:

-i:数据的入口设备

-o:数据的出口设备

需求:所有从ens33接口进入的数据包,全部拒绝,而且指定IP地址DROP

iptables -A INPUT -i ens33 -s 192.168.86.12,192.168.86.13 -j DROP

iptables -A INPUT -p icmp -j ACCEPT

备份:

iptables-save > /opt/iptables.bak

cat /etc/sysconfig/iptables

iptables-restore < /opt/iptables.bak #这是临时导入

cat /opt/iptables.bak > /etc/sysconfig/iptables #这是永久导入

PS:导入配置文件之前,原文件一定要备份!

相关推荐
gywl13 分钟前
openEuler VM虚拟机操作(期末考试)
linux·服务器·网络·windows·http·centos
青木沐14 分钟前
Jenkins介绍
运维·jenkins
WTT00111 小时前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
苹果醋31 小时前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
了一li1 小时前
Qt中的QProcess与Boost.Interprocess:实现多进程编程
服务器·数据库·qt
日记跟新中2 小时前
Ubuntu20.04 修改root密码
linux·运维·服务器
唐小旭2 小时前
服务器建立-错误:pyenv环境建立后python版本不对
运维·服务器·python
码农君莫笑2 小时前
信管通低代码信息管理系统应用平台
linux·数据库·windows·低代码·c#·.net·visual studio
明 庭2 小时前
Ubuntu下通过Docker部署NGINX服务器
服务器·ubuntu·docker