简单打造安全服务器
七步安全加固Linux服务器
1. 配置SSH密钥,并使用密钥登录
密码容易被暴力破解,登录服务器时还需要输入密码
可以使用ssh-keyge生成密钥对(公钥和私钥)
2.保持系统时间最新
许多安全协议依托于系统的时间来执行定时任务,生成当天的日志和执行其他关键任务
如果系统时间有误,可能会对服务器造成伤害。为了防止这种情况发生,可以安装NTP客户端。该程序将使系统时间与全球NTP服务器保持同步
# yum install ntpdate -y # 使用阿里云epel源,安装阿里云的NTP服务
3.查看活动端口
服务器程序会暴露某些端口,以便于网络中的其他应用程序对其访问。黑客也可以在服务器上安装后门并暴露端口,从而控制服务器。因此,我们不希望服务器上的未知端口被请求监听。
查看活动端口可以使用一下命令:
ss -lntup
或者 netstat -ntlp
查看全部端口 netstat -an
查看输入并检查任何不熟悉的端口或进程。尝试发现并追踪可能有害的服务和进程。
4.设置防火墙
防火墙允许控制服务器上 传入/传出特定端口的网络流量。通常使用UFW或FireWall(简单防火墙,Ubuntu或Centos系统上默认的防火墙组件)
5.防止自动攻击
可以使用两个使用的程序来阻止大多数自动攻击:PSAD && Fail2Ban
PSAD和Fail2Ban之间的区别:
我们知道端口可以访问服务器上的应用程序。攻击者为了访问服务器,可能会扫描你的服务器目前开放的端口。
PSAD:监视网络活动,以检测并自定义阻止此类扫描或其他类型的可疑流量,例如DDoS攻击或操作系统指纹识别尝试。
Fail2Ban:扫描各种应用程序的日志文件,并自动封禁有明显恶意行为的IP(如自动登录尝试)
Fail2Ban结合Centos防火墙的使用:
https://www.cnblogs.com/bestOPS/p/10616401.html
6.安装logwatch
服务器上的应用程序通常会将日志消息保存到日志文件中。除非手动监控日志文件,否则需要安装logwatch。logwatch扫描系统日志文件并对其进行汇总。
你可以直接使用命令行或者计划任务运行logwatch。例如,配置logwatch将日志文件的每日摘要以电子邮件的方式发送给你。注意确保你的服务器可以正常发送电子邮件。
logwatch通过service文件来获取读取和汇总日志文件的方式。可以在/usr/share/logwatch/script/services中查看所有service文件。
logwatch默认配置文件:/usr/share/logwatch/default.conf/logwatch.conf 可以使用命令行参数更改配置。
安装logwatch:
apt-get install logwatch
yum install logwatch
如果需要查看logwatch收集的日志样本,可以尝试直接运行logwatch。
sudo /usr/sbin/logwatch --output stdout --format text --range yesterday --service all
最后,告诉logwatch每天发送一封电子邮件,其中包含日志文件的摘要。为实现此需求,可以打开文件/etc/cron.daily/00logwatch并找到execute行,然后修改为:
/usr/sbin/logwatch --output mail --format html --mailto root --range yesterday --service all
7.执行安全审计
加固Linux服务器后,应该进行安全审计,以便排查任何可能被忽视的安全漏洞。为此,可以使用Lynis,这是一个可以实现以下功能的开源软件:
安全审计
一致性测试(如PCI,HIPAA,SOx)
渗透测试
漏洞检测
系统强化
Lynis使用说明:
通过克隆其Github仓库来安装Lynis,确保安装的是最新版本。
git clone https://github.com/CISOfy/lynis
进入目录
cd lynis
使用命令运行第一次安全审计:
lynis audit system
Lynis官方网站:https://cisofy.com/lynis/
附录1:
有威胁的端口:
31/tcp Agent 31, Hackers Paradise, Masters Paradise
1170/tcp Psyber Stream
1234/tcp Ultors Trojan
1243/tcp SubSeven server (default for V1.0-2.0)
1981/tcp ShockRave
2001/tcp Trojan Cow
2023/tcp Ripper Pro
2140/udp Deep Throat, Invasor
2989/tcp Rat backdoor
3024/tcp WinCrash
3150/tcp Deep Throat, Invasor
3700/tcp Portal of Doom
4950/tcp ICQ Trojan
6346/tcp Gnutella
6400/tcp The Thing
6667/tcp Trinity intruder-to-master and master-to-daemon
SubSeven server (default for V2.1 Icqfix and beyond)
6670/tcp Deep Throat
12345/tcp NetBus 1.x, GabanBus, Pie Bill Gates, X-Bill
12346/tcp NetBus 1.x
16660/tcp Stacheldraht intruder-to-master
18753/udp Shaft master-to-daemon
20034/tcp NetBus 2 Pro
20432/tcp Shaft intruder-to-master
20433/udp Shaft daemon-to-master
27374/tcp SubSeven server (default for V2.1-Defcon)
27444/udp Trinoo master-to-daemon
27665/tcp Trinoo intruder-to-master
30100/tcp NetSphere
31335/udp Trinoo daemon-to-master
31337/tcp Back Orifice, Baron Night, Bo Facil
33270/tcp Trinity master-to-daemon
33567/tcp Backdoor rootshell via inetd (from Lion worm)
33568/tcp Trojaned version of SSH (from Lion worm)
40421/tcp Masters Paradise Trojan horse
60008/tcp Backdoor rootshel via inetd (from Lion worm)
65000/tcp Stacheldraht master-to-daemon
更完整的列表: http://home.tiscalinet.be/bchicken/trojans/trojanpo.htm.