Linux系统添加IP白名单的流程步骤

 更新时间:2026年01月21日 08:54:12   作者:小满大王i  
这篇文章主要介绍了如何在不同Linux系统上配置IP白名单以增强服务器安全,包括使用ufw和iptables两种方法,并强调了配置的注意事项,需要的朋友可以参考下

第一步:确认系统版本和默认防火墙

先执行以下命令查看系统类型,确定该用哪种防火墙工具:

# 查看系统版本
cat /etc/os-release
# 查看是否安装 ufw(Debian/Ubuntu 标配)
ufw status

第二步:不同系统的 IP 白名单配置方案

方案 1:Debian/Ubuntu 系统(使用 ufw 配置)

仅允许你的 IP(如 123.123.123.123)访问 SSH 22 端口为例:

# 1. 先启用 ufw(首次启用会拒绝所有入站,先配置规则再启用更安全)
ufw enable

# 2. 拒绝所有默认入站流量(强化安全)
ufw default deny incoming
ufw default allow outgoing

# 3. 添加 IP 白名单,允许指定 IP 访问 22 端口
ufw allow from 123.123.123.123/32 to any port 22 proto tcp

# 4. (可选)若需开放 80/443 端口给指定 IP
ufw allow from 123.123.123.123/32 to any port 80 proto tcp
ufw allow from 123.123.123.123/32 to any port 443 proto tcp

# 5. 查看规则是否生效
ufw status verbose

方案 2:所有 Linux 通用(使用 iptables 配置)

如果你的系统既没有 firewalld 也没有 ufw,可以直接用 iptables(所有 Linux 都预装)配置:

# 1. 先清空现有规则(避免冲突)
iptables -F

# 2. 设置默认策略:拒绝所有入站,允许出站
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# 3. 允许本地回环接口(必加,否则系统内部通信异常)
iptables -A INPUT -i lo -j ACCEPT

# 4. 允许已建立的连接(如服务器主动发起的请求回应)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 5. 添加 IP 白名单,允许 123.123.123.123 访问 22 端口
iptables -A INPUT -s 123.123.123.123/32 -p tcp --dport 22 -j ACCEPT

# 6. (可选)保存规则(重启服务器不丢失)
# Debian/Ubuntu
iptables-save > /etc/iptables/rules.v4
# CentOS/RHEL
iptables-save > /etc/sysconfig/iptables

# 7. 查看规则
iptables -L -n

第三步:验证配置是否生效

# ufw 验证
ufw status

# iptables 验证
iptables -L INPUT -n --line-numbers

注意事项(避免配置后无法登录)

  1. 操作前务必确认本地公网 IP 正确:如果配置后无法 SSH 登录,可通过云服务商控制台的「VNC 登录」进入服务器修改规则。
  2. 不要直接远程清空所有规则:先添加白名单,再设置默认拒绝,避免锁死自己。
  3. iptables 规则默认重启失效:需安装 iptables-persistent 保存规则(Debian/Ubuntu):
apt install iptables-persistent -y

总结

  1. firewalld 未找到是因为系统版本适配问题:Debian/Ubuntu 用 ufw,所有系统通用 iptables
  2. 配置核心逻辑是「先允许指定 IP+端口,再拒绝所有未授权流量」,遵循最小权限原则。
  3. 云安全组 + 系统防火墙双重配置,能最大程度保障服务器端口访问安全。

到此这篇关于Linux系统添加IP白名单的流程步骤的文章就介绍到这了,更多相关Linux添加IP白名单内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 致命的7个Linux命令

    致命的7个Linux命令

    如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在系统中运行它们
    2014-03-03
  • 在Linux中部署kettle增量调度方式

    在Linux中部署kettle增量调度方式

    文章介绍了在Linux上部署Kettle进行增量调度的步骤,包括上传文件、检查JDK、上传工程、编写调度脚本、赋予权限以及设置定时任务
    2025-11-11
  • CentOS下安装python3.5+scrapy的方法步骤

    CentOS下安装python3.5+scrapy的方法步骤

    本篇文章主要介绍了CentOS下安装python3.5+scrapy的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • linux内核copy_{to, from}_user()的思考

    linux内核copy_{to, from}_user()的思考

    本文即将介绍copy_{to,from}_user()接口的使用应,它是kernel space和user space沟通的桥梁,接下来一起学习学习吧
    2021-08-08
  • p8net bet LINUX 云版本 1.b.1

    p8net bet LINUX 云版本 1.b.1

    这篇文章主要介绍了p8net bet LINUX 云版本 1.b.1,需要的朋友可以参考下
    2016-11-11
  • Linux系统文件的默认权限和特殊权限

    Linux系统文件的默认权限和特殊权限

    这篇文章主要介绍了Linux系统文件的默认权限和特殊权限的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Linux网络--传输层--TCP协议基础详解

    Linux网络--传输层--TCP协议基础详解

    这篇文章主要介绍了Linux网络--传输层--TCP协议基础,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Linux执行可执行文件提示No such file or directory的解决方法

    Linux执行可执行文件提示No such file or directory的解决方法

    这篇文章主要介绍了Linux执行可执行文件提示No such file or directory的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 解决Linux下Mysql5.7忘记密码问题

    解决Linux下Mysql5.7忘记密码问题

    这篇文章主要介绍了解决Linux下Mysql5.7忘记密码问题,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 关于安装LNMP集成包后上传图片报500错误的解决方法

    关于安装LNMP集成包后上传图片报500错误的解决方法

    这篇文章主要给大家介绍了关于安装LNMP集成包后上传图片报500错误的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01

最新评论