当前位置: 首页 > news >正文

Ubuntu 22.04 网络服务安装配置

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

服务端口对照表

服务端口安全性用途
SSH22✅ 安全远程登录、文件传输
FTP21⚠️ 不安全文件传输
Telnet23❌ 不安全远程登录(调试用)
SFTP22✅ 安全基于SSH的文件传输
SCP22✅ 安全基于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

http://www.xdnf.cn/news/1460809.html

相关文章:

  • 硬件开发1-51单片机3-串口
  • 三阶Bezier曲线曲率极值及对应的u的计算方法
  • LeetCode 994 腐烂的橘子
  • 【C语言】深入理解指针(4)
  • 【LeetCode热题100道笔记】旋转图像
  • pycharm解释器使用anaconda建立的虚拟环境里面的python,无需系统里面安装python。
  • MySQL复制技术的发展历程
  • Spring启示录
  • 从传统CNN到残差网络:用PyTorch实现更强大的图像分类模型
  • BenTsao本草-中文医学大模型
  • 【算法--链表】61.旋转链表--通俗讲解
  • 【Day 44】Shell-Git版本控制器
  • 【Python】数据可视化之分类图
  • Day2p2 夏暮客的Python之路
  • 数学建模25c
  • [数据结构] 链表
  • 深度学习之第七课卷积神经网络 (CNN)调整学习率
  • MySQL子查询的分类讲解与实战
  • 从基础到实践:Web核心概念与Nginx入门全解析
  • 前端url参数拼接和提取
  • 嵌入式基础 -- I²C 信号与位层规则
  • Swift 解法详解:LeetCode 371《两整数之和》
  • 漏洞绕过方式
  • 从零到一:人工智能应用技术完全学习指南与未来展望
  • ClickHouse 分片、 Distributed 表、副本机制
  • flowable基础入门
  • 【c/c++】深度DFS
  • MATLAB平台实现人口预测和GDP预测
  • 美国教授提出的布鲁姆法,结合AI直击学术科研痛点,写作与创新效率直接翻倍!
  • 漫谈《数字图像处理》之实时美颜技术