Linux下的火墙管理及优化

从功能角度来讲

防火墙是位于内部网和外部网之间的屏障,它按照系统管理员预先定义好的规则来控制数据包的进

从功能实现角度来讲

火墙是系统内核上的一个模块netfilter(数据包过滤机制)

通过netfiler来管理kernel space中的策略

netfilter 简介

Netfilter是Linux 2.4.x引入的一个子系统

它作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的连接跟踪等等

netfilter分析OSl七层协议的2、3、4层

netfiler可以直接分析数据包头部数据,包括硬件地址,软件地址、TCP、UDP、ICMP等数据包的信息都可以进行过滤分析

Linux的netfilter机制可以进行的工作有:

拒绝让Internet的数据包进入主机的某些端口

拒绝让某些来源ip的数据包进入

拒绝让带有某些特殊标志(fag)的数据包进入,最常拒绝的就是带有SYN的主动连接的标志了

分析硬件地址(MAC)来决定连接与否。

地址转换。

防火墙并不能有效阻挡病毒或木马程序,并且防火墙对于内部LAN的攻击无能为力

什么是内核空间的iptables

iptables 是基于Netfiter框架实现的报文选择系统

iptables用于报文的过滤、网络地址转换和报文修改等功能

iptables 本质上是包含了5个规则表,而规则表则包含了一些列的报文的匹配规则以及操作目标

1 、raw表:

第一优先级的表,设置raw表规则后,不会对数据包进行链接跟踪和NAT转换,使用于PREROUTING和OUTPUT链,对应的动作为NOTRACK。

2 、mangle表:

第二优先级的表,根据规则,修改数据包的TOS(TypeOfService,服务类型)、TTL(TimeToLive,生存周期)以及设置Mark标记,以实现Qos以及策略路由等。

3、nat表

第三优先级的表,网络地址转换表,用于修改源和目的的地址,分SNAT(源目的地址转换)和DNAT(目的地址转换)。

4 、filter表:

第四优先级的表,用于控制到达链(forward链、input链、output链)上的数据包,是放行(accepte)、丢弃(drop)或者拒绝(reject)。

5 、security表:

最不常用的表(通常,我们说iptables只有4张表,security表是新加入的特性),用于在数据包上应用SELinuX.

iptables 服务

iptables服务是用户管理内核空间的iptables的管理工具,通过iptables书写内核空间的iptables策略

iptables的规则是至上而下的读取方式,遇到与数据包信息匹配的规则后直接采用iptables的规则默认保存在内存中,如果需要永久保存需要把策略以字符的形式保存到/etc/sysconfig/iptables中

开启iptables服务

root@localhost \~# systemctl disable --now firewalld

Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".

Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".

root@localhost \~# systemctl mask firewalld

Created symlink /etc/systemd/system/firewalld.service → /dev/null.

root@localhost \~# systemctl enable --now iptables.service

Created symlink /etc/systemd/system/multi-user.target.wants/iptables.service → /usr/lib/systemd/system/iptables.service.

iptables 命令的语法格式及常用参数

查看当前iptables策略

清空表中策略

root@localhost \~# iptables -t filter -F

允许本机回环接口访问

root@localhost \~# iptables -A INPUT -i lo -j ACCEPT

允许本机sshd的22端口被访问

root@localhost \~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

仅允许172.25.254.100访问22端口

root@localhost \~# iptables -A INPUT -p tcp --dport 22 ! -s 192.168.230.100 -j REJECT

删除filter表中INPUT链的第三条策略

root@localhost \~# iptables -D INPUT 3

修改filter表中INPUT链的第2条策略

root@localhost \~# iptables -R INPUT 2 -p tcp --dport 80 -j ACCEPT

在filter表中建立名称叫做xzq的自定义链

root@localhost \~# iptables -N xzq

在filter表中重命名xzq为xxx

root@localhost \~# iptables -E xzq xxx

删除xxx链

root@localhost \~# iptables -X xxx

添加禁止192.168.230.110 22端口远程登陆但是不会生效

root@localhost \~# iptables -A INPUT -s 192.168.230.110 -p tcp --dport 22 -j REJECT

添加 第二条 禁止192.168.230.110 80端口远程登陆

root@localhost \~# iptables -I INPUT 2 -s 192.168.230.110 -p tcp --dport 80 -j REJECT

测试192.168.230.110访问192.168.230.100

root@localhost \~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

root@localhost \~# iptables -nL

Iptables 中nat的应用

开启内核路由功能

火墙策略

访问设置网关ping

dnat 地址转换

相关推荐
liulilittle4 小时前
关于拥塞控制的几点思考
网络·c++·tcp/ip·计算机网络·信息与通信·tcp·通信
AOwhisky5 小时前
MySQL 学习笔记(第四期):SQL 语言之多表查询
linux·运维·网络·数据库·笔记·学习·mysql
Phantom Void5 小时前
服务器处理客户端请求的设计方法
linux·运维·网络
王码码20355 小时前
办了500M宽带看视频还是卡?我用NAS搭了个测速服务器,宽带有没有缩水一测便知
网络·接口·nas
ylscode5 小时前
Anthropic Claude Oceanus意外泄露:Mythos系列AI红队测试遭遇API代理滥用危机
网络·人工智能·安全·web安全·安全威胁分析
myenjoy_17 小时前
MQTT 与 Sparkplug B——从车间到云端的最后一公里
网络·python
2401_873479408 小时前
企业安全运营中,如何用IP离线库提前发现失陷主机?三步实现风险画像
网络·数据库·python·tcp/ip·ip
代码中介商10 小时前
HTTP 完全指南(最终篇):CORS 跨域资源共享深度详解
网络·网络协议·http
liulilittle10 小时前
过冲:拥塞控制的呼吸与盲行
linux·网络·c++·tcp/ip·计算机网络·tcp·通信
兮动人10 小时前
服务器流量监控与性能优化实战
服务器·网络·性能优化·服务器流量监控与性能优化实战