Debian服务器配置教程 – wiki基地


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
  • 设置 root 密码: 这是系统最高权限用户的密码,请务必设置一个强密码并牢记。
  • 创建普通用户账户: 出于安全考虑,建议创建一个普通用户账户用于日常操作,而非直接使用 root 用户。
  • 磁盘分区:
    • 引导式分区 (Guided – use entire disk): 对于新手或非特殊需求,这是最简单的选择。
    • 引导式分区 (Guided – use entire disk and set up encrypted LVM): 如果需要加密,选择此项。
    • 手动分区 (Manual): 适合高级用户,可以自定义 / (根目录), /home, /var, /boot 等分区以及交换空间 (swap)。建议至少有一个根分区 / 和一个交换分区 swap
  • 安装基本系统: 这一步会安装 Debian 的核心组件。
  • 配置软件包管理器 (APT): 选择一个靠近您的地理位置的镜像源,可以加快软件下载速度。
  • 选择要安装的软件:
    • 通常,对于服务器,我们只会选择 SSH serverstandard 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 密钥登录,然后才能禁用密码登录。
  • 重启 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, myuseryour_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 版本修改
}
``
然后再次测试 Nginx 配置并重载:
sudo nginx -t && sudo systemctl reload 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 服务器将成为一个强大而稳定的平台。


滚动至顶部