news 2026/5/1 19:23:25

Linux服务器安全加固实战:用iptables和hosts.deny打造只允许特定IP访问的渗透测试环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux服务器安全加固实战:用iptables和hosts.deny打造只允许特定IP访问的渗透测试环境

Linux服务器安全加固实战:iptables与hosts.deny构建白名单环境

在渗透测试和安全研究中,一个高度隔离的测试环境至关重要。想象一下这样的场景:你需要一台外网可见但端口全封闭的Linux服务器,仅允许特定IP通过SSH连接,同时确保Ping请求正常响应——这正是红蓝对抗演练中的理想靶机配置。本文将手把手带你实现这一目标,通过iptables与hosts.deny的双重防护机制,打造坚如磐石的网络边界。

1. 环境准备与基础防护

开始前,请确保你已通过控制台或物理方式直接访问服务器。永远不要通过远程连接进行初始配置——这是无数工程师用血泪换来的教训。我曾在一次客户现场部署时,因疏忽这个原则导致服务器"自闭",不得不驱车两小时去数据中心手动修复。

1.1 初始安全检查

首先运行以下命令确认当前网络状态:

# 查看现有防火墙规则 iptables -L -n -v # 检查当前连接 ss -tulnp # 验证ICMP响应 ping -c 4 8.8.8.8

1.2 备份关键配置

创建安全快照是避免灾难的关键:

# iptables规则备份 iptables-save > /root/iptables.backup # 网络配置备份 cp /etc/hosts.{allow,deny} /root/ # 内核参数备份 sysctl -a > /root/sysctl.conf.backup

2. iptables精细化控制

iptables作为Linux内核的防火墙,提供了数据包过滤的终极控制。我们将采用"默认拒绝,例外允许"的白名单模式。

2.1 基础规则设置

先设置默认策略(务必在本地终端操作):

# 设置默认策略为DROP iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # 允许出站连接 # 允许回环接口 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # 允许已建立的连接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

2.2 ICMP(Ping)控制

渗透测试中Ping扫描很常见,我们需要精细控制:

# 允许入站Ping请求 iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT # 允许出站Ping响应 iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT # 限制Ping频率(防洪水攻击) iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 1/s --limit-burst 3 -j ACCEPT

2.3 SSH访问控制

只允许特定IP访问22端口:

# 替换为你的可信IP TRUSTED_IP="203.0.113.42" iptables -A INPUT -p tcp --dport 22 -s $TRUSTED_IP -j ACCEPT

关键技巧:使用ipset管理大量IP:

# 创建ipset集合 ipset create allow_ssh hash:ip ipset add allow_ssh $TRUSTED_IP # 引用ipset iptables -A INPUT -p tcp --dport 22 -m set --match-set allow_ssh src -j ACCEPT

3. hosts.deny双重防护

TCP Wrappers提供了另一层防护,与iptables形成纵深防御。

3.1 配置hosts.allow

首先放行可信IP:

echo "sshd: $TRUSTED_IP" >> /etc/hosts.allow # 支持CIDR表示法 echo "sshd: 192.168.1.0/24" >> /etc/hosts.allow

3.2 全局拒绝策略

在hosts.deny中设置默认拒绝:

echo "sshd: ALL" >> /etc/hosts.deny

注意:修改后立即生效,无需重启服务。建议先开两个终端,一个测试连接,另一个进行配置。

4. 持久化与自动化

临时规则重启会丢失,我们需要确保配置持久有效。

4.1 规则持久化

对于iptables:

# CentOS/RHEL iptables-save > /etc/sysconfig/iptables # Debian/Ubuntu apt install iptables-persistent netfilter-persistent save

对于TCP Wrappers,配置已写入文件,无需额外操作。

4.2 异常检测脚本

创建自动封禁脚本/usr/local/bin/block_brute.sh

#!/bin/bash LOG_FILE="/var/log/auth.log" BLOCKED_IPS="/root/blocked.ips" # 分析失败登录 grep "Failed password" $LOG_FILE | awk '{print $11}' | sort | uniq -c | while read count ip; do if [ $count -gt 3 ]; then if ! grep -q $ip $BLOCKED_IPS; then echo "$(date) Blocking $ip after $count attempts" >> $BLOCKED_IPS iptables -A INPUT -s $ip -j DROP ipset add block_list $ip fi fi done

设置定时任务:

(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/block_brute.sh") | crontab -

5. 验证与排错

配置完成后必须全面验证,我常用以下检查清单:

测试项目预期结果验证命令
可信IP SSH连接成功连接ssh user@server -p 22
非可信IP SSH连接连接被拒绝ssh other@server -p 22
外部Ping测试收到回复ping server_ip
非22端口扫描端口不可达telnet server_ip 80
本地出站Ping能ping通外部地址ping 8.8.8.8

如果遇到问题,按以下流程排查:

  1. 检查iptables规则顺序:iptables -L -n --line-numbers
  2. 验证TCP Wrappers配置:tcpdchk -v
  3. 查看内核参数:sysctl net.ipv4.icmp_echo_ignore_all
  4. 检查系统日志:journalctl -xetail -f /var/log/auth.log

记得在每次重大修改前,先执行at now + 10 minutes设置回滚计划,防止配置错误导致锁定:

echo "iptables-restore < /root/iptables.backup" | at now + 10 minutes
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 19:19:35

终极免费方案:5分钟解锁Cursor Pro所有功能

终极免费方案&#xff1a;5分钟解锁Cursor Pro所有功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your trial request…

作者头像 李华
网站建设 2026/5/1 19:11:01

Linux的入门级常用操作命令

Linux 常用命令手册 指南更适合现代Linux发行版&#xff08;如 CentOS 7/Ubuntu 18.04&#xff09; 1. 基本导航与查看命令说明备注pwd打印当前工作目录的完整路径。ls列出当前目录的内容。ls -lrt以长列表格式列出&#xff0c;按修改时间反向排序&#xff08;最新在最下&#…

作者头像 李华
网站建设 2026/5/1 19:10:05

多模态过程奖励模型(PRM)技术解析与应用实践

1. 多模态过程奖励模型的技术演进在人工智能领域&#xff0c;过程奖励模型(Process Reward Models, PRMs)正逐渐成为优化多模态推理任务的关键技术。与仅评估最终结果的传统结果奖励模型(Outcome Reward Models, ORMs)不同&#xff0c;PRMs通过精细评估推理过程中的每一步骤&am…

作者头像 李华
网站建设 2026/5/1 19:09:43

SwiftUI集成ChatGPTUI:快速构建iOS/macOS/visionOS AI对话界面

1. 项目概述与核心价值如果你正在为你的 iOS、macOS 或 visionOS 应用寻找一个开箱即用、设计优雅且功能完整的 ChatGPT 对话界面&#xff0c;那么alfianlosari/ChatGPTUI这个 Swift Package 绝对值得你花时间研究。作为一个在 SwiftUI 和 AI 集成领域摸爬滚打多年的开发者&…

作者头像 李华