CentOS 服务器安全配置指南
一、
CentOS是一种广泛使用的Linux发行版,因其稳定性和安全性而受到企业的青睐,默认安装的CentOS系统并不能保证绝对安全,因此需要进行一系列安全配置来增强其防护能力,本文将详细介绍如何通过修改SSH连接端口、禁止root账户直接登录、安装DenyHosts等措施来提高CentOS服务器的安全性。
二、修改SSH连接端口
1. 修改SSH配置文件
步骤:编辑/etc/ssh/sshd_config
文件。
操作:找到#Port 22
,将其修改为Port 53123
(或其他自定义端口)。
示例:
vi /etc/ssh/sshd_config
修改前的注释行 #Port 22 修改后的设置 Port 53123
注意事项:确保新的端口号在10000到65535之间,以避免与系统或其他应用冲突。
2. 重启SSH服务
步骤:保存配置文件后,重启SSH服务使更改生效。
操作:
systemctl restart sshd
验证:使用Putty等工具尝试通过新端口连接服务器,确保连接成功。
三、禁止Root账户直接登录
1. 创建普通用户并赋予sudo权限
步骤:创建一个新用户,如ecs-user
。
操作:
useradd ecs-user passwd ecs-user
赋予sudo权限:编辑/etc/sudoers
文件,添加以下内容:
ecs-user ALL=(ALL) NOPASSWD:ALL
注意:为了安全起见,建议限制sudo权限的使用范围。
2. 禁止Root远程登录
步骤:编辑/etc/ssh/sshd_config
文件。
操作:找到PermitRootLogin yes
并将其改为PermitRootLogin no
。
示例:
修改前 PermitRootLogin yes 修改后 PermitRootLogin no
重启SSH服务:
systemctl restart sshd
注意:禁用Root远程登录后,可以通过新创建的用户ecs-user
进行管理操作。
四、安装DenyHosts防止暴力破解
1. 安装DenyHosts
步骤:下载并解压DenyHosts源码包。
操作:
tar zxvf DenyHosts-2.6.tar.gz cd DenyHosts-2.6 python setup.py install
启动DenyHosts:将denyhosts的启动脚本链接到init.d目录下。
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts chkconfig denyhosts on service denyhosts start
配置:编辑/usr/share/denyhosts/denyhosts.cfg
文件,根据需要调整参数。
示例:
SECURE_LOG = /var/log/secure HOSTS_DENY = /etc/hosts.deny PURGE_DENY = 30m
说明:SECURE_LOG
指定了SSH日志文件的位置;HOSTS_DENY
用于存放被屏蔽的IP地址;PURGE_DENY
设置了清理已屏蔽IP的时间间隔。
2. 测试DenyHosts功能
模拟攻击:尝试多次错误的密码登录,观察是否触发DenyHosts的屏蔽机制。
查看日志:检查/var/log/secure
和/etc/hosts.deny
文件,确认攻击者的IP已被正确记录并屏蔽。
五、其他安全措施
1. 设置SSH空闲超时退出
步骤:编辑/etc/ssh/sshd_config
文件。
操作:添加以下两行:
ClientAliveInterval 600 ClientAliveCountMax 2
说明:上述设置表示如果客户端在10分钟内没有活动,则自动断开连接。
2. 设置密码修改策略
步骤:编辑/etc/login.defs
文件。
操作:设置密码最小使用天数、最大使用天数以及密码复杂度要求。
PASS_MIN_DAYS 7 PASS_MAX_DAYS 90 PASS_WARN_AGE 7
说明:上述设置确保用户至少每90天更换一次密码,并且新旧密码之间至少有7天的时间间隔。
3. 禁止空密码用户登录
步骤:编辑/etc/ssh/sshd_config
文件。
操作:设置PermitEmptyPasswords no
。
PermitEmptyPasswords no
说明:此设置确保所有用户必须有密码才能登录。
4. 限制密码重用次数
步骤:编辑/etc/pam.d/password-auth
和/etc/pam.d/system-auth
文件。
操作:添加remember=5
参数。
password sufficient pam_unix.so remember=5
说明:此设置强制用户至少使用5次不同的密码后才能重新使用某个旧密码。
5. 确保rsyslog服务已启用
步骤:启动并启用rsyslog服务。
操作:
systemctl enable rsyslog systemctl start rsyslog
说明:rsyslog服务用于收集并记录系统日志,有助于审计和故障排查。
6. 配置文件权限设置
步骤:设置关键配置文件的权限。
操作:
chown root:root /etc/hosts.allow /etc/hosts.deny /etc/ssh/sshd_config /etc/sudoers /etc/login.defs /etc/pam.d/* /etc/security/* /etc/services chmod 644 /etc/hosts.allow /etc/hosts.deny /etc/ssh/sshd_config /etc/sudoers /etc/login.defs /etc/pam.d/* /etc/security/* /etc/services chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services
说明:上述设置确保只有root用户才能修改这些关键配置文件,从而防止非授权用户获取权限。
7. 关闭不必要的服务和端口
步骤:列出当前运行的服务,并停用不必要的服务。
操作:使用systemctl stop
命令关闭服务,并使用firewall-cmd --permanent --remove-port=<端口>/tcp
命令移除防火墙规则中的端口。
示例:关闭telnet服务。
systemctl stop telnet firewall-cmd --permanent --remove-port=23/tcp firewall-cmd --reload
说明:定期审查运行的服务,确保只保留必要的服务。
8. 禁用Ctrl+Alt+Del快捷键重启服务器
步骤:编辑/etc/init/control-alt-delete.conf
文件。
操作:注释掉或删除以下行:
start on control-alt-delete exec /sbin/shutdown -r now
说明:此设置可以防止通过快捷键意外重启服务器。
9. 隐藏服务器系统信息
步骤:删除或重命名/etc/issue
和/etc/issue.net
文件。
操作:
mv /etc/issue /etc/issuebak mv /etc/issue.net /etc/issue.netbak
说明:隐藏系统版本信息可以减少潜在的攻击面。
10. 给命令历史记录添加时间戳
步骤:编辑~/.bashrc
文件。
操作:添加以下行:
export HISTTIMEFORMAT="%h %d %H:%M:%S "
说明:此设置可以在命令历史中添加时间戳,便于追踪命令执行时间。
11. 关闭多余的虚拟控制台
步骤:编辑/etc/inittab
文件(适用于CentOS 6及之前的版本)。
操作:将tty[1-6]
改为tty[1-2]
。
tty1 /dev/tty1 console ondemand bootwait tty2 /dev/tty2 console ondemand bootwait
说明:减少虚拟控制台的数量可以提高系统的安全性。
12. 设置一些全局变量
步骤:编辑/etc/profile
文件。
操作:添加以下行:
TMOUT=3600 HISTSIZE=100
说明:上述设置可以自动退出长时间未活动的终端会话,并限制命令历史记录的数量。
echo "TMOUT=3600">>/etc/profile echo "HISTSIZE=100">>/etc/profile source /etc/profile
说明:上述设置可以自动退出长时间未活动的终端会话,并限制命令历史记录的数量。
13. 关闭SELinux或配置其策略
步骤:根据需要决定是否关闭SELinux。
操作:查看SELinux状态。
sestatus
说明:如果不需要SELinux,可以使用以下命令关闭:
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config setenforce 0
注意:关闭SELinux可能会降低系统的安全性,请谨慎操作。
通过上述一系列的配置,可以显著提升CentOS服务器的安全性,网络安全是一个持续的过程,建议定期审查和更新安全策略,以应对不断变化的威胁环境,以下是一些最佳实践建议:
定期更新系统和软件:及时安装安全补丁,修复已知漏洞。
使用强密码策略:确保所有用户使用复杂且唯一的密码。
限制物理访问:确保服务器放置在安全的物理环境中,防止未经授权的访问。
备份重要数据:定期备份服务器上的重要数据,以防万一。
监控和日志分析:定期检查系统日志,及时发现异常行为。
教育和培训:对管理员和用户进行安全意识培训,提高整体安全水平。
以上就是关于“安全centos服务器”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/661090.html