OpenSSL在Ubuntu中的安全策略设置指南
保持系统和OpenSSL最新是安全基础。定期运行以下命令更新系统及软件包,确保获取最新安全补丁:
sudo apt update && sudo apt upgrade
安装OpenSSL时,优先通过Ubuntu官方仓库获取(sudo apt install openssl),避免手动编译安装(除非有特殊需求)。
禁用不安全的SSLv2、SSLv3协议,限制仅使用TLSv1.2及以上版本,并选择强密码套件。编辑OpenSSL主配置文件(/etc/ssl/openssl.cnf),在[system_default_sect]部分添加:
MinProtocol = TLSv1.2
CipherString = HIGH:!aNULL:!MD5:!RC4:!3DES
若使用Web服务器(如Nginx/Apache),还需在服务器配置中同步设置(示例为Nginx):
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'HIGH:!aNULL:!MD5:!RC4:!3DES';
ssl_prefer_server_ciphers on;
此配置可抵御降级攻击和弱加密算法攻击。
openssl req -x509 -newkey rsa:4096 -keyout /etc/ssl/private/server.key -out /etc/ssl/certs/server.crt -days 365 -nodes
sudo chmod 600 /etc/ssl/private/server.key
sudo chown root:root /etc/ssl/private/server.key
修改/etc/ssl/openssl.cnf中的密码策略参数,提升密钥生成时的密码强度:
default_md = sha256 # 使用SHA-256替代MD5/SHA1
min_length = 12 # 密码最小长度为12位
char_class = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*() # 允许的字符类
生成密钥时通过-config参数指定配置文件,确保策略生效:
openssl req -new -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -subj "/CN=example.com" -config /etc/ssl/openssl.cnf
验证密码策略是否生效:
openssl rsa -in server.key -check -noout
若密码不符合策略,OpenSSL会提示错误。
/etc/ssl/private/),而非默认的/etc/ssl/,减少暴露风险。./config --disable-ssl2 --disable-ssl3 --disable-comp禁用旧版协议和压缩功能,降低攻击面。在openssl.cnf的[log]部分配置日志路径,记录OpenSSL操作(如密钥生成、证书使用):
[log]
file = /var/log/openssl.log
level = info
定期检查日志文件,监控异常操作(如频繁的密钥访问、未授权的证书请求)。结合系统日志工具(如journalctl)实现集中监控。
sslscan工具检测服务器SSL/TLS配置漏洞(如支持弱协议、过时密码套件):sudo apt install sslscan
sslscan --tls-version all yourdomain.com
openssl.cnf和服务器配置文件的修改记录(如通过git版本控制或auditd工具),确保未被恶意篡改。使用ufw(Uncomplicated Firewall)限制对OpenSSL服务端口(如443/TCP)的访问,仅允许可信IP地址连接:
sudo ufw allow from trusted_ip to any port 443/tcp
sudo ufw enable
此措施可防止未经授权的外部访问,降低DDoS攻击和端口扫描风险。