📖 课程学习笔记
第01讲 服务器安全加固
- 两条登录通道:SSH(受sshd配置管控);VNC带外控制台,救命后路,不走SSH。
- SSH密钥认证:私钥存本地永不外传;公钥部署服务器authorized_keys。目录权限700,文件权限600。
- 加固要点:禁用密码登录 PasswordAuthentication no;禁止root远程登录 PermitRootLogin no;白名单AllowUsers。
- fail2ban:监控SSH爆破日志,自动封禁攻击者IP;Rocky9使用backend=systemd读取systemd日志。
- 两层防护:阿里云安全组(平台层) + firewalld主机防火墙,遵循最小开放原则。
- 运维好习惯:私钥永不外传;改配置先留后路;先验证再收口。
#查看ssh登录失败日志
journalctl -u sshd | grep -i "failed" | tail -30
#测试sshd配置
sudo sshd -t
#firewalld永久放行ssh
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
第02讲 网站上线 Nginx与域名解析
- DNS:域名系统,域名转IP;A记录指向IPv4;TTL为缓存时间。配置@和www两条解析。
- 网站三环节:DNS解析、安全组+firewalld开放80端口、Nginx Web服务。
- Nginx依靠Host请求头 + server_name区分多个虚拟站点;IP访问不匹配server_name,会显示默认页面。
- 文件目录权限:网页文件644,网站目录755;权限600会造成403禁止访问。
- 改Nginx配置必须 nginx -t 语法校验后再 reload。
- 合规:网站首页底部放置ICP备案号,链接工信部备案官网。
#安装启动nginx
sudo dnf install -y nginx
sudo systemctl enable --now nginx
#配置语法检查
sudo nginx -t
#放行http(80端口)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
#查看访问日志
sudo tail -f /var/log/nginx/mysite_access.log
第03讲 HTTPS证书与自动续期
- HTTP明文传输,内容可被抓包窃听;HTTPS=HTTP+TLS加密,加密业务数据,同时完成服务器身份认证。
- Let’s Encrypt免费证书有效期90天,未来缩短至45天,无邮件提醒,自动续期是必须项。
- 申请证书前提:域名解析正确、80端口开放、Nginx配置正确;HTTP‑01验证。
- 端口:443为HTTPS;80端口不能关闭,用于http跳转https,以及证书续期验证。
- 证书文件:fullchain.pem证书链;privkey.pem证书私钥,严禁泄露。
- 操作流程:--dry‑run演练 → 正式申请证书;systemd定时器定时检查续期;deploy钩子续期成功自动reload nginx。
- 抓包观察:HTTPS加密网页内容,但握手SNI会明文暴露访问的域名。
#安装certbot
sudo dnf install -y certbot
#演练申请证书
sudo certbot certonly --webroot -w /var/www/mysite -d shturl. -d www.shturl. --dry-run
#演练续期
sudo certbot renew --dry-run
#查看证书列表
sudo certbot certificates