Debian 服务器配置教程:从安装到基础服务
Debian 作为一个稳定、安全且高度可定制的操作系统,是搭建服务器的绝佳选择。本教程将引导您完成 Debian 服务器的初始安装、系统优化以及一些基础服务的配置。
第一部分:Debian 系统的安装
1. 获取 Debian 镜像
首先,您需要下载 Debian 的安装镜像文件(ISO)。建议从 Debian 官方网站下载 netinst 版本,因为它体积小,在安装过程中可以根据需要下载软件包。
- 官方下载地址:
https://www.debian.org/download
2. 制作启动盘或虚拟机设置
- 物理服务器: 使用 Etcher、Rufus 或
dd命令将 ISO 写入 USB 闪存盘。 - 虚拟机: 在 VMware、VirtualBox 或 KVM 等虚拟机软件中创建新的虚拟机,并将下载的 ISO 文件作为启动介质。
3. 启动安装程序
从制作好的启动盘或虚拟机启动。在启动菜单中选择 “Graphical install” (图形安装) 或 “Install” (文本安装)。图形安装界面更友好,文本安装适合资源有限的环境。
4. 安装步骤概览
按照屏幕提示完成以下步骤:
- 选择语言、地区和键盘布局: 根据您的实际情况选择。
- 配置网络: 如果有 DHCP 服务器,通常会自动获取 IP 地址。如果没有,您可能需要手动配置静态 IP。
- 设置主机名和域名:
- 主机名 (Hostname): 服务器的名称,如
myserver。 - 域名 (Domain name): 可选,如果您的服务器在一个域名内,如
example.com。
- 主机名 (Hostname): 服务器的名称,如
- 设置 root 密码: 这是系统最高权限用户的密码,请务必设置一个强密码并牢记。
- 创建普通用户账户: 出于安全考虑,建议创建一个普通用户账户用于日常操作,而非直接使用 root 用户。
- 磁盘分区:
- 引导式分区 (Guided – use entire disk): 对于新手或非特殊需求,这是最简单的选择。
- 引导式分区 (Guided – use entire disk and set up encrypted LVM): 如果需要加密,选择此项。
- 手动分区 (Manual): 适合高级用户,可以自定义
/(根目录),/home,/var,/boot等分区以及交换空间 (swap)。建议至少有一个根分区/和一个交换分区swap。
- 安装基本系统: 这一步会安装 Debian 的核心组件。
- 配置软件包管理器 (APT): 选择一个靠近您的地理位置的镜像源,可以加快软件下载速度。
- 选择要安装的软件:
- 通常,对于服务器,我们只会选择 SSH server 和 standard system utilities。
- 桌面环境 (Desktop environment): 不建议在服务器上安装,浪费资源且增加攻击面。
- Web server, Print server, Database server 等: 这些服务通常在基础系统安装完成后再手动安装和配置。
- 安装 GRUB 引导加载器: 确保将其安装到主硬盘的 MBR (Master Boot Record)。
- 完成安装并重启: 移除安装介质,系统将从硬盘启动。
第二部分:系统安装后的基础配置与优化
1. 首次登录与更新系统
重启后,使用您创建的普通用户登录。
“`bash
切换到 root 用户 (输入 root 密码)
su –
更新软件包列表
apt update
升级所有已安装的软件包
apt upgrade
清理不再需要的软件包
apt autoremove
“`
2. 配置 SSH 服务
SSH 是远程管理服务器的必备工具。默认情况下,OpenSSH 服务器已随 Debian 安装。
- 编辑 SSH 配置文件:
bash
nano /etc/ssh/sshd_config - 推荐的 SSH 安全设置:
- 禁用 root 登录 (强烈推荐):
找到PermitRootLogin行,将其改为PermitRootLogin no。
这意味着您必须先用普通用户登录,再使用su -或sudo -i切换到 root。 - 更改默认端口 (可选,但建议):
找到Port 22,将其更改为其他不常用的端口,例如Port 2222。请确保您选择的端口没有被其他服务占用。 - 禁用密码登录 (推荐使用密钥登录):
找到PasswordAuthentication行,将其改为PasswordAuthentication no。
您需要先配置 SSH 密钥登录,然后才能禁用密码登录。
- 禁用 root 登录 (强烈推荐):
- 重启 SSH 服务以应用更改:
bash
systemctl restart ssh
3. 配置防火墙 (UFW)
UFW (Uncomplicated Firewall) 是一个管理 iptables 规则的用户友好工具。
“`bash
安装 UFW
apt install ufw
允许 SSH 连接 (如果您更改了端口,请使用您的新端口)
ufw allow 22/tcp
例如,如果您设置为 2222 端口,则为:ufw allow 2222/tcp
允许常见的服务端口 (根据您的需求开启)
HTTP (Web 服务器)
ufw allow http
ufw allow 80/tcp
HTTPS (Web 服务器安全连接)
ufw allow https
ufw allow 443/tcp
启用防火墙
ufw enable
查看防火墙状态
ufw status
“`
注意: 在启用防火墙之前,请务必允许 SSH 端口,否则您可能会失去对服务器的远程访问。
4. 设置时区
确保服务器的时区设置正确,这对于日志记录和计划任务至关重要。
“`bash
列出所有时区
timedatectl list-timezones
设置时区 (例如,设置为上海时区)
timedatectl set-timezone Asia/Shanghai
验证时区
timedatectl
“`
5. 安装 sudo (如果未安装)
如果安装时没有勾选“Desktop environment”,或者没有选择安装 sudo,可能需要手动安装。
“`bash
使用 root 用户安装 sudo
apt install sudo
将您的普通用户添加到 sudo 组
usermod -aG sudo your_username
将 ‘your_username’ 替换为您的实际用户名
重新登录以使更改生效,或使用 ‘su – your_username’
``sudo` 命令执行需要 root 权限的操作。
现在,您的普通用户可以使用
第三部分:常用服务配置示例
1. 安装和配置 Nginx (Web 服务器)
“`bash
安装 Nginx
sudo apt install nginx
启动 Nginx 服务
sudo systemctl start nginx
设置 Nginx 开机自启动
sudo systemctl enable nginx
检查 Nginx 状态
sudo systemctl status nginx
“`
此时,您可以通过浏览器访问服务器的 IP 地址,应该能看到 Nginx 的欢迎页面。
-
配置网站: Nginx 的网站配置文件通常位于
/etc/nginx/sites-available/。
bash
# 创建一个新的网站配置文件
sudo nano /etc/nginx/sites-available/your_domain.conf
示例配置 (将your_domain.com替换为您的域名或 IP):
“`nginx
server {
listen 80;
listen [::]:80;server_name your_domain.com www.your_domain.com; root /var/www/your_domain; # 网站文件存放目录 index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; } # 示例:启用 SSL (HTTPS) 的配置,通常需要 Let's Encrypt 证书 # listen 443 ssl; # listen [::]:443 ssl; # ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; # ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;}
* **创建网站根目录:**bash
sudo mkdir -p /var/www/your_domain
sudo chown -R www-data:www-data /var/www/your_domain # 给予 Nginx 用户权限
sudo chmod -R 755 /var/www/your_domain
* **创建测试页面:**bash
echo “Hello from your Debian Nginx Server!
” | sudo tee /var/www/your_domain/index.html
* **激活配置并测试:**bash创建软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
移除默认配置 (可选,如果您不使用默认页面)
sudo rm /etc/nginx/sites-enabled/default
检查 Nginx 配置语法
sudo nginx -t
重载 Nginx 服务
sudo systemctl reload nginx
* **UFW 允许 HTTP/HTTPS:**bash
sudo ufw allow ‘Nginx HTTP’
sudo ufw allow ‘Nginx HTTPS’ # 如果配置了 HTTPS
sudo ufw reload
“`
2. 安装和配置 MySQL/MariaDB (数据库服务器)
“`bash
安装 MariaDB 服务器
sudo apt install mariadb-server mariadb-client
运行安全脚本
sudo mysql_secure_installation
“`
此脚本将引导您完成以下安全设置:
* 设置 root 用户密码。
* 移除匿名用户。
* 禁止 root 远程登录。
* 移除测试数据库。
* 重新加载权限表。
-
登录到 MySQL/MariaDB 控制台:
bash
sudo mysql -u root -p
输入您之前设置的 root 密码。 -
创建数据库和用户示例:
sql
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
注意: 将mydatabase,myuser和your_strong_password替换为您的实际值。
3. 安装 PHP (如果需要)
如果您的网站使用 PHP,例如 WordPress,您需要安装 PHP 及其 FPM 模块。
“`bash
安装 PHP-FPM 和常用的 PHP 模块
sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip
检查 PHP-FPM 服务状态
sudo systemctl status php7.x-fpm # ‘7.x’ 或 ‘8.x’ 取决于您安装的 PHP 版本
您还需要修改 Nginx 配置文件,使其能够处理 `.php` 文件,通常是取消注释或添加类似如下的 `location` 块:nginx
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据您的 PHP 版本修改
}
``sudo nginx -t && sudo systemctl reload nginx`。
然后再次测试 Nginx 配置并重载:
第四部分:进一步的安全和维护
- 定期更新系统: 保持系统和所有软件包最新是防止安全漏洞的关键。
bash
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y - 安装 Fail2ban: 防止暴力破解攻击,它会根据登录失败次数自动封禁恶意 IP 地址。
bash
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
配置位于/etc/fail2ban/jail.conf或/etc/fail2ban/jail.local。 - 备份策略: 制定定期备份服务器数据和配置文件的策略。
- 监控: 使用
htop,glances等工具监控服务器资源使用情况,或配置更专业的监控系统。 - 日志管理: 定期检查系统日志 (
/var/log/) 以发现潜在问题。
总结
本教程涵盖了 Debian 服务器从安装到基础服务配置的整个过程。请记住,服务器配置是一个持续的过程,您需要根据实际需求和安全最佳实践不断调整和优化。保持学习和探索,您的 Debian 服务器将成为一个强大而稳定的平台。