当您首次获得一台全新的Linux服务器时,一系列规范化的初始设置是确保其安全性、稳定性和性能的关键,本文将引导您完成一套基础且至关重要的配置流程,涵盖从系统加固到核心环境搭建的各个环节。
初步连接与系统更新
您需要通过SSH协议连接到您的服务器,您会使用root账户进行首次登录:
ssh root@your_server_ip
成功登录后,首要任务是更新系统软件包列表并升级所有已安装的软件到最新版本,这可以修复已知的安全漏洞并提升系统稳定性。
对于基于Debian或Ubuntu的系统,请执行:
apt update && apt upgrade -y
对于基于CentOS或RHEL的系统,请执行:
yum update -y
基础安全配置
直接使用root账户进行日常操作存在巨大风险,创建一个具有sudo权限的普通用户是安全实践的第一步。
创建新用户
使用adduser
命令创建一个新用户(admin
),系统会提示您设置密码和填写一些可选信息。
adduser admin
赋予sudo权限
将新创建的用户添加到sudo
用户组,使其能够执行管理员命令。
usermod -aG sudo admin
之后,您可以使用 ssh admin@your_server_ip
并用新密码登录,后续操作都可以在这个新用户下通过sudo
提权完成。
配置防火墙
防火墙是服务器的第一道防线,UFW(Uncomplicated Firewall)是一个易于管理的前端工具,非常适合初学者。
允许SSH连接,否则启用防火墙后您将无法登录。
sudo ufw allow OpenSSH
如果您计划部署Web服务,需要开放HTTP和HTTPS端口。
sudo ufw allow 'Nginx Full'
启用防火墙并检查其状态:
sudo ufw enable sudo ufw status
加固SSH服务
编辑SSH配置文件以增强安全性。
sudo nano /etc/ssh/sshd_config
在文件中,找到并修改以下几项:
PermitRootLogin no
(禁止root用户直接登录)PasswordAuthentication no
(禁用密码认证,推荐使用SSH密钥对登录)Port 22
(可以更改为一个不常用的高位端口以减少自动化扫描)
保存文件后,重启SSH服务使配置生效。注意:在禁用密码认证前,请务必确保您的SSH密钥已正确配置并能正常登录,否则将无法访问服务器。
sudo systemctl restart sshd
核心环境搭建(以LEMP栈为例)
LEMP(Linux, Nginx, MySQL, PHP)是一个非常流行的Web服务环境组合。
安装Nginx
Nginx是一款高性能的Web服务器和反向代理。
sudo apt install nginx -y
安装完成后,Nginx会自动启动,您可以在浏览器中访问服务器的IP地址,看到Nginx的欢迎页面。
安装MySQL
MySQL是广泛使用的开源关系型数据库。
sudo apt install mysql-server -y
安装后,建议运行安全安装脚本,它将引导您设置root密码、移除匿名用户等。
sudo mysql_secure_installation
安装PHP
PHP是一种服务器端脚本语言,用于生成动态网页。
sudo apt install php-fpm php-mysql -y
php-fpm
(FastCGI Process Manager)是Nginx处理PHP请求的推荐方式。
配置Web服务
最后一步是配置Nginx以处理PHP请求,您需要为您的网站创建一个服务器块配置文件。
sudo nano /etc/nginx/sites-available/your_domain
在文件中粘贴以下基础配置,并替换your_domain
和/var/www/your_domain
为您的实际域名和网站目录路径。
server { listen 80; server_name your_domain www.your_domain; root /var/www/your_domain; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根据您的PHP版本调整 } location ~ /.ht { deny all; } }
创建好配置文件后,通过创建符号链接来启用该站点,然后测试并重启Nginx。
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
至此,您已经完成了一台Linux服务器的基础设置,具备了安全防护和运行PHP网站的能力,后续还可以根据需求配置SSL证书(如Let’s Encrypt)、设置定期备份和部署监控工具。
相关问答FAQs
Q1: 我在配置SSH时禁用了密码认证,但我的SSH密钥似乎没有工作,现在无法登录服务器了,该怎么办?
A: 不要惊张,大多数云服务提供商(如AWS, DigitalOcean, Vultr等)都提供了基于Web的控制台或VNC访问功能,您可以通过这个控制台直接登录到服务器的命令行界面,这通常不依赖于SSH服务,登录后,您可以使用root权限重新编辑/etc/ssh/sshd_config
文件,将PasswordAuthentication yes
这一行取消注释或修改为yes
,然后重启SSH服务(systemctl restart sshd
),这样您就可以重新用密码登录,并检查SSH密钥配置的问题所在。
Q2: UFW和iptables有什么区别?我应该使用哪一个?
A: iptables
是Linux内核中netfilter防火墙的用户空间命令行工具,它功能极其强大和灵活,但语法相对复杂,规则管理起来可能很繁琐。UFW
(Uncomplicated Firewall)则是一个iptables
的前端,旨在简化防火墙的配置过程,它通过更人性化的命令(如ufw allow
或ufw deny
)来管理iptables
规则,对于绝大多数用户,尤其是服务器管理新手,强烈推荐使用UFW
,它提供了足够的安全性和易用性,能够满足绝大多数应用场景的需求,只有当您需要非常精细、复杂的网络规则控制时,才需要直接使用iptables
。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复