Ubuntu 22.04 网络服务安装配置

发布于:2025-09-06 ⋅ 阅读:(17) ⋅ 点赞:(0)

Ubuntu 22.04 网络服务安装配置

一键安装所有服务

# 更新系统
sudo apt update

# 安装所有服务
sudo apt install -y openssh-server vsftpd telnetd inetutils-inetd ftp telnet

# 启动所有服务
sudo systemctl start ssh vsftpd inetutils-inetd
sudo systemctl enable ssh vsftpd inetutils-inetd

# 配置防火墙
sudo ufw allow ssh
sudo ufw allow 21/tcp
sudo ufw allow 23/tcp
sudo ufw allow 10000:10100/tcp

# 查看服务状态
sudo systemctl status ssh vsftpd inetutils-inetd

服务端口对照表

服务 端口 安全性 用途
SSH 22 ✅ 安全 远程登录、文件传输
FTP 21 ⚠️ 不安全 文件传输
Telnet 23 ❌ 不安全 远程登录(调试用)
SFTP 22 ✅ 安全 基于SSH的文件传输
SCP 22 ✅ 安全 基于SSH的文件复制

快速测试命令

安装完成后,可以用这些命令测试:

# 测试 SSH
ssh $USER@localhost

# 测试 FTP
ftp localhost

# 测试 Telnet  
telnet localhost

# 测试 SFTP
sftp $USER@localhost

# 查看所有监听端口
sudo netstat -tlnp | grep -E ':(21|22|23) '
  1. 生产环境建议:只启用 SSH,禁用 FTP 和 Telnet
  2. FTP 安全:配置 FTPS (FTP over SSL) 加密传输
  3. SSH 加固:修改默认端口、禁用 root 登录、使用密钥认证

推荐使用顺序:SSH/SFTP > FTPS > FTP > Telnet

SSH 服务 (推荐优先配置)

安装 SSH 服务

# 更新软件包列表
sudo apt update

# 安装 OpenSSH 服务器
sudo apt install -y openssh-server

# 启动 SSH 服务
sudo systemctl start ssh

# 设置开机自启动
sudo systemctl enable ssh

# 查看服务状态
sudo systemctl status ssh

配置 SSH 服务

# 编辑 SSH 配置文件
sudo nano /etc/ssh/sshd_config

# 主要配置项:
# Port 22                    # SSH 端口号
# PermitRootLogin no         # 禁止 root 直接登录(推荐)
# PasswordAuthentication yes # 允许密码认证
# PubkeyAuthentication yes   # 允许公钥认证
# X11Forwarding yes          # 允许 X11 转发

重启 SSH 服务使配置生效

sudo systemctl restart ssh

防火墙配置

# 允许 SSH 通过防火墙
sudo ufw allow ssh
# 或者
sudo ufw allow 22/tcp

测试 SSH 连接

# 本地测试
ssh username@localhost

# 远程测试(从其他机器)
ssh username@your_server_ip

SFTP 和 SCP 服务

注意:SFTP 和 SCP 基于 SSH,安装 SSH 后自动可用

测试 SFTP

# 连接到 SFTP
sftp username@localhost

# SFTP 常用命令:
# put localfile          # 上传文件
# get remotefile         # 下载文件
# ls                     # 列出远程目录
# lls                    # 列出本地目录
# pwd                    # 显示远程当前目录
# lpwd                   # 显示本地当前目录
# quit                   # 退出

测试 SCP

# 上传文件到远程服务器
scp localfile.txt username@remote_host:/path/to/destination/

# 从远程服务器下载文件
scp username@remote_host:/path/to/file.txt /local/destination/

# 上传目录
scp -r local_directory/ username@remote_host:/remote/path/

# 下载目录
scp -r username@remote_host:/remote/directory/ /local/path/

FTP 服务

安装 vsftpd (Very Secure FTP Daemon)

# 安装 vsftpd
sudo apt install -y vsftpd

# 启动服务
sudo systemctl start vsftpd

# 设置开机自启动
sudo systemctl enable vsftpd

# 查看服务状态
sudo systemctl status vsftpd

配置 FTP 服务

# 备份原配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

