我们以Ubuntu Server 24.04为例,介绍Ubuntu Server的初始化操作,包括安装、配置和安全加固。
kanban
Ubuntu Server 24.04
相关操作内容提纲
初始化操作
Ubuntu Server安装过程
Ubuntu Server初始化过程
安全加固
认识防火墙ufw
认识OpenSSH Server
修改SSH的默认端口
添加新用户
启用root用户
应用功能
安装Docker和compose
安装AMP:Apache、MySQL和PHP
Ubuntu Server 24.04是一个基于Debian的服务器操作系统,适用于需要稳定运行的服务器环境。Ubuntu的产品体系主要包括:
Ubuntu Desktop:提供桌面环境的Ubuntu版本,适用于个人用户和桌面应用。
Ubuntu Server:服务器版本,适用于需要在服务器上运行应用的企业用户。
Ubuntu Core:适用于物联网和边缘计算设备,提供轻量级的操作系统。
如果你没有机会使用Server版本,也可以使用Ubuntu Desktop版本,它提供了与Server版本相似的功能和工具。
Ubuntu Server安装过程 Ubuntu Server 24.04的安装步骤:
下载Ubuntu Server 24.04镜像文件
创建可引导的USB安装介质
从USB启动服务器
选择语言和键盘布局
配置网络连接(安装过程中可选择自动获取IP)
配置存储设备
设置用户账户和密码
选择安装OpenSSH Server(关键步骤,确保远程访问)
完成安装并重启
Ubuntu Server初始化过程 Ubuntu Server 24.04安装完成后,需要进行一些初始化操作,以确保服务器的安全性和功能正常运行。以下是一些常见的初始化步骤:
1. 验证SSH服务是否运行 安装完成后,你可以通过以下方式验证SSH服务是否正在运行:
1 2 3 4 5 6 7 8 sudo systemctl status sshsudo systemctl start sshsudo systemctl enable ssh
2. 安装网络工具检查端口状态 Ubuntu Server默认不安装netstat
命令,需要手动安装net-tools
包:
1 2 3 4 5 6 sudo apt updatesudo apt install net-tools netstat -anotp | grep :22
3. 配置静态IP地址 为服务器配置静态IP地址,确保网络连接稳定:
1 2 sudo nano /etc/netplan/00-installer-config.yaml
文件内容通常类似于:
1 2 3 4 5 network: ethernets: enp0s3: dhcp4: true version: 2
修改为静态IP配置:
1 2 3 4 5 6 7 8 9 10 11 network: ethernets: enp0s3: dhcp4: false addresses: [192.168 .0 .84 /24 ] routes: - to: default via: 192.168 .0 .1 nameservers: addresses: [8.8 .8 .8 , 8.8 .4 .4 ] version: 2
应用配置更改:
1 2 3 4 5 sudo netplan apply ip addr show
4. 其他常用初始化步骤 完成基本配置后,还可以进行以下初始化操作:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo apt updatesudo apt upgrade -ysudo apt install ufwsudo ufw allow 22sudo ufw enable sudo timedatectl set-timezone Asia/Shanghai sudo adduser usernamesudo usermod -aG sudo username
通过以上步骤,我们已经完成了Ubuntu Server 24.04的安装和基本初始化配置,包括验证SSH服务、安装网络工具、配置静态IP地址等。
安全加固Ubuntu Server 认识防火墙ufw Ubuntu默认使用的是iptables
作为防火墙,但是iptables
配置较为复杂,容易出错。为了简化防火墙配置,Ubuntu提供了ufw
(Uncomplicated Firewall)工具,它提供了简单易用的命令行界面来管理防火墙规则。
查看已开放端口列表 要查看UFW当前已开放的端口和服务:
1 2 3 4 5 6 7 8 sudo ufw statussudo ufw status verbosesudo ufw status numbered
输出示例:
1 2 3 4 5 6 7 8 9 10 11 12 Status: active To Action From- - - ----- - ---22 /tcp ALLOW Anywhere 80 /tcp ALLOW Anywhere 443 /tcp ALLOW Anywhere 32000 :32999 /tcp ALLOW Anywhere 22 /tcp (v6) ALLOW Anywhere (v6) 80 /tcp (v6) ALLOW Anywhere (v6) 443 /tcp (v6) ALLOW Anywhere (v6) 32000 :32999 /tcp (v6) ALLOW Anywhere (v6)
添加端口规则 1. 开放单个端口 1 2 3 4 5 6 7 8 sudo ufw allow 21/tcpsudo ufw allow 80/tcpsudo ufw allow 443/tcp
2. 开放端口范围 1 2 3 4 5 sudo ufw allow 32000:32999/tcpsudo ufw allow 32000:32999/udp
3. 从特定IP地址开放端口 1 2 sudo ufw allow from 192.168.1.100 to any port 22
删除端口规则 删除规则有两种方式:通过端口号或通过规则编号。
1. 通过端口号删除 1 2 3 4 5 sudo ufw delete allow 21/tcpsudo ufw delete allow 32000:32999/tcp
2. 通过规则编号删除 先查看带编号的规则列表:
1 sudo ufw status numbered
输出示例:
1 2 3 4 5 6 7 8 Status: active To Action From - - - ----- - --- [ 1 ] 22 /tcp ALLOW IN Anywhere [ 2 ] 80 /tcp ALLOW IN Anywhere [ 3 ] 443 /tcp ALLOW IN Anywhere [ 4 ] 32000 :32999 /tcp ALLOW IN Anywhere
然后根据编号删除规则:
端口转发配置 要配置端口转发,需要先启用IP转发并创建相应规则:
1. 启用IP转发 编辑 /etc/sysctl.conf
文件:
1 sudo nano /etc/sysctl.conf
取消以下行的注释(删除前面的 #
):
保存文件后应用更改:
2. 配置端口转发规则 1 2 3 4 5 sudo ufw route allow proto tcp from any to any port 8080 redirect-to-port 80sudo ufw route allow proto tcp from any to 192.168.1.100 port 80 redirect-to-port 8080
丢弃特定端口请求 要丢弃来自端口25的所有请求(通常用于SMTP服务):
1 2 3 4 5 sudo ufw deny 25/tcpsudo ufw reject 25/tcp
保存和恢复规则 1 2 3 4 5 6 7 8 sudo ufw reloadsudo ufw disable sudo ufw enable
查看规则文件 UFW规则存储在以下位置:
1 2 3 4 5 cat /etc/ufw/user.rulescat /etc/ufw/user6.rules
重置UFW(谨慎使用) 这将删除所有规则并重置UFW:
认识OpenSSH Server OpenSSH Server是一个开源的SSH服务器实现,用于提供安全的远程登录和文件传输功能。它是Linux和Unix系统中最常用的SSH服务器之一。
在Ubuntu上,OpenSSH Server通常已经默认安装。可以通过以下命令检查是否已安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sudo systemctl status sshsudo apt updatesudo apt install openssh-serversudo systemctl restart sshsudo systemctl status sshsudo systemctl is-enabled sshsudo systemctl enable ssh
与防火墙相关的命令:
1 2 3 4 5 6 7 8 sudo ufw allow sshsudo ufw allow 22/tcpsudo ufw reload
配置相关的指令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ls -l /etc/ssh/sshd_configsudo apt purge openssh-serversudo apt install openssh-server ss -tulpn | grep :22 ssh username@server_ip
修改SSH的默认端口 默认情况下,SSH服务使用的是22端口,这往往是黑客攻击的目标和对象,是暴力破解的主要入口。为了提高安全性,我们可以将SSH服务的默认端口修改为其他端口,如2233。
修改SSH的默认端口为2233,需要进行以下步骤:
编辑SSH配置文件:
1 sudo nano /etc/ssh/sshd_config
找到并修改Port
参数,将其值改为2233:
保存文件并退出编辑器。
跟普通的端口不同,还需要以下操作:
1 2 3 4 5 6 7 8 9 10 11 sudo systemctl daemon-reloadsudo systemctl restart ssh.socketsudo systemctl restart sshsudo ss -tulpn | grep sshd
这个时候不要急于重启服务器,因为刚才设置的防火墙中你还没有打开新的SSH端口:
这项配置好之后重启服务器即可,这样就可以通过2233端口来访问SSH服务了。
添加新用户 假设您要创建用户 developer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sudo adduser developersudo usermod -aG sudo developergroups developer su - developersudo whoami exit
启用root用户 在Ubuntu Server中启用root用户,可按以下步骤进行:
使用sudo命令切换到root用户:sudo su
。
更改root用户的密码:passwd root
,按照提示输入新密码并确认。
编辑/etc/ssh/sshd_config
文件,找到PermitRootLogin prohibit - password
这一行,将其修改为PermitRootLogin yes
。
重启ssh服务:sudo service ssh restart
或sudo systemctl restart ssh
。
完成以上步骤后,就可以使用root用户登录Ubuntu Server了。不过,root用户拥有最高权限,使用时需格外谨慎,以免因误操作导致系统出现问题。
Ubuntu Server的应用功能 安装Docker和compose 如果是本地安装Docker,一般都是在安装操作系统的过程中选择安装的。
在云服务器上,我们以阿里云为例,可以参考文档:https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker
主要的操作命令如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 sudo apt-get updatesudo apt-get -y install apt-transport-https ca-certificates curl software-properties-commonsudo curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture) ] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl start dockersudo systemctl enable docker
以上过程安装了Docker和Docker compose,你可以使用以下命令来验证:
1 2 3 4 5 6 7 8 9 docker --version docker compose version
在Docker基础上组网和部署服务的过程我们在后续文章中介绍。
安装AMP:Apache、MySQL和PHP 如果你希望通过Docker解决PHP和MySQL的问题,那么你可以考虑使用Docker Compose来管理它们。我们这里讨论的是在Ubuntu Server上直接安装AMP(Apache、MySQL和PHP)的方法。
安装Apache :
1 2 sudo apt-get updatesudo apt-get install apache2
对应的配置文件在: /etc/apache2/apache2.conf
。 配置多个网站和扩展配置的文件在目录: /etc/apache2/sites-available
。
网站目录文件在: /var/www/html
。
安装MySQL :
1 2 sudo apt-get updatesudo apt-get install mysql-server
对应的配置文件在: /etc/mysql/mysql.conf.d/mysqld.cnf
。 在配置文件中,你可以设置MySQL的数据文件目录、日志文件目录、端口号等,不然不做特殊设置,他们的默认值分别是: (1)数据文件目录: /var/lib/mysql
。 (2)日志文件目录: /var/log/mysql
。 (3)端口号: 3306
。
安装PHP :
1 2 sudo apt-get updatesudo apt-get install php libapache2-mod-php php-mysql
对应的配置文件在: /etc/php/8.2/apache2/php.ini
。
管理Apache和MySQL :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 sudo systemctl start apache2sudo systemctl start mysqlsudo systemctl restart apache2sudo systemctl restart mysqlsudo systemctl stop apache2sudo systemctl stop mysqlsudo systemctl enable apache2sudo systemctl enable mysql
安装Nginx :
1 2 sudo apt-get updatesudo apt-get install nginx
对应的配置文件在: /etc/nginx/nginx.conf
。