Linux系统安全加固详细步骤

Linux系统安全加固详细步骤

发布时间:2024-10-06 00:54:39

以下步骤适用于centos、debian和ubuntu系统的旧版本和新版本。根据您的具体系统版本,某些命令可能略有不同。

常见危险端口

以下端口在centos、debian和ubuntu系统中可能存在安全风险:

  1. 22 (ssh)
  2. 23 (telnet)
  3. 25 (smtp)
  4. 53 (dns)
  5. 80 (http)
  6. 443 (https)
  7. 3306 (mysql)
  8. 5432 (postgresql)
  9. 8080 (常用的替代http端口)
  10. 1433 (ms sql server)

1. 系统更新

centos:

bash

sudo yum update -y
sudo yum upgrade -y

debian/ubuntu:

bash

sudo apt update
sudo apt upgrade -y

2. 创建非root用户并配置sudo

bash

sudo adduser newuser
sudo usermod -ag sudo newuser # ubuntu/debian
sudo usermod -ag wheel newuser # centos

3. 配置ssh

编辑 /etc/ssh/sshd_config:

bash
sudo nano /etc/ssh/sshd_config

修改以下设置:

 

permitrootlogin no
passwordauthentication no
port 2222 # 更改默认端口

重启ssh服务:

bash
sudo systemctl restart sshd

4. 配置防火墙

centos 7及以上 (使用firewalld):

bash

sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=2222/tcp # 如果更改了ssh端口
sudo firewall-cmd --reload

ubuntu/debian (使用ufw):

bash

sudo ufw allow 2222/tcp # 如果更改了ssh端口
sudo ufw enable

5. 安装和配置fail2ban

安装:

centos:

bash

sudo yum install epel-release
sudo yum install fail2ban

ubuntu/debian:

bash
sudo apt install fail2ban

配置:

创建配置文件:

bash

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

修改设置:

 

[sshd]
enabled = true
port = 2222 # 如果更改了ssh端口
maxretry = 3
bantime = 3600

启动服务:

bash

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

6. 禁用不必要的服务

列出正在运行的服务:

bash
sudo systemctl list-units --type=service

禁用不需要的服务:

bash

sudo systemctl stop
sudo systemctl disable

7. 配置系统审计

安装auditd:

centos:

bash
sudo yum install audit

ubuntu/debian:

bash
sudo apt install auditd

启动服务:

bash

sudo systemctl start auditd
sudo systemctl enable auditd

8. 加强文件系统安全

设置关键目录和文件的权限:

bash
sudo chmod 700 /boot /etc/crontab /etc/cron.monthly /etc/cron.weekly /etc/cron.daily /etc/cron.hourly

9. 配置系统日志

编辑 /etc/rsyslog.conf:

bash
sudo nano /etc/rsyslog.conf

确保以下行未被注释:

 

auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog

重启rsyslog服务:

bash
sudo systemctl restart rsyslog

10. 安装和配置rootkit hunter

安装:

centos:

bash
sudo yum install rkhunter

ubuntu/debian:

bash
sudo apt install rkhunter

更新和运行检查:

bash

sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

11. 设置强密码策略

编辑 /etc/login.defs:

bash
sudo nano /etc/login.defs

修改以下设置:

 

pass_max_days 90
pass_min_days 7
pass_warn_age 7

12. 配置自动安全更新

ubuntu/debian:

bash

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

centos:

安装yum-cron:

bash
sudo yum install yum-cron

编辑 /etc/yum/yum-cron.conf:

bash
sudo nano /etc/yum/yum-cron.conf

设置:

 
apply_updates = yes

启动服务:

bash

sudo systemctl start yum-cron
sudo systemctl enable yum-cron

13. 配置ntp同步

安装ntp:

centos:

bash
sudo yum install ntp

ubuntu/debian:

bash
sudo apt install ntp

启动服务:

bash

sudo systemctl start ntpd
sudo systemctl enable ntpd

14. 禁用usb存储(如果不需要)

创建新规则文件:

bash
sudo nano /etc/modprobe.d/disable-usb-storage.conf

添加以下行:

 
install usb-storage /bin/true

15. 安装和配置selinux/apparmor

centos (selinux):

selinux通常默认启用。检查状态:

bash
sestatus

如果未启用,编辑 /etc/selinux/config:

bash
sudo nano /etc/selinux/config

设置:

 
selinux=enforcing

ubuntu/debian (apparmor):

安装apparmor:

bash
sudo apt install apparmor apparmor-utils

检查状态:

bash
sudo aa-status

16. 定期进行漏洞扫描

安装和使用lynis:

bash

# centos
sudo yum install lynis

# ubuntu/debian
sudo apt install lynis

# 运行扫描
sudo lynis audit system

请记住,这些步骤提供了一个全面的安全基线,但可能需要根据您的具体需求和环境进行调整。始终在生产环境中应用更改之前在测试环境中验证这些更改。

-----------------------------------------------------

以上我已经为您创建了一个详细的文档,列出了16个主要步骤来加强linux系统的安全性。这些步骤适用于centos、debian和ubuntu的新旧版本,涵盖了从基本系统更新到高级安全配置的各个方面。

以下是文档中包含的主要步骤:

  1. 系统更新
  2. 创建非root用户并配置sudo
  3. 配置ssh
  4. 配置防火墙
  5. 安装和配置fail2ban
  6. 禁用不必要的服务
  7. 配置系统审计
  8. 加强文件系统安全
  9. 配置系统日志
  10. 安装和配置rootkit hunter
  11. 设置强密码策略
  12. 配置自动安全更新
  13. 配置ntp同步
  14. 禁用usb存储(如果不需要)
  15. 安装和配置selinux/apparmor
  16. 定期进行漏洞扫描

每个步骤都包含了详细的命令和配置说明,适用于不同的linux发行版。

需要注意的是,虽然这些步骤提供了一个全面的安全基线,但您可能需要根据自己的具体需求和环境进行调整。在应用这些更改之前,强烈建议在测试环境中先进行验证。

此外,安全是一个持续的过程。即使实施了这些步骤,也需要定期审查和更新您的安全措施,以应对新出现的威胁。

感谢提供:05互联