我的运维笔记

第1讲 服务器安全加固

本章完成工作

关键命令

# 查看ssh登录失败日志
sudo journalctl -u sshd | grep -i "failed" | tail -30

# 创建普通用户study,加入wheel管理员组
sudo adduser study
sudo passwd study
sudo usermod -aG wheel study

# 设置密钥目录权限(SSH强制要求)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# 校验sshd配置语法,重载ssh服务
sudo sshd -t
sudo systemctl reload sshd

# firewalld放行ssh服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
sudo firewall-cmd --list-all

# 安装epel源与fail2ban防护工具
sudo dnf install -y epel-release
sudo dnf install -y fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

# 检查sudo配置语法
sudo visudo -c

遇到的问题以及解决

问题1:配置密钥登录依旧提示输入密码

原因:.ssh目录、authorized_keys文件权限过于宽松,SSH直接拒绝密钥认证。

解决:目录权限设置700,密钥文件权限设置600,确认文件属主是当前用户,不是root。

问题2:修改sshd_config后SSH连接不上服务器

原因:配置写错直接重载,SSH网络通道失效。

解决:阿里云控制台打开VNC登录,修正配置,使用 sshd -t校验语法后再重载服务。

问题3:sudoers配置写错,全部账号无法使用sudo管理员权限

解决:VNC以root登录服务器,修改或者删除 /etc/sudoers.d/teacher,执行visudo‑c校验语法。

第2讲 网站上线:域名解析与Nginx个人主页

本章完成工作

关键命令

# firewalld永久放行http(80端口)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

# 安装、启动Nginx,设置开机自启
sudo dnf install -y nginx
sudo systemctl enable --now nginx
systemctl status nginx

# 创建网站目录,修改属主、权限
sudo mkdir -p /var/www/mysite
sudo chown -R study:study /var/www/mysite
sudo chmod 755 /var/www/mysite

# nginx配置语法校验,重载配置
sudo nginx -t
sudo systemctl reload nginx

# 实时查看网站访问日志
sudo tail -f /var/log/nginx/mysite_access.log

# 查看SELinux状态(阿里云Rocky默认关闭)
getenforce

遇到的问题以及解决

问题1:IP可以访问网站,域名打不开

原因:DNS解析记录未生效或者解析填写错误。

解决:nslookup校验域名解析结果,等待TTL缓存时间到期生效。

问题2:浏览器访问返回403 Forbidden禁止访问

原因:网页文件、目录权限不足,nginx工作进程没有读取权限。

解决:目录权限755,html文件权限644;查看nginx错误日志定位Permission denied权限拒绝。

问题3:域名打开显示Nginx默认页面,不是自己写的主页

原因:配置文件server_name写错,缺少www域名,修改后没有重载nginx。

解决:修正mysite.conf配置,nginx‑t校验,执行systemctl reload nginx。

第3讲 HTTPS与证书自动续期

本章完成工作

关键命令

# firewalld放行https(443端口)
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-services

# 安装certbot证书工具
sudo dnf install -y certbot
certbot --version

# 查看本机所有证书信息
sudo certbot certificates

# 启用证书自动续期定时器
sudo systemctl enable --now certbot-renew.timer
systemctl list-timers 'certbot*'

# 演练模拟证书续期(不会修改真实证书)
sudo certbot renew --dry-run

遇到的问题以及解决

问题1:certbot申请证书提示连接超时timeout

原因:80端口没有开放,安全组或者firewalld防火墙拦截。

解决:检查两层防火墙,确认80端口放行。

问题2:nginx‑t报错 cannot load certificate

原因:ssl_certificate证书文件路径书写错误。

解决:执行certbot certificates查看真实证书路径,修改nginx配置。

问题3:证书到期,网站浏览器提示不安全

原因:没有开启certbot自动续期定时器;deploy钩子脚本缺少执行权限。

解决:确认certbot‑renew.timer已经启用;给钩子脚本添加执行权限,执行renew --dry‑run演练。