百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

linux系统防火墙高级配置-Day2:高级规则配置

nanshan 2025-03-19 14:56 7 浏览 0 评论

1. 连接跟踪(Connection Tracking)

原理与用途

  • 功能:跟踪网络连接状态(如TCP握手、UDP会话、ICMP请求)。
  • 状态类型
  • NEW:新发起的连接请求。
  • ESTABLISHED:已建立的连接(双向通信)。
  • RELATED:与现有连接相关的子连接(如FTP数据通道)。
  • INVALID:非法或异常数据包。

实战规则

# 允许已建立和相关的连接(必加)
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# 拒绝无效状态的数据包
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP

# 查看当前连接跟踪表
conntrack -L

优化建议

  • ESTABLISHED规则放在INPUT链的最前面,减少后续规则匹配次数。

2. 限速与防暴力破解

场景示例:保护SSH端口

# 创建名为SSH的链(模块化规则)
iptables -N SSH_PROTECT

# 将SSH流量导向自定义链
iptables -A INPUT -p tcp --dport 22 -j SSH_PROTECT

# 规则1:记录新连接并添加到"ssh_attempts"列表
iptables -A SSH_PROTECT -m recent --name ssh_attempts --set

# 规则2:60秒内超过3次新连接则拒绝并记录
iptables -A SSH_PROTECT -m recent --name ssh_attempts --rcheck --seconds 60 --hitcount 3 -j LOG --log-prefix "SSH_BRUTE_FORCE: "
iptables -A SSH_PROTECT -m recent --name ssh_attempts --rcheck --seconds 60 --hitcount 3 -j DROP

# 规则3:允许合法连接
iptables -A SSH_PROTECT -j ACCEPT

参数解析

  • --rcheck:检查IP是否在列表中。
  • --update:刷新时间窗口(适用于动态防御)。
  • --hitcount:触发阈值。

3. 高级日志记录

结构化日志配置

# 创建专用日志链
iptables -N LOGGING

# 限制日志频率(防止日志爆炸)
iptables -A LOGGING -m limit --limit 10/min -j LOG --log-prefix "FW_DENIED: " --log-level 4
iptables -A LOGGING -j DROP

# 将拒绝的HTTP流量导向日志链
iptables -A INPUT -p tcp --dport 80 -j LOGGING

# 查看日志(默认路径)
tail -f /var/log/messages      # CentOS/RHEL
tail -f /var/log/syslog        # Ubuntu/Debian

日志分析技巧

# 统计被拒绝的SSH连接来源IP
grep "FW_DENIED" /var/log/syslog | awk '{print $10}' | sort | uniq -c | sort -nr

4. 基于时间的规则控制

按时间段限制访问

# 仅允许工作时间(9:00-18:00)访问HTTP
iptables -A INPUT -p tcp --dport 80 -m time --timestart 09:00 --timestop 18:00 --weekdays Mon,Tue,Wed,Thu,Fri -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

# 允许周末全天访问MySQL
iptables -A INPUT -p tcp --dport 3306 -m time --weekdays Sat,Sun -j ACCEPT

参数说明

  • --timestart/--timestop:HH:MM格式时间。
  • --weekdays:Mon, Tue等缩写。
  • --monthdays:指定月份日期(如5-31)。

5. 规则优化技巧

提升性能的方法

  • 模块化规则集
# 创建子链分类管理
iptables -N WEB_RULES
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j WEB_RULES
  • IP集合优化
# 使用ipset管理大规模IP列表
ipset create blacklist hash:ip
ipset add blacklist 192.168.1.100
iptables -A INPUT -m set --match-set blacklist src -j DROP
  • 规则排序原则
  • 高频流量规则靠前简单匹配条件(如端口)优先复杂匹配(如字符串检测)

6. 实战任务

任务1:防御HTTP Flood攻击

  • 限制单个IP每秒最多10个新HTTP连接:
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10/sec -j DROP
  • 使用hashlimit模块更精准控制:
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-name http --hashlimit-mode srcip --hashlimit-above 50/minute -j DROP

任务2:记录可疑DNS请求

  • 记录所有向非标准端口(非53)的UDP DNS请求:
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m string --hex-string "|0000ff0001|" --algo bm -j LOG --log-prefix "DNS_EXFILTRATION: "

7. 注意事项

  • 测试规则顺序
# 临时插入规则到指定位置
iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT
  • 避免规则冲突
  • 使用iptables -L -n --line-numbers查看规则顺序。
  • 持久化配置
# CentOS/RHEL
service iptables save
# Ubuntu/Debian
apt install iptables-persistent && netfilter-persistent save

