凌峰创科服务平台

Linux网络服务器配置与管理如何实战?

项目概述:构建一个小型企业的基础网络服务环境

项目目标: 我们将模拟一个小型公司的IT需求,为其搭建一套稳定、安全、可扩展的基础网络服务,这套服务将包括:

  1. DHCP服务:为内网客户端自动分配IP地址。
  2. DNS服务:实现公司内部域名解析,并作为客户端的DNS解析器。
  3. Web服务:部署公司内部网站和员工个人博客。
  4. 文件共享服务:使用Samba实现跨平台的文件共享。
  5. 基础安全:使用firewalld配置防火墙规则,并使用fail2ban防止暴力破解。

技术栈:

Linux网络服务器配置与管理如何实战?-图1

  • 操作系统:CentOS Stream 9 / Rocky Linux 9 (或 Ubuntu Server 22.04)
  • 核心软件
    • DHCP: dhcp-server
    • DNS: bind
    • Web: httpd (Apache)
    • 文件共享: samba
    • 防火墙: firewalld
    • 入侵防御: fail2ban

网络规划:

  • 服务器IP168.1.10 (网关: 168.1.1)
  • DNS域名mycompany.lan
  • Web根目录/var/www/html
  • 共享目录/srv/samba/share

第一步:环境准备与系统初始化

在开始之前,你需要准备一台或多台Linux虚拟机,为了完整体验,建议至少准备两台:

  • Server (服务器):安装CentOS/Rocky Linux 9,IP设为静态168.1.10
  • Client (客户端):可以是另一台Linux或Windows,用于测试服务。

服务器初始化操作:

  1. 更新系统

    # 对于 CentOS/Rocky Linux
    sudo dnf update -y
    # 对于 Ubuntu
    sudo apt update && sudo apt upgrade -y
  2. 配置静态IP地址 编辑网络配置文件,确保服务器IP是固定的,以CentOS/Rocky为例:

    sudo nmcli con mod "ens33" ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.10
    sudo nmcli con up "ens33"

    验证IP:ip a

  3. 配置主机名

    sudo hostnamectl set-hostname server.mycompany.lan

    之后,在客户端测试是否能通过ping server.mycompany.lan解析到168.1.10

  4. 关闭防火墙和SELinux(可选,初学者建议,生产环境必须谨慎配置)

    Linux网络服务器配置与管理如何实战?-图2

    # 关闭 firewalld
    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    # 关闭 SELinux (需要重启)
    sudo setenforce 0
    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

第二步:部署DHCP服务

目标:让客户端自动获取到168.1.0/24网段的IP地址,DNS服务器为我们的服务器168.1.10

  1. 安装DHCP服务

    sudo dnf install -y dhcp-server
  2. 配置DHCP 备份并编辑主配置文件:

    sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
    sudo vi /etc/dhcp/dhcpd.conf

    清空文件内容,然后添加以下配置:

    # 默认租约时间(秒)
    default-lease-time 600;
    # 最大租约时间(秒)
    max-lease-time 7200;
    # 声明DNS服务器
    option domain-name-servers 192.168.1.10;
    option domain-name "mycompany.lan";
    # 声明我们管理的网络
    subnet 192.168.1.0 netmask 255.255.255.0 {
        range 192.168.1.100 192.168.1.200; # 可分配的IP范围
        option routers 192.168.1.1;          # 网关地址
    }
  3. 启动并设置开机自启

    sudo systemctl start dhcpd
    sudo systemctl enable dhcpd
  4. 测试 在客户端(Windows/Linux)将网络设置改为“自动获取IP地址”,然后使用 ipconfig /renew (Windows) 或 dhclient (Linux) 命令,检查是否成功获取到168.1.100-200之间的IP。


第三步:部署DNS服务

目标:实现域名解析,例如将 www.mycompany.lan 解析到Web服务器IP,将 files.mycompany.lan 解析到文件共享服务器IP。

  1. 安装BIND DNS服务

    sudo dnf install -y bind bind-utils
  2. 配置主配置文件 编辑 /etc/named.conf,确保以下配置正确:

    Linux网络服务器配置与管理如何实战?-图3

    sudo vi /etc/named.conf

    检查listen-onallow-query,通常修改为:

    listen-on port 53 { 127.0.0.1; 192.168.1.10; }; // 允许本机和服务器自身查询
    allow-query { localhost; 192.168.1.0/24; };      // 允许内网所有客户端查询
  3. 创建区域文件 我们需要为 mycompany.lan 域创建一个正向区域和一个反向区域。

    • a. 编辑主区域配置文件

      sudo vi /etc/named.conf

      在文件末尾添加:

      zone "mycompany.lan" IN {
          type master;
          file "mycompany.lan.zone";
          allow-update { none; };
      };
      zone "1.168.192.in-addr.arpa" IN {
          type master;
          file "192.168.1.zone";
          allow-update { none; };
      };
    • b. 创建正向区域文件

      sudo cp /var/named/named.localhost /var/named/mycompany.lan.zone
      sudo vi /var/named/mycompany.lan.zone

      如下:

      $TTL 1D
      @       IN SOA  ns1.mycompany.lan. admin.mycompany.lan. (
                                      0       ; serial
                                      1D      ; refresh
                                      1H      ; retry
                                      1W      ; expire
                                      3H )    ; minimum
              NS      ns1.mycompany.lan.
              A       192.168.1.10
              ns1     A       192.168.1.10
              www     A       192.168.1.10
              files   A       192.168.1.10
    • c. 创建反向区域文件

      sudo cp /var/named/named.loopback /var/named/192.168.1.zone
      sudo vi /var/named/192.168.1.zone

      如下:

      $TTL 1D
      @       IN SOA  ns1.mycompany.lan. admin.mycompany.lan. (
                                      0       ; serial
                                      1D      ; refresh
                                      1H      ; retry
                                      1W      ; expire
                                      3H )    ; minimum
              NS      ns1.mycompany.lan.
              10      IN PTR  server.mycompany.lan.
              10      IN PTR  ns1.mycompany.lan.
              10      IN PTR  www.mycompany.lan.
              10      IN PTR  files.mycompany.lan.
  4. 启动并设置开机自启

    sudo systemctl start named
    sudo systemctl enable named
  5. 测试 在服务器或客户端上使用 dignslookup 命令测试解析:

    dig www.mycompany.lan @192.168.1.10

分享:
扫描分享到社交APP
上一篇
下一篇