Ubuntu LNMP如何实现远程访问
导读:Ubuntu LNMP 远程访问配置与加固 一、网络与防火墙放行 使用 UFW 放行必要端口(推荐最小暴露): 允许 Web 与 SSH:sudo ufw allow 80,443/tcp;sudo ufw allow OpenSSH...
Ubuntu LNMP 远程访问配置与加固
一、网络与防火墙放行
- 使用 UFW 放行必要端口(推荐最小暴露):
- 允许 Web 与 SSH:sudo ufw allow 80,443/tcp;sudo ufw allow OpenSSH
- 如需远程管理数据库:sudo ufw allow 3306/tcp
- 查看状态:sudo ufw status
- 如使用云服务器,还需在控制台安全组放行相同端口(TCP 80/443/3306 等)。
- 若系统使用 iptables 且被脚本预置了 DROP 规则(如一键 LNMP 环境常见对 3306/6379 的丢弃规则),需删除对应规则或改为 ACCEPT,再保存规则。示例:iptables -L -n --line-numbers 查看规则序号;iptables -D INPUT < 序号> 删除;如需清空可用 iptables --flush(清空有风险,谨慎操作)。
二、Nginx 与 PHP-FPM 远程访问
- 确保 Nginx 已启动并开机自启:sudo systemctl start nginx & & sudo systemctl enable nginx;浏览器访问 http://服务器IP 验证。
- 配置 PHP-FPM 与 Nginx 通信(以 PHP 7.4 为例,路径按实际版本调整):
- 编辑站点配置(如 /etc/nginx/sites-available/default)在 server 块加入:
- location ~ .php$ {
- include snippets/fastcgi-php.conf;
- fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
- }
- location ~ .php$ {
- 重载 Nginx:sudo systemctl reload nginx
- 创建测试文件 /var/www/html/info.php:,访问 http://服务器IP/info.php 验证解析。
- 编辑站点配置(如 /etc/nginx/sites-available/default)在 server 块加入:
- 说明:PHP-FPM 默认监听本机 Unix Socket,通常无需对 9000/tcp 做公网开放;仅在确有需要时再开放并限制来源 IP。
三、MySQL 远程访问
- 修改 MySQL 绑定地址并授权:
- 编辑配置文件(常见路径:/etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),将 bind-address = 127.0.0.1 注释或改为 0.0.0.0(允许任意来源;生产环境建议改为内网网段如 192.168.1.0/24 并配合防火墙)。
- 登录数据库:mysql -u root -p
- 创建远程用户并授权(示例开放给某固定 IP;% 表示任意 IP,安全性较低):
- GRANT ALL PRIVILEGES ON . TO ‘appuser’@‘203.0.113.10’ IDENTIFIED BY ‘StrongPass!’;
- 或 GRANT ALL PRIVILEGES ON yourdb.* TO ‘appuser’@‘%’ IDENTIFIED BY ‘StrongPass!’;
- FLUSH PRIVILEGES;
- 注意:一键 LNMP 或某些教程默认禁止远程连接,除改配置与授权外,还需确保防火墙/安全组放行 3306/tcp。
四、安全加固要点
- 防火墙最小化:sudo ufw default deny incoming;sudo ufw default allow outgoing;仅放行 80/443/SSH(必要时再加 3306)。
- SSH 安全:修改默认端口(如 2222)、禁用密码登录、启用公钥认证、禁止 root 远程登录。
- 入侵防护:安装并启用 Fail2Ban,为 SSH/Nginx 配置拦截规则。
- Web 服务:在 Nginx 中关闭版本号显示(server_tokens off; )、启用 HTTPS(可用 certbot 自动申请与续期)、添加安全响应头(如 X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy、CSP、HSTS)。
- 数据库:运行 mysql_secure_installation;遵循最小权限原则为应用创建专用账户;生产环境建议保持 bind-address=127.0.0.1,通过 SSH 隧道或内网访问数据库。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu LNMP如何实现远程访问
本文地址: https://pptw.com/jishu/772487.html