相关推荐

小白初学linux之无法修改系统分辨率

/*此文是做为自己的一个总结还有就是最好也可以给大家提供一些帮助。*/时间:2020年7月14日11:28:41我安装的是Ubuntu20.04LTS,昨天处理的是,grub的引导问题,因为是...

Ubuntu 如何启动、停止或重启服务

在本文中,我们向您介绍在Ubuntu中启动、停止和重启服务的方法。列出Ubuntu中的所有服务在开始之前,先获取计算机上所有服务的列表,因为我们需要知道服务名称来管理服务。service--...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

Linux安装中文输入法-Google拼音输入法,搜狗输入法

主要步骤,选择适合自己的尝试:1)卸载之前没装好的搜狗输入法。@:~/Downloads$sudoapt-getremovefcitx*删除依赖库@:~/Downloads$sudoap...

Ubuntu 22.04 请谨慎使用搜狗输入法,可能是你当机原因

在Ubunutu下没有什么有名的输入法,也就听说搜狗输入法有Linux版本,所以特意到官网去找了下载。在Ubuntu新版本里,他仍然用的是fcitx框架的输入引擎,而不是默认的ibus,所以要先把i...

前钢后胶!徐工XMR403VT小型压路机有点意思

【第一工程机械网原创】在越来越注重施工品质,对项目管理越来越精细化的今天,施工方在施工设备选择上,也越来越讲究设备的配套分工,因此小型压路机的应用场景也越来越多。徐工XMR403VT小型压路机高度集...

图大明白 | 404错误为什么是Not Found?为什么是404?

“404错误”大家都不陌生吧?常规来讲它长这样或者长这样艺术一点的长这样404NotFound意思就是所请求的页面不存在或者已被删除被称为“互联网最后一个界面”有很多同学发出疑问:为什么是404?...

Nginx负载均衡安全配置说明2(nginx负载均衡部署)

上一节,我们对Nginx安全配置的几个知识点做了一个说明,例如限制IP访问、文件目录禁止访问限制、需要防止DOS攻击、请求方法的限制和限制文件上传的大小这个进行了一个分析说明,详细的文章请关注我的头条...

惊艳写真系列第403期,本期主人公—叶青

惊艳写真系列第403期,本期主人公—叶青制作不易,欢迎各位看官提供宝贵意见。如果您喜欢记得关注,么么哒。您的每一份点赞和关注都是对作者的最大认可(图片素材均来源于网络,如有侵权联系删除。)本篇是写惊艳...

先秦布币之尖足布、圆足布、方足布,今年圆足最高拍卖价16万一枚

在战国魏、韩地区诞生桥足平首布、锐角平首布之后,赵也诞生了尖足平首布,并且在尖足布的基础上,后来相继派生出了圆足布、三孔布,以及类圆足布和类方足布。一尖足布尖足布是从耸肩尖足空首布演变而来的,是黄河...

403 禁止访问错误的全面排查与解决方案

当遇到403Forbidden错误时,意味着服务器已接收并理解请求,但拒绝执行访问操作。以下从用户端、服务器端等多个维度,提供分步排查与解决方法。一、用户端基础排查1.检查URL准确性确认...

这才是2019年夏最高颜值的泳装(2019夏季泳装秀)

最近的天气是越来越热了,又到了暑期泳衣勇闯海滩的时刻了,打开ins,微博满满地都是各大博主晒的泳装照,明星们也纷纷跑到海边去度假了。虽然我们没有超模般地身材,但是到了海边我们也要成为人群中最亮眼的那颗...

朋友圈爆火!这组《衡中班主任的一天》漫画,感动了无数人!

很多人觉得做老师很轻松他们说有些老师一天一节课就下班了有双休,还有寒暑假,真让人羡慕呀······但事实真是这样吗?最近衡水中学的赵心扬同学画了一组漫画形象地还原了衡中班主任一天的生活那么衡中班主任一...

国家安全教育 | 一组漫画,带你走进国家安全!

当前,我国面临哪些安全威胁?下面带你来看一组漫画!①你要配合,注意保密。我绝不对别人讲。②这件事,千万别对别人讲。③咱单位的…喂!老k!你要当心,有风声了!④你的泄密行为已触犯了国家法律!①请你协助了...

400、403、404、405,访问网页时出现这些代码是什么意思?

今天小泽访问一个页面时,出现了403,很抱歉,您的访问请求被禁止的提示。相信经常用电脑访问网页的朋友都遇到过这种情况,有的网页提示错误代码403,有的提示404,那这些代码都代表了什么呢?有什么含义呢...

取消回复欢迎 发表评论: