石滔源 發表於 2025-6-17 09:01:56

CentOS服务器安全配置最全攻略分享

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">引言</a></li><li><a href="#_label1">观点:一台未加固的服务器就是一台裸奔的服务器</a></li><li><a href="#_label2">禁用root以外的超级用户</a></li><li><a href="#_label3">删除不必要的账号</a></li><li><a href="#_label4">阻止ping, 抵御SYN&nbsp;</a></li><li><a href="#_label5">观点与案例结合</a></li><li><a href="#_label6">工具推荐:</a></li><li><a href="#_label7">总结与升华</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>引言</h2>
<p>在2025年的数字时代,服务器是企业和个人数据的核心堡垒,而CentOS作为Linux服务器的&ldquo;常青树&rdquo;,以其稳定性和开源特性广受青睐。然而,开放性也让它成为黑客觊觎的目标。一次未受保护的服务器漏洞,可能导致数据泄露、业务中断甚至巨额损失!如何将你的CentOS服务器打造成一座&ldquo;数字堡垒&rdquo;?今天,我们为你献上一份最全面的CentOS服务器安全配置攻略,从基础到高级,15个实战步骤助你轻松应对威胁!无论你是运维新手还是老兵,这份攻略都将让你如虎添翼!</p>
<p>你是否也有这样的焦虑:服务器一上线就担心被黑?系统刚部署完就被扫描端口、爆破密码?特别是使用 CentOS 的你,面对五花八门的安全建议无从下手?</p>
<p>CentOS服务器安全配置到底有多重要?哪些关键步骤能有效抵御黑客攻击?如何通过简单配置保护数据和业务?防火墙、用户权限、系统优化如何协同工作?为什么CentOS在2025年仍是服务器安全领域的热门选择?通过这篇文章,我们将带你深入探索这些问题,揭开CentOS服务器安全配置的奥秘!</p>
<p class="maodian"><a name="_label1"></a></p><h2>观点:一台未加固的服务器就是一台裸奔的服务器</h2>
<p>来看一个真实案例:某公司新部署的 CentOS 云主机,开放了22端口,没有限制 SSH 登录,仅几分钟就被扫描脚本入侵,自动植入挖矿程序,服务器 CPU 瞬间飙升到100%。</p>
<p><strong>你需要这样配置:</strong></p>
<ul><li>最小化安装组件:不要装你用不到的服务。</li><li>防火墙配置:使用 firewalld 或 iptables 仅允许必要端口。</li><li>SSH 加固:修改默认端口、关闭 root 远程登录、使用密钥认证。</li><li>SELinux 策略优化:保持开启状态并合理配置策略。</li><li>Fail2ban 配置:自动阻止爆破尝试。</li><li>日志监控工具:推荐使用 logwatch 或 auditd。</li><li>定期更新系统补丁:配合 yum-cron 自动更新安全补丁。</li></ul>
<p class="maodian"><a name="_label2"></a></p><h2>禁用root以外的超级用户</h2>
<p>&nbsp;1 . 检测方法:</p>
<p>cat /etc/passwd 查看口令文件,文件格式如下:</p>
<div class="jb51code"><pre class="brush:bash;">login_name:password:user_ID:group_ID:comment:home_dir:command</pre></div>
<p>若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0</p>
<p>2 . 检测命令:</p>
<div class="jb51code"><pre class="brush:bash;">cat /etc/passwd | awk -F ':''{print$1,$3}' | grep ' 0$'</pre></div>
<p>3 . 备份方法:</p>
<div class="jb51code"><pre class="brush:bash;">cp -p /etc/passwd /etc/passwd_bak</pre></div>
<p>4 . 加固方法:</p>
<div class="jb51code"><pre class="brush:bash;">使用命令passwd -l &lt;用户名&gt;锁定不必要的超级账户
使用命令passwd -u &lt;用户名&gt;解锁需要恢复的超级账户
或把用户shell改为/sbin/nologin</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>删除不必要的账号</h2>
<p>1 . 应 该删除所有默认的被 操作系统本身启动的并且不必要的账号, L i n u x 提供了很多默认账号, 而<br />账 号越多, 系统就越容易受到攻击。</p>
<p>2 . 可删除的用户, 如adm,lp,sync,shutdown,halt,mail,operator,games,ftp等</p>
<p>3 . 可删除的组, 如adm,lp,games,mail等</p>
<p>4 . 删除命令</p>
<div class="jb51code"><pre class="brush:bash;">userdelusername
groupdelgroupname</pre></div>
<p class="maodian"><a name="_label4"></a></p><h2>阻止ping, 抵御SYN&nbsp;</h2>
<p>如果没人能p i n g 通系统, 安全性自然增加了, 为此, 我们可以在/ e t c / r c . d / r c . l o c a l 文件中增加如下一行:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202506/202561785931141.jpg" /></p>
<div class="jb51code"><pre class="brush:plain;">S Y N 攻击是利用T C P / I P 协议3 次握手的原理, 发送大量的建立连接的网络包, 但不实
际 建立连接, 最终导致被攻击服务器的网络队列被占满, 无法被正常用户访问。
L i n u x 内核提供了若干S Y N 相关的配置, 用命令:</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202506/202561785931142.jpg" /></p>
<ul><li>tcp_max_syn_backlog:这是 SYN 队列的长度,决定了系统能够处理的等待连接的最大网络连接数。</li><li>tcp_syncookies:这是一个开关,决定是否启用 SYN Cookie 功能。该功能可以防止部分 SYN 攻击。</li><li>tcp_synack_retries 和 tcp_syn_retries:定义了 SYN 报文的重试次数。</li></ul>
<p>通过调整这些参数,可以优化系统的网络性能:</p>
<ul><li>增加 SYN 队列长度(tcp_max_syn_backlog)可以容纳更多等待连接的请求,适用于高并发场景。</li><li>启用 SYN Cookie 功能(tcp_syncookies)可以有效防止部分类型的 SYN 攻击。</li><li>降低 SYN 重试次数(tcp_syn_retries、tcp_synack_retries)也能够在一定程度上减少网络攻击的影响。</li></ul>
<p>调整上述设置的方法是:</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202506/202561785931143.jpg" /></p>
<div class="jb51code"><pre class="brush:bash;">sysctl -w net.ipv4.tcp_max_syn_backlog=2048    # 增加 SYN 队列长度到 2048

