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.pswp.cn/diannao/97949.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity知识分享】Unity实现全局监听键鼠调用

1、实现该功能前,优先学习Unity接入dll调用Window系统接口教程 【Unity知识分享】Unity接入dll调用Window系统接口 2、初始化动态连接库后,进行脚本功能实现 2.1 创建脚本KeyBoardHook.h和KeyBoardHook.cpp,实现功能如下 KeyBoardHook.h …

深度学习篇---MNIST:手写数字数据集

下面我将详细介绍使用 PyTorch 处理 MNIST 手写数字数据集的完整流程,包括数据加载、模型定义、训练和评估,并解释每一行代码的含义和注意事项。整个流程可以分为五个主要步骤:准备工作、数据加载与预处理、模型定义、模型训练和模型评估。# …

k8s集群搭建(二)-------- 集群搭建

安装 containerd 需要在集群内的每个节点上都安装容器运行时&#xff08;containerd runtime&#xff09;&#xff0c;这个软件是负责运行容器的软件。 1. 启动 ipv4 数据包转发 # 设置所需的 sysctl 参数&#xff0c;参数在重新启动后保持不变 cat <<EOF | sudo tee …

【Docker】P1 前言:容器化技术发展之路

目录容器发展之路物理服务器时代&#xff1a;一机一应用的局限虚拟化时代&#xff1a;突破与局限并存容器化时代&#xff1a;轻量级的革新技术演进的价值体现各位&#xff0c;欢迎来到容器化时代。 容器发展之路 现代业务的核心是应用程序&#xff08;Application&#xff09;…

WPF依赖属性和依赖属性的包装器:

依赖属性是WPF&#xff08;Windows Presentation Foundation&#xff09;中的一种特殊类型的属性&#xff0c;特别适用于内存使用优化和属性值继承。依赖属性的定义包括以下几个步骤&#xff1a; 使用 DependencyProperty.Register 方法注册依赖属性。 该方法需要四个参数&…

图生图算法

图生图算法研究细分&#xff1a;技术演进、应用与争议 1. 基于GAN的传统图生图方法 定义&#xff1a;利用生成对抗网络&#xff08;GAN&#xff09;将输入图像转换为目标域图像&#xff08;如语义图→照片、草图→彩图&#xff09;。关键发展与趋势&#xff1a; Pix2Pix&#…

Go 自建库的使用教程与测试

附加一个Go库的实现&#xff0c;相较于Python&#xff0c;Go的实现更较为日常&#xff0c;不需要额外增加setup.py类的文件去额外定义,计算和并发的性能更加。 1. 创建 Go 模块项目结构 首先创建完整的项目结构&#xff1a; gomathlib/ ├── go.mod ├── go.sum ├── cor…

What is a prototype network in few-shot learning?

A prototype network is a method used in few-shot learning to classify new data points when only a small number of labeled examples (the “shots”) are available per class. It works by creating a representative “prototype” for each class, which is typical…

Linux中用于线程/进程同步的核心函数——`sem_wait`函数

<摘要> sem_wait 是 POSIX 信号量操作函数&#xff0c;用于对信号量执行 P 操作&#xff08;等待、获取&#xff09;。它的核心功能是原子地将信号量的值减 1。如果信号量的值大于 0&#xff0c;则减 1 并立即返回&#xff1b;如果信号量的值为 0&#xff0c;则调用线程&…

25高教社杯数模国赛【B题超高质量思路+问题分析】

注&#xff1a;本内容由”数模加油站“ 原创出品&#xff0c;虽无偿分享&#xff0c;但创作不易。 欢迎参考teach&#xff0c;但请勿抄袭、盗卖或商用。 B 题 碳化硅外延层厚度的确定碳化硅作为一种新兴的第三代半导体材料&#xff0c;以其优越的综合性能表现正在受到越来越多…

【Linux篇章】再续传输层协议UDP :从低可靠到极速传输的协议重生之路,揭秘无连接通信的二次进化密码!

