你有没有过这种经历?花了大价钱给家里装了指纹锁、防盗门、监控摄像头,结果某天发现——卧室窗户压根没关。
企业级系统安全加固,干的其实就是“关窗户”这件事。
干运维快一年了,要说听得最多的,就是客户和公司挂在嘴边的‘安全问题’。说实话,安全这块我现在还在摸索,不算什么老手。但它的重要性,我是刻在骨子里的——这玩意儿不出事则已,一出事就是致命的。运维说白了就两件事:系统要稳,系统要安全。如果服务器被黑客干趴下了,业务全瘫,第一个被找的,那肯定是我,这压力,是真真切切的。
今天,我们就来聊聊,如何给你的 Linux 服务器,打一个“铜墙铁壁”般的地基,当然了这只是最基本的一个加固,还有更深层次的,后续再分享。
cat >> /root/.bashrc << 'EOF'# 自定义彩色提示符set_prompt() { local EXIT_STATUS="$?" local STATUS_SYMBOL# 根据上条命令状态设置符号和颜色if [ $EXIT_STATUS-eq0 ]; thenSTATUS_SYMBOL='\[\e[1;32m\]✓'# 绿色对号elseSTATUS_SYMBOL='\[\e[1;31m\]✗'# 红色错号fi# 设置黄色提示符(用户名/主机名/时间/目录)PS1="${STATUS_SYMBOL} \[\e[1;33m\][\u@\h \t] \w\\$ \[\e[0m\]"}# 每次生成提示符前执行函数PROMPT_COMMAND=set_promptEOF
配置后效果展示

#修改文件 vim /etc/motd******************************************************************** WARNING - AUTHORIZED USE ONLYThis system is the property of [公司名称]. Access is restricted to authorized personnel only.All activities performed on this system are logged and monitored. Unauthorized access or misuse is prohibited and may result incriminal prosecution under applicable laws.By continuing to use this system, you consent to monitoring.********************************************************************[系统维护通知]Next scheduled maintenance: May 15, 202602:00-04:00[紧急公告]Please report any security incidents to: security@company.com
yum install -yvimcurlwget net-tools lrzsz tree git htop iostat iftop unzip# 设置主机名hostnamectl set-hostname web-prod-01# 设置时区为上海timedatectl set-timezone Asia/Shanghaitimedatectl set-ntp true# 安装并启动时间同步服务yum install -y chronysystemctl enable --now chronyd
#关闭防火墙自启动,且立马关闭防火墙systemctl disable firewalld --now#关闭selinuxsed-i's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config#此时系统没有防火墙策略,可自行安装iptables或其他,我本次选择iptablesyum install -y iptables yum install -y iptables-services#开启iptablessystesmctl enable iptables --now#持久化配置文件地址/etc/sysconfig/iptables
注意⚠️:iptables开启后,后续安装的服务都要做端口放行,否则无法使用,且要加入到持久化文件,否则重启系统规则失效无法使用
SSH 服务是企业级 Linux 服务器的“大门”,也是黑客扫描和暴力破解的首要目标。根据安全统计,绝大多数服务器入侵都源于 SSH 配置不当或弱口令。
注意⚠️:
首先需要做文件备份,防止无退路
修改的正确文件名应该为 sshd_config 文件,容易混淆点为修改的是 ssh_config
生产环境修改端口时应该额外添加,测试新端口正常之后再关闭旧端口,防止服务器失联
修改完成后记得防火墙放行ssh端口
修改ssh配置文件
vim /etc/ssh/sshd_config禁止 root 直接登录:这是最基本的安全措施,强制使用普通用户登录后再通过 sudo提权。
PermitRootLogin no限制登录用户/用户组:仅允许特定的运维账号或用户组登录,遵循最小权限原则。
AllowUsers user1 user2AllowGroups group
限制登录尝试次数:将最大认证尝试次数设置为 3 次,降低暴力破解效率。
MaxAuthTries 3禁止空密码:防止配置错误导致的匿名访问风险。
PermitEmptyPasswords no设置空闲超时:300秒无操作自动断开,降低被中途劫持的风险。
ClientAliveInterval 300ClientAliveCountMax 0
修改默认端口:将 SSH 端口从 22 修改为非标准端口(如 2026),可以有效减少全网扫描和自动化攻击。
Port 2026密码策略加固文件在 /etc/pam.d/system-auth
通过PAM模块控制,防止弱口令和暴力破解
password requisite pam_pwquality.so try_first_pass local_users_only retry=3authtok_type=minlen=8minclass=3添加登录失败锁定策略(连续5次失败锁定300秒)
auth required pam_faillock.so preauth audit silent deny=5 unlock_time=300密码时效性策略 /etc/login.defs
# 密码最长使用90天PASS_MAX_DAYS 90 # 修改密码最短间隔PASS_MIN_DAYS 7PASS_WARN_AGE 7
#列出所有已开启的服务项systemctl list-unit-files --type=service |grep enabled#关闭无用服务 systemctl disable 服务名称 --now
以下配置是企业级 Linux 服务器安全加固的“黄金标准”,主要涉及网络协议栈优化和内存安全机制。
它们的核心目的是:在不影响正常业务的前提下,最大限度地减少攻击面,防御常见的网络层攻击。
创建独立的安全配置文件,优化网络栈以抵御攻击并提升性能。
vim /etc/sysctl.d/99-security.conf# 禁止 ICMP 广播回应 (防 Ping 扫描)net.ipv4.icmp_echo_ignore_broadcasts =1# 开启 SYN Cookie (防 SYN 洪水攻击)net.ipv4.tcp_syncookies =1# 忽略所有 ICMP 重定向 (防路由欺骗)net.ipv4.conf.all.accept_redirects =0net.ipv4.conf.default.accept_redirects =0# 开启地址空间布局随机化 (ASLR)kernel.randomize_va_space =2
文件句柄数优化是企业级 Linux 服务器应对高并发场景的核心优化之一。
简单来说,“一切皆文件” 是 Linux 的设计哲学。在 Linux 眼中,普通文件、目录、网络套接字(Socket)、管道、甚至硬件设备都是“文件”。每一个打开的文件都需要一个数字标识,这就是文件句柄。
如果句柄数不够,服务器就会报错 Too many open files,导致服务无法建立新连接(比如 Nginx 无法处理新请求,数据库无法写入日志),甚至直接崩溃。
vim /etc/security/limits.conf#追加以下内容* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535
篇幅所限,本文聚焦于系统层面的基本加固与初始化。这是所有安全工作的基石,也是后续优化的前置条件。至于中间件安全、三方组件加固等内容,我们将在后续专题中详细拆解,敬请期待。
#生成指定大小的文件dd if=/dev/zero of=f.img bs=100M count=1