linux系统实用篇-17、动手操作之DVWA应用/系统安全防护配置

linux系统实用篇-17、动手操作之DVWA应用/系统安全防护配置

经验文章nimo972025-03-23 19:39:5710A+A-

基于《网络安全等级保护三级要求》(等保三级),对安装有数据库和Web服务的DVWA环境进行加固,从操作系统、数据库、Web服务以及网络通信等多个层面进行全面的安全配置。


1.操作系统加固

操作系统是数据库和Web服务的基础,必须确保其安全性。

1.1 身份鉴别

  • 强化密码策略

编辑
/etc/pam.d/common-password
(Debian/Ubuntu)或/etc/pam.d/system-auth(CentOS/RHEL),设置密码复杂度:

password requisite pam_pwquality.so retry=3 minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1

解释:

  • minlen=12:密码最小长度为12。
  • lcredit=-1:至少包含1个小写字母。
  • ucredit=-1:至少包含1个大写字母。
  • dcredit=-1:至少包含1个数字。
  • ocredit=-1:至少包含1个特殊字符。

设置密码有效期,编辑 /etc/login.defs

PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14

解释:

  • PASS_MAX_DAYS:密码最长使用90天。
  • PASS_MIN_DAYS:密码修改间隔至少7天。
  • PASS_WARN_AGE:密码过期前14天提醒用户。
  • 限制登录失败次数: 使用pam_tally2模块:
auth required pam_tally2.so deny=5 unlock_time=600

解释:

  • deny=5:连续失败5次后锁定账户。
  • unlock_time=600:锁定10分钟。

1.2 访问控制

  • 禁用root用户直接登录: 编辑 /etc/ssh/sshd_config
PermitRootLogin no
  • 最小权限原则: 使用sudo限制用户权限,编辑 /etc/sudoers
username ALL=(ALL) NOPASSWD:ALL
  • 文件权限控制

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

chmod 600 /etc/passwd /etc/shadow /etc/group
chmod 700 /root
chmod 750 /home/*

使用chattr防止关键文件被修改:

chattr +i /etc/passwd /etc/shadow /etc/group

1.3 安全审计

  • 启用审计日志: 安装并配置auditd
sudo apt install auditd

编辑 /etc/audit/audit.rules

-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /var/log/ -p wa -k logs

1.4 入侵防范

  • 安装Fail2Ban: 防止暴力破解:
sudo apt install fail2ban

配置 /etc/fail2ban/jail.local

[sshd]
enabled = true
maxretry = 3
bantime = 3600

1.5 恶意代码防范

  • 安装ClamAV: 定期扫描系统:
sudo apt install clamav
sudo freshclam
sudo clamscan -r /

2.数据库加固

数据库是系统的核心,必须确保其安全性。

2.1 身份鉴别

  • 强化数据库用户密码: 设置复杂密码策略:
ALTER USER 'username'@'localhost' IDENTIFIED BY 'StrongPassword123!';
  • 限制数据库用户权限: 遵循最小权限原则:
GRANT SELECT, INSERT, UPDATE ON database.* TO 'username'@'localhost';

2.2 访问控制

  • 限制数据库访问IP
  • 只允许特定IP访问数据库:
GRANT ALL PRIVILEGES ON database.* TO 'username'@'192.168.1.100';
  • 禁用远程root登录
  • 编辑MySQL配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1

2.3 安全审计

  • 启用数据库审计日志: 配置MySQL审计插件:
INSTALL PLUGIN audit_log SONAME 'audit_log.so';

2.4 数据加密

  • 启用SSL/TLS加密: 配置MySQL使用SSL:
ssl-ca=/etc/mysql/ca.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem

3.Web服务加固

Web服务是系统的对外接口,必须确保其安全性。

3.1 身份鉴别

  • 启用HTTPS: 使用Let's Encrypt免费SSL证书:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
  • 强化Web应用密码策略: 确保Web应用使用强密码策略。

3.2 访问控制

  • 限制Web目录权限: 设置Web目录权限:
chown -R www-data:www-data /var/www/html
chmod -R 750 /var/www/html
  • 配置Web服务器防火墙: 使用UFW限制访问:
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

3.3 安全审计

  • 启用Web服务器日志: 确保Apache/Nginx日志启用:
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

3.4 防止常见Web攻击

  • 防止SQL注入和XSS: 确保Web应用使用参数化查询和输入验证。
  • 配置WAF: 使用ModSecurity等Web应用防火墙:
sudo apt install libapache2-mod-security2

4.网络通信加固

确保网络通信的安全性。

4.1 使用VPN

  • 配置OpenVPN或IPSec VPN,确保远程访问安全。

4.2 配置防火墙

  • 使用iptablesUFW限制不必要的端口:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow from 192.168.1.0/24 to any port 161 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 162 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 514 proto udp
sudo ufw enable

4.3 启用IDS/IPS

  • 使用Snort或Suricata进行入侵检测和防御。

5.定期安全评估

  • 使用Lynis进行系统安全评估:
sudo lynis audit system
  • 定期进行漏洞扫描和渗透测试。

总结

通过以上步骤,安装有数据库和Web服务的DVWA系统可以得到安全防护。需要注意的是,安全防护是一个持续改进的过程,建议定期进行安全评估和加固,确保系统始终符合安全标准。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7