一、修改SSH端口号
服务器刚搭建完成,默认使用的SSH端口号是22,这意味着每个人都可以通过这个端口来尝试登录服务器,因此,第一步就要修改SSH端口号。
1.查看当前端口号
$ vi /etc/ssh/sshd_config
在该文件中可以找到#Port 22这一行,这表示当前的SSH端口号是22。
2.修改SSH端口号
$ vi /etc/ssh/sshd_config
将#Port 22这行取消注释,并将22改为任意一个大于1000的端口号,如2222。
3.重启SSH服务
$ systemctl restart sshd
现在,访问SSH就需要使用新的端口号了。
二、禁止root远程登录
root用户具有最高权限,如果黑客攻破了root密码,那么服务器将会陷入极度危险的状态。因此,禁止root用户远程登录是服务器安全配置的重要一步。
1.创建一个新用户并设置sudo权限
$ adduser testuser
$ passwd testuser
$ usermod -aG wheel testuser
现在,testuser用户就具有sudo权限了。
2.修改ssh配置文件
$ vi /etc/ssh/sshd_config
在该文件的末尾添加一行PermitRootLogin no,表示禁止root用户远程登录。
3.重启SSH服务
$ systemctl restart sshd
现在,root用户不能够ssh登录了。
三、开启防火墙
防火墙可以阻止来自外部网络的非法访问请求,保护服务器的安全。CentOS自带的防火墙软件是firewalld。
1.查看firewalld状态
$ systemctl status firewalld
如果显示为停止状态,可以手动启动防火墙。
2.开启防火墙
$ systemctl start firewalld
现在,防火墙已经开启了。
3.添加防火墙规则
例如,允许SSH流量通过。
$ firewall-cmd --permanent --zone=public --add-port=2222/tcp
$ firewall-cmd --reload
现在,SSH流量可以通过防火墙了。
四、安装fail2ban
fail2ban是一个自动化防御工具,可以帮助防止恶意攻击,如暴力破解密码。
1.安装fail2ban
$ yum install fail2ban
2.修改fail2ban配置
查找fail2ban配置文件:
$ find / -name "*jail.conf"
修改SSH相关的配置,例如:
$ vi /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 5
其中的maxretry表示同一个IP地址允许尝试登录失败的次数,超过这个次数就会被阻止。
3.重启fail2ban服务
$ systemctl restart fail2ban
现在,fail2ban已经可以帮助防御攻击了。
五、升级系统
升级系统可以修补已知的安全漏洞和bug,提高服务器的安全性。
1.检查是否有可用更新
$ yum check-update
2.安装更新
$ yum update
现在,系统已经升级到最新版本了。
六、使用SELinux
SELinux是一种强制访问控制(MAC)机制,可以限制进程的行为,增强系统的安全性。
1.查看SELinux状态
$ sestatus
如果状态是enforcing,则表示SELinux处于强制模式。如果是permissive,表示SELinux处于宽容模式。
2.修改SELinux配置
$ vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=permissive,并重启系统:
$ reboot
现在,SELinux处于宽容模式,可以收集到有关执行的信息。
七、关闭不必要的服务
关闭不必要的服务可以减少服务器被攻击的机会。
1.查看系统上的服务
$ systemctl list-unit-files --type=service
2.关闭不必要的服务
$ systemctl stop servicename
$ systemctl disable servicename
例如,停止和禁用ftp服务:
$ systemctl stop vsftpd
$ systemctl disable vsftpd
现在,ftp服务已经停止了。
八、加固Web服务器
Web服务器是攻击者最常袭击的目标之一,因此需要特别加固。
1.使用HTTPS加密
访问网站时使用HTTPS协议可以加密数据传输,保护用户隐私。
2.使用HSTS(HTTP Strict Transport Security)协议
HSTS可以强制浏览器只通过HTTPS访问网站,防止中间人攻击。
3.限制文件上传的大小
避免攻击者上传大文件消耗服务器资源,或上传包含恶意代码的文件。
4.过滤输入
过滤输入可以防止XSS(跨站脚本攻击)和SQL注入攻击,保护服务器。
以上是CentOS服务器安全配置的一些策略,只是一部分,不完全,但如果遵循这些策略,可以增强服务器的安全性,降低被攻击的风险。