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) '
- 生產環境建議:只啟用 SSH,禁用 FTP 和 Telnet
- FTP 安全:配置 FTPS (FTP over SSL) 加密傳輸
- 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
重要安全提醒
- SSH - 最安全,推薦用于遠程管理
- SFTP/SCP - 安全的文件傳輸,推薦使用
- FTP - 傳輸不加密,僅在內網使用或配置FTPS
- Telnet - 完全不加密,僅用于調試或內網環境
建議優先級:SSH/SFTP > FTPS > FTP > Telnet