sysctl -w net.ipv4.tcp_syncookies=1            # 打开 SYN COOKIE 功能

sysctl -w net.ipv4.tcp_synack_retries=3      # 降低 SYN-ACK 重试次数

sysctl -w net.ipv4.tcp_syn_retries=3         # 降低 SYN 重试次数</pre></div>
<p class="maodian"><a name="_label5"></a></p><h2>观点与案例结合</h2>
<p><strong>观点</strong>:CentOS服务器安全配置的核心在于关闭不必要服务、限制用户权限、加强文件保护和优化系统参数。这些措施能显著降低攻击风险,同时保持服务器性能。以下15个步骤经过实战验证,覆盖从基础到高级的配置需求。</p>
<p><strong>关键配置步骤与案例</strong>:</p>
<table><tbody><tr><th><strong>步骤</strong></th><th><strong>描述</strong></th><th><strong>命令</strong></th><th><strong>案例</strong></th></tr><tr><td>1. 注释不必要用户和组</td><td>禁用系统默认的非必要用户和组,减少潜在攻击入口。</td><td>cp /etc/passwd /etc/passwdbak<br />cp /etc/group /etc/groupbak<br />vi /etc/passwd(注释如#adm:x:3:4:adm:/var/adm:/sbin/nologin)</td><td>某企业因未禁用默认用户被黑客利用,数据泄露。实施后风险降低。</td></tr><tr><td>2. 关闭不必要服务</td><td>禁用如acpid、bluetooth、cups等服务,减少攻击面。</td><td>service acpid stop<br />chkconfig acpid off</td><td>一家电商平台关闭多余服务,抵御DDoS攻击,性能提升20%。</td></tr><tr><td>3. 禁止非root用户执行系统命令</td><td>限制非root用户访问系统命令,防止权限滥用。</td><td>chmod -R 700 /etc/rc.d/init.d/*<br />恢复:chmod -R 777 /etc/rc.d/init.d/*</td><td>某团队防止了非授权用户篡改系统文件,保护代码仓库。</td></tr><tr><td>4. 为关键文件添加不可变属性</td><td>锁定核心文件,防止篡改。</td><td>chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services<br />解锁:chattr -i</td><td>某金融机构保护密码文件,避免了篡改风险。</td></tr><tr><td>5. 限制文件权限</td><td>限制命令和历史记录权限,防止信息泄露。</td><td>chmod 700 /usr/bin/vim<br />恢复:chmod 755 /usr/bin/vim<br />chattr +a .bash_history<br />chattr +i .bash_history</td><td>某团队通过限制权限,防范了历史命令泄露。</td></tr><tr><td>6. 禁用Ctrl+Alt+Del重启</td><td>防止误操作或恶意重启。</td><td>cp /etc/inittab /etc/inittabbak<br />vi /etc/inittab(注释#ca::ctrlaltdel:/sbin/shutdown -t3 -r now)</td><td>某服务器避免了误操作导致的业务中断。</td></tr><tr><td>7. 更新系统但不升级内核</td><td>修复漏洞,保持内核稳定性。</td><td>编辑yum.conf:添加exclude=kernel*<br />或yum --exclude=kernel* update</td><td>某企业避免了内核升级带来的兼容性问题。</td></tr><tr><td>8. 禁用自动更新</td><td>防止意外更新导致宕机。</td><td>chkconfig --list yum-updatesd<br />service yum-updatesd stop<br />chkconfig yum-updatesd off</td><td>某团队避免了更新过程中的宕机风险。</td></tr><tr><td>9. 关闭多余虚拟控制台</td><td>减少远程登录风险。</td><td>cp /etc/inittab /etc/inittabbak<br />vi /etc/inittab(注释如#2:2345:respawn:/sbin/mingetty tty2)</td><td>某运维人员减少了远程登录风险。</td></tr><tr><td>10. 删除MySQL历史记录</td><td>清除敏感操作记录。</td><td>cp .bash_history .bash_historybak<br />cp .mysql_history .mysql_historybak<br />rm .bash_history .mysql_history<br />ln -s /dev/null .bash_history</td><td>某管理员清除了敏感记录,提升数据安全。</td></tr><tr><td>11. 修改历史命令记录</td><td>限制历史记录长度,减少泄露风险。</td><td>cp /etc/profile /etc/profilebak<br />vi /etc/profile(将HISTSIZE=1000改为HISTSIZE=50)</td><td>某团队减少了敏感信息泄露风险。</td></tr><tr><td>12. 隐藏系统信息</td><td>防止黑客探测系统版本。</td><td>mv /etc/issue /etc/issuebak<br />mv /etc/issue.net /etc/issue.netbak</td><td>某服务器避免了黑客探测攻击。</td></tr><tr><td>13. 优化内核参数</td><td>提升网络和系统性能。</td><td>cp /etc/sysctl.conf /etc/sysctl.confbak<br />vi /etc/sysctl.conf(添加如net.ipv4.ip_forward = 1、net.core.somaxconn = 262144)<br />/sbin/sysctl -p</td><td>某高流量网站解决了连接超限问题。</td></tr><tr><td>14. 系统优化</td><td>设置资源限制,提升稳定性。</td><td>cp /etc/profile /etc/profilebak2<br />vi /etc/profile(添加ulimit -c unlimited、-s unlimited、-SHn 65535、-S -c 0、export LC_ALL=C)<br />source /etc/profile</td><td>某团队提升了服务器响应速度。</td></tr><tr><td>15. 禁用服务器ping</td><td>防止黑客探测。</td><td>cp /etc/rc.d/rc.local /etc/rc.d/rc.localbak<br />vi /etc/rc.d/rc.local(添加echo 1 &gt; /proc/sys/net/ipv4/icmp_echo_ignore_all)</td><td>某企业防范了探测攻击。</td></tr></tbody></table>
<p>这些步骤通过实战案例验证,确保了CentOS服务器在面对威胁时的坚韧性。</p>
<p class="maodian"><a name="_label6"></a></p><h2>工具推荐:</h2>
<ul><li><strong>Lynis</strong>:Linux 安全自动评估工具</li><li><strong>Fail2ban</strong>:暴力 破解防护神器</li><li><strong>rkhunter / chkrootkit</strong>:查木马好帮手</li><li><strong>Auditd</strong>:关键行为监控利器</li></ul>
<p class="maodian"><a name="_label7"></a></p><h2>总结与升华</h2>
<p>CentOS服务器安全配置是一项系统工程,涵盖用户权限、服务管理、文件保护和系统优化。通过本文的15个步骤,你可以从基础到高级,全面提升服务器安全性。这些措施不仅能抵御黑客攻击,还能为你的业务提供稳定保障。在2025年的网络安全环境中,持续更新和优化配置是守护数字资产的关键。让我们从现在开始,打造一座坚不可摧的CentOS服务器!</p>
<p>以上就是CentOS服务器安全配置最全攻略分享的详细内容,更多关于CentOS服务器安全配置的资料请关注琼殿技术社区其它相关文章!</p>
頁: [1]
查看完整版本: CentOS服务器安全配置最全攻略分享