当前位置:首页>Linux>Linux安全加固与防护(详细)

Linux安全加固与防护(详细)

  • 2026-09-08 23:31:49
Linux安全加固与防护(详细)

    在Linux系统管理中,你是否曾经担心过系统安全漏洞、入侵风险、或者数据安全问题?    Linux安全加固是系统管理的重要技能,掌握这些技能不仅能保护系统安全,还能防止数据泄露。    本文将详细介绍Linux安全加固的核心技术和防护技巧。

目录

  1. 1. 系统安全加固
  2. 2. 网络安全配置
  3. 3. 服务安全配置

1. 系统安全加固

1.1 密码策略配置

密码复杂度要求:

1
2
3
4
5
6
7
8
9
10
11

# 安装密码策略工具sudo apt install libpam-pwquality# 编辑密码策略配置sudo nano /etc/security/pwquality.conf# 设置密码策略minlen = 8minclass = 3maxrepeat = 3maxclassrepeat = 4

密码过期策略:

1
2
3
4
5
6
7

# 编辑密码过期配置sudo nano /etc/login.defs# 设置密码过期PASS_MAX_DAYS   90PASS_MIN_DAYS   7PASS_WARN_AGE   7

1.2 登录限制配置

SSH登录限制:

1
2
3
4
5
6
7
8
9
10
11

# 编辑SSH配置sudo nano /etc/ssh/sshd_config# 禁用root登录PermitRootLogin no# 禁用密码登录PasswordAuthentication no# 限制登录用户AllowUsers admin user1 user2

登录失败限制:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 安装fail2bansudo apt install fail2ban# 创建fail2ban配置sudo nano /etc/fail2ban/jail.local# 配置SSH保护[sshd]enabled = trueport = 22filter = sshdlogpath = /var/log/auth.logmaxretry = 3bantime = 3600

1.3 文件权限加固

重要文件权限:

1
2
3
4
5
6
7
8
9
10

# 设置重要文件权限sudo chmod 600 /etc/shadowsudo chmod 644 /etc/passwdsudo chmod 600 /etc/ssh/sshd_configsudo chmod 700 /root# 设置目录权限sudo chmod 755 /homesudo chmod 755 /tmpsudo chmod 1777 /tmp

日志文件权限:

1
2
3
4

# 设置日志文件权限sudo chmod 640 /var/log/auth.logsudo chmod 640 /var/log/syslogsudo chmod 640 /var/log/nginx/access.log

2. 网络安全配置

2.1 防火墙配置

ufw防火墙配置:

1
2
3
4
5
6
7
8
9
10
11
12
13

# 启用防火墙sudo ufw enable# 添加规则sudo ufw allow 22/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcp# 拒绝其他端口sudo ufw default deny# 查看状态sudo ufw status

iptables防火墙配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 清空现有规则sudo iptables -Fsudo iptables -X# 设置默认策略sudo iptables -P INPUT DROPsudo iptables -P FORWARD DROPsudo iptables -P OUTPUT ACCEPT# 允许回环sudo iptables -A INPUT -i lo -j ACCEPT# 允许已建立的连接sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 保存规则sudo iptables-save > /etc/iptables/rules.v4

2.2 网络服务安全

SSH安全配置:

1
2
3
4
5
6
7
8
9
10
11

# 修改SSH端口sudo sed -i 's/Port 22/Port 2222/' /etc/ssh/sshd_config# 禁用空密码登录sudo sed -i 's/PermitEmptyPasswords yes/PermitEmptyPasswords no/' /etc/ssh/sshd_config# 禁用SSHv1sudo sed -i 's/#Protocol 2/Protocol 2/' /etc/ssh/sshd_config# 重启SSH服务sudo systemctl restart ssh

Nginx安全配置:

1
2
3
4
5
6
7
8
9
10
11

# 编辑Nginx配置sudo nano /etc/nginx/nginx.conf# 设置安全头部add_header X-Frame-Options DENY;add_header X-Content-Type-Options nosniff;add_header X-XSS-Protection "1; mode=block";add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";# 隐藏版本信息server_tokens off;

2.3 网络监控

网络连接监控:

1
2
3
4
5
6
7
8

# 查看网络连接sudo netstat -tulpn# 查看网络统计sudo ss -tulpn# 查看网络流量sudo iftop -i eth0

入侵检测:

1
2
3
4
5
6
7
8

# 安装入侵检测工具sudo apt install rkhunter# 扫描系统sudo rkhunter --checkall# 查看扫描结果sudo rkhunter --report

3. 服务安全配置

3.1 系统服务安全

服务权限控制:

1
2
3
4
5
6
7
8
9
10
11
12
13

# 查看运行的服务sudo systemctl list-units --type=service# 禁用不必要的服务sudo systemctl disable telnetsudo systemctl disable rshsudo systemctl disable rexecsudo systemctl disable rlogin# 启用必要的服务sudo systemctl enable sshsudo systemctl enable nginxsudo systemctl enable mysql

服务日志配置:

1
2
3
4
5
6
7
8

# 编辑rsyslog配置sudo nano /etc/rsyslog.conf# 设置日志级别*.info;auth,authpriv.none          /var/log/messagesauth,authpriv.*                    /var/log/securemail.*                              /var/log/maillogcron.*                              /var/log/cron

3.2 数据库安全

MySQL安全配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 运行安全脚本sudo mysql_secure_installation# 设置root密码sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword123!'"# 删除匿名用户sudo mysql -e "DELETE FROM mysql.user WHERE User='';"# 禁止root远程登录sudo mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"# 删除测试数据库sudo mysql -e "DROP DATABASE IF EXISTS test;"

Redis安全配置:

1
2
3
4
5
6
7
8
9
10
11
12
13

# 编辑Redis配置sudo nano /etc/redis/redis.conf# 设置密码requirepass StrongRedisPassword123!# 禁用危险命令rename-command FLUSHDB ""rename-command FLUSHALL ""rename-command DEBUG ""# 绑定特定IPbind 127.0.0.1

3.3 应用服务安全

PHP安全配置:

1
2
3
4
5
6
7
8
9

# 编辑PHP配置sudo nano /etc/php/7.4/fpm/php.ini# 设置安全参数expose_php = Offallow_url_include = Offfile_uploads = Offupload_max_filesize = 2Mmax_file_uploads = 5

Java应用安全:

1
2
3
4
5
6

# 设置JVM参数export JAVA_OPTS="-Djava.security.manager -Djava.security.policy=/etc/java.policy"# 设置文件权限sudo chmod 400 /etc/java.policysudo chmod 600 /etc/keystore.jks

总结

    Linux安全加固与防护是系统管理的重要技能,掌握这些技能不仅能保护系统安全,还能防止数据泄露。

关键要点回顾:

  1. 1. 系统安全:密码策略、登录限制、文件权限
  2. 2. 网络安全:防火墙配置、服务安全、网络监控
  3. 3. 服务安全:系统服务、数据库、应用服务
  4. 4. 防护措施:入侵检测、日志配置、安全加固
  5. 5. 最佳实践:定期检查、及时更新、安全审计

最新文章

随机文章