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
英文地址,請注明出處:http://en.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 后…