&#x1f4cc;本篇摘要&#xff1a; 本篇将承接上次的UDP系列网络编程&#xff0c;来深入认识下UDP协议的结构&#xff0c;特性&#xff0c;底层原理&#xff0c;注意事项及应用场景&#xff01; &#x1f3e0;欢迎拜访&#x1f3e0;&#xff1a;点击进入博主主页 &#x1f4c…

《A Study of Probabilistic Password Models》(IEEE SP 2014)——论文阅读

提出更高效的密码评估工具&#xff0c;将统计语言建模技术引入密码建模&#xff0c;系统评估各类概率密码模型性能&#xff0c;打破PCFGw的 “最优模型” 认知。一、研究背景当前研究存在两大关键问题&#xff1a;一是主流的 “猜测数图” 计算成本极高&#xff0c;且难以覆盖强…

校园外卖点餐系统(代码+数据库+LW)

摘要 随着校园生活节奏的加快&#xff0c;学生对外卖的需求日益增长。然而&#xff0c;传统的外卖服务存在诸多不便&#xff0c;如配送时间长、菜品选择有限、信息更新不及时等。为解决这些问题&#xff0c;本研究开发了一款校园外卖点餐系统&#xff0c;采用前端 Vue、后端 S…

友思特案例 | 食品行业视觉检测案例集锦(三)

食品制造质量检测对保障消费者安全和产品质量稳定至关重要&#xff0c;覆盖原材料至成品全阶段&#xff0c;含过程中检测与成品包装检测。近年人工智能深度学习及自动化系统正日益融入食品生产。本篇文章将介绍案例三&#xff1a;友思特Neuro-T深度学习平台进行面饼质量检测。在…

SQLynx 3.7 发布:数据库管理工具的性能与交互双重进化

目录 &#x1f511; 核心功能更新 1. 单页百万级数据展示 2. 更安全的数据更新与删除机制 3. 更智能的 SQL 代码提示 4. 新增物化视图与外表支持 5. 数据库搜索与过滤功能重构 ⚡ 总结与思考 在大数据与云原生应用快速发展的今天&#xff0c;数据库管理工具不仅要“能用…

10G网速不是梦!5G-A如何“榨干”毫米波,跑出比5G快10倍的速度?

5G-A&#xff08;5G-Advanced&#xff09;网络技术已经在中国福建省厦门市软件园成功实现万兆&#xff08;10Gbps&#xff09;速率验证&#xff0c;标志着我国正式进入5G增强版商用阶段。这一突破性成果不仅验证了5G-A技术的可行性&#xff0c;也为6G网络的发展奠定了坚实基础。…

Linux笔记---UDP套接字实战:简易聊天室

1. 项目需求分析 我们要设计的是一个简单的匿名聊天室&#xff0c;用户的客户端要求用户输入自己的昵称之后即可在一个公共的群聊当中聊天。 为了简单起见&#xff0c;我们设计用户在终端当中与客户端交互&#xff0c;而在一个文件当中显式群聊信息&#xff1a; 当用户输入的…

RTP打包与解包全解析:从RFC规范到跨平台轻量级RTSP服务和低延迟RTSP播放器实现

引言 在实时音视频系统中&#xff0c;RTSP&#xff08;Real-Time Streaming Protocol&#xff09;负责会话与控制&#xff0c;而 RTP&#xff08;Real-time Transport Protocol&#xff09;负责媒体数据承载。开发者在实现跨平台、低延迟的 RTSP 播放器或轻量级 RTSP 服务时&a…

Ubuntu 用户和用户组

一、 Linux 用户linux 是一个多用户操作系统&#xff0c;不同的用户拥有不同的权限&#xff0c;可以查看和操作不同的文件。 Ubuntu 有三种用户1、初次创建的用户2、root 用户---上帝3、普通用户初次创建的用户权限比普通用户要多&#xff0c;但是没有 root 用户多。Linux 用户…

FastGPT社区版大语言模型知识库、Agent开源项目推荐

​ FastGPT 项目说明 项目概述 FastGPT 是一个基于大语言模型&#xff08;LLM&#xff09;的知识库问答系统&#xff0c;提供开箱即用的数据处理和模型调用能力&#xff0c;支持通过可视化工作流编排实现复杂问答场景。 技术架构 前端: Next.js TypeScript Chakra UI 后…