# 编辑配置文件
sudo nano /etc/vsftpd.conf
重要配置项:
# 基本配置
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

# 安全配置
chroot_local_user=YES
allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
force_dot_files=YES

# 被动模式配置
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100

# 用户配置
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

创建 FTP 用户

# 创建 FTP 用户列表文件
sudo nano /etc/vsftpd.userlist

# 在文件中添加允许访问的用户名
echo "your_username" | sudo tee -a /etc/vsftpd.userlist

重启 FTP 服务

sudo systemctl restart vsftpd

防火墙配置

# 允许 FTP 通过防火墙
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp  # 被动模式端口范围

测试 FTP 连接

# 安装 FTP 客户端
sudo apt install -y ftp

# 连接测试
ftp localhost
# 输入用户名和密码

# FTP 常用命令:
# ls                     # 列出远程目录
# cd directory           # 切换远程目录
# lcd directory          # 切换本地目录
# put localfile          # 上传文件
# get remotefile         # 下载文件
# mput file1 file2       # 批量上传
# mget file1 file2       # 批量下载
# quit                   # 退出

Telnet 服务

安装 Telnet 服务器

# 安装 telnet 服务器
sudo apt install -y telnetd

# 安装 inetd 超级服务器
sudo apt install -y inetutils-inetd

# 启动服务
sudo systemctl start inetutils-inetd

# 设置开机自启动
sudo systemctl enable inetutils-inetd

配置 Telnet 服务

# 检查 telnet 配置
sudo nano /etc/inetd.conf

# 确保包含这行(通常已存在):
# telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

重启服务

sudo systemctl restart inetutils-inetd

防火墙配置

# 允许 Telnet 通过防火墙
sudo ufw allow 23/tcp

测试 Telnet 连接

# 安装 telnet 客户端(如果没有)
sudo apt install -y telnet

# 连接测试
telnet localhost
# 或
telnet your_server_ip

安全建议

SSH 安全加固

# 1. 修改默认端口
sudo nano /etc/ssh/sshd_config
# 修改:Port 2222

# 2. 禁用 root 登录
# 修改:PermitRootLogin no

# 3. 只允许特定用户
# 添加:AllowUsers username1 username2

# 4. 启用密钥认证,禁用密码认证
# 修改:PasswordAuthentication no
# 修改:PubkeyAuthentication yes

# 5. 重启服务
sudo systemctl restart ssh

FTP 安全加固

# 1. 启用 TLS/SSL (FTPS)
sudo nano /etc/vsftpd.conf

# 添加以下配置:
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

# 2. 生成 SSL 证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/ssl/private/vsftpd.pem \
    -out /etc/ssl/private/vsftpd.pem

# 3. 在配置文件中指定证书路径
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

🔍 服务管理命令

统一管理命令

# 查看所有服务状态
sudo systemctl status ssh vsftpd inetutils-inetd

# 启动所有服务
sudo systemctl start ssh vsftpd inetutils-inetd

# 停止所有服务
sudo systemctl stop ssh vsftpd inetutils-inetd

# 重启所有服务
sudo systemctl restart ssh vsftpd inetutils-inetd

# 设置开机自启动
sudo systemctl enable ssh vsftpd inetutils-inetd

查看端口占用情况

# 查看所有监听端口
sudo netstat -tlnp

# 查看特定端口
sudo netstat -tlnp | grep :22   # SSH
sudo netstat -tlnp | grep :21   # FTP
sudo netstat -tlnp | grep :23   # Telnet

查看服务日志

# SSH 日志
sudo journalctl -u ssh -f

# FTP 日志
sudo journalctl -u vsftpd -f
sudo tail -f /var/log/vsftpd.log

# Telnet 日志
sudo journalctl -u inetutils-inetd -f

重要安全提醒

  1. SSH - 最安全,推荐用于远程管理
  2. SFTP/SCP - 安全的文件传输,推荐使用
  3. FTP - 传输不加密,仅在内网使用或配置FTPS
  4. Telnet - 完全不加密,仅用于调试或内网环境

建议优先级:SSH/SFTP > FTPS > FTP > Telnet


网站公告

今日签到

点亮在社区的每一天
去签到