ubuntu 安裝vsftpd

Post Reply
martin
Posts: 199
Joined: 2023年 Nov 8日, 15:50

ubuntu 安裝vsftpd

Post by martin »

Ubuntu 安裝及設定 vsftp
作者: 黃小蛙 · 最後更新 2022-12-14 · 發表於 2022-12-14 · Linux / 技術相關

好久沒有設定 FTP 了,最近遇到需要架設 FTP 的情況,這篇文章參考自:How to Setup FTP Server with VSFTPD on Ubuntu 20.04,小蛙把自己實際使用流程記錄下來。

小蛙收到的需求是要架設 FTP Sever ,建立一個特定使用帳號,並將該帳號的家目錄設定在特定路徑下,該文章完全符合小蛙的需求,照著做之後把過程中文化並記錄下來,開始吧!

目錄
安裝 vsftp
設定 vsftp
1. 存取限制
2. 允許上傳
3. 限制目錄切換
4. 被動連線 (PASV)
5. 限制登入
6. 傳輸加密
設定防火牆
建立及設定 FTP 使用者
1. 新增使用者
禁止 Shell 登入
安裝 vsftp
這邊使用較輕巧且設定簡單的 vsftp,透過以下指令進行安裝

sudo apt update
sudo apt install vsftpd
安裝完成後可輸入systemctl status vsftpd查看是否正常安裝及運作
Image 214.png
Image 214.png (33.51 KiB) Viewed 11487 times
設定 vsftp
vsftp 的設定檔在/etc/vsftpd.conf,小蛙這邊將進行以下 5 項設定,第 6 項傳輸加密部份因為沒有要用到,這邊就不另外提了。


sudo vim /etc/vsftpd.conf
1. 存取限制
設定禁止匿名者登入,以及本地帳號皆可使用

anonymous_enable=NO
local_enable=YES
2. 允許上傳
若要讓使用者上傳檔案,須將以下設定開啟

write_enable=YES
3. 限制目錄切換
基於安全性問題,想將使用者限制在特定區域,避免有心人士的非法行為,加上以下這兩項設定


chroot_local_user=YES
allow_writeable_chroot=YES
4. 被動連線 (PASV)
FTP Server 可以設定 (1) 主動模式 及 (2) 被動模式,在設定檔加入pasv_min_port及pasv_max_port兩個參數可限縮被動模式使用的 port 區間。

兩種模式各有優缺點,主動模式對伺服器來說比較安全,但對用戶端來說卻是可能帶來危險,因此很可能被用戶端的防火牆所阻擋了。使用被動模式雖然解決了用戶端的問題,但相對的伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。

pasv_min_port=30000
pasv_max_port=31000
5. 限制登入

除了上面設定的本機使用者可以登入外,也可以使用下面這些設定,僅讓清單上的使用者登入 FTP,我們將設定檔放在/etc/vsftpd.user_list內,檔案內一行為一個使用者帳號

userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
6. 傳輸加密
小蛙這次設定沒有要用到,可參考原文進行設定。

設定防火牆

設定好 vsftp 之後,安全起見還是要把防火牆設定起來,FTP 需要開啟 port 20, port 21 以及上面設定的被動模式 port 區間

sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
建立及設定 FTP 使用者
剛剛我們設定了只有/etc/vsftpd.user_list清單上的使用者才可以登入 FTP,現在就來新增一個 FTP 專用帳號

1. 新增使用者
使用adduser建立一個使用者 newftpuser (帳號換成自己要的),並且把該使用者加入到允許登入清單中

sudo adduser newftpuser
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
禁止 Shell 登入
由於只想讓該帳號使用 FTP 的功能,不希望該帳號透過 SSH 的方式登入進主機,新增一個名為 ftponly 的 Shell


echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
將我們建立的/bin/ftponly加入到 shell 清單中

echo "/bin/ftponly" | sudo tee -a /etc/shells

接著把 newftpuser 的 shell 指定為/bin/ftponly

sudo usermod newftpuser -s /bin/ftponly
完成後如果嘗試使用該帳號登入 SSH,就會看到以下訊息 ~
Image 213.png
Image 213.png (76.88 KiB) Viewed 11487 times
打完收工!同場加映,因為小蛙還要重新設定使用者家目錄,透過以下指令即可完成。
martin
Posts: 199
Joined: 2023年 Nov 8日, 15:50

CHAT GPT說明如何使用ubuntu 建立一個網頁伺服器,並說明如何用filezillar更新網頁

Post by martin »

步驟 1:安裝 Apache 網頁伺服器
Apache 是最常見的 Web 伺服器之一,適用於大多數網站。

更新系統套件庫

sudo apt update && sudo apt upgrade -y
安裝 Apache

sudo apt install apache2 -y
啟動並設定 Apache 服務

sudo systemctl start apache2
sudo systemctl enable apache2 # 開機自動啟動
確認 Apache 是否運行

sudo systemctl status apache2
若運行成功,應該會顯示 active (running)。

開啟瀏覽器並輸入伺服器 IP

本機測試: http://localhost/
遠端測試: http://你的伺服器IP/
如果看到 Apache2 Ubuntu Default Page,表示安裝成功。
步驟 2:開放防火牆 (若有啟用)
如果你的 Ubuntu 伺服器啟用了 UFW(Uncomplicated Firewall),請允許 HTTP 和 HTTPS 連線:

sudo ufw allow 'Apache Full'
確認防火牆規則:

sudo ufw status
步驟 3:設定網站根目錄
Apache 的預設網頁根目錄是 /var/www/html,我們可以在這個目錄放置網頁文件。

更改目錄權限

sudo chown -R $USER:$USER /var/www/html
建立測試網頁

echo "<h1>Hello, Ubuntu Web Server!</h1>" | sudo tee /var/www/html/index.html
然後在瀏覽器上重新載入 http://你的伺服器IP/,應該會看到這段 HTML 內容。

步驟 4:安裝並設定 FTP 伺服器(vsftpd)
FileZilla 需要 FTP 服務來傳輸檔案,因此我們安裝 vsftpd。

安裝 vsftpd

sudo apt install vsftpd -y
備份設定檔

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
修改 vsftpd 設定 使用 nano 編輯設定檔:

sudo nano /etc/vsftpd.conf
找到並確認以下設定:

ini
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
儲存並離開 (Ctrl + X → Y → Enter)。

重啟 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
步驟 5:建立 FTP 用戶
我們不建議使用 root 帳戶直接登入 FTP,應該建立專門的 FTP 使用者。

建立新使用者

sudo adduser ftpuser
系統會要求你輸入密碼和基本資訊。

設定 FTP 使用者的網站目錄

sudo usermod -d /var/www/html ftpuser
設定目錄權限

sudo chown -R ftpuser:ftpuser /var/www/html
步驟 6:使用 FileZilla 上傳與更新網頁
1. 下載與安裝 FileZilla
官方網站下載:https://filezilla-project.org/
安裝完成後,打開 FileZilla。
2. 連線到 Ubuntu 伺服器
在 「主機」 輸入伺服器 IP(例如 192.168.1.100)。
「使用者名稱」 輸入剛剛建立的 ftpuser。
「密碼」 輸入 ftpuser 設定的密碼。
「連接埠」 輸入 21(FTP 預設埠)。
點擊「快速連接」。
3. 上傳與更新網站
左側為本機電腦的檔案,右側為伺服器的 /var/www/html/。
拖曳新的 index.html 或其他檔案到右側,即可更新網站內容。
步驟 7:測試與驗證
在 FileZilla 上傳 index.html 後,打開瀏覽器。
輸入 http://你的伺服器IP/,應該能看到更新後的網頁。
額外優化
使用 SFTP 來加密傳輸
FTP 傳輸過程中密碼是明文,建議改用 SFTP:

連接時,主機輸入 sftp://你的伺服器IP,連接埠改為 22。
需要使用 SSH 帳戶(如 ftpuser)來連接。
開放 FTP 防火牆(如果 UFW 啟用)

sudo ufw allow 21/tcp
sudo ufw allow 20/tcp
這樣就完成了 Ubuntu 20.04 的網頁伺服器部署,並可以使用 FileZilla 上傳與更新網站!🚀
martin
Posts: 199
Joined: 2023年 Nov 8日, 15:50

Apache 將網站架設於子目錄

Post by martin »

一般而言,如果要在不同目錄架設網站的話,需要使用 virtual host,但這是在子網域下的設定。

example.com
sub.example.com
如果我們需要將網站建立在子目錄而不將網頁資料放在同一個資料夾裡呢?

example.com
example.com/sub/
a2ensite#
首先建立一個 apache site config,名字取名跟網站相關及可,放置於 /etc/apache2/site-available/。

sudo touch /etc/apache2/site-available/example.conf
接著輸入以下指令啟用設定欓

a2ensite example.conf
.conf#
下一步是撰寫設定欓

Alias /example /path/to/source
<Directory /path/to/source>
Order allow,deny
allow from all
Allowoverride All
</Directory>
如此一來,此資源將會被導向 /example

重啟#
最後請重啟 apache

sudo service apache2 restart
martin
Posts: 199
Joined: 2023年 Nov 8日, 15:50

[Vim 介面] — 基本 Vim 操作

Post by martin »

[Vim 介面] — 基本 Vim 操作


Vim
Vim 主要是使用模式的切換來進行輸入、移動游標、選取、複製及貼上等操作。

Vim 是在 Terminal 下使用,由於 Vim 是 Git 的預設編輯器,不少人是在使用 Git 的過程中意外進入 Vim 編輯器之後,不知道如何編輯內容。

在 Vim 主要常用的有幾個模式:Normal 模式以及 Insert 模式:


Terminal
使用命令列介面 Command line interface(CLI),會需要啟動電腦上內建的 Terminal 功能。

以下是啟動 Terminal 的方法:

Windows:按下「win」+「R」,跳出視窗後,輸入「CMD」。

MAC:按下「command」+「空白」,跳出視窗後,輸入「Terminal」。

進入 Vim 編輯器
[~/Programming/vim] $ vim
[~/Programming/vim] $ vi
打開 Terminal 輸入「Vi」或「Vim」,可以進入 Vim 編輯器。


在後面加上檔名,可以啟動 vim 編輯器,對該檔案進行編輯。

[~/Programming/vim] $ vim test.txt
[~/Programming/vim] $ vi test.txt
Insert 模式
Insert 模式可以對檔案編輯,輸入想要的內容。

在 Normal 模式下,輸入「i」、「a」、「o」可以進入 Insert 模式,並可以進行檔案的編輯。

也可以看見左下角有一個「 — INSERT — 」的顯示。


要從 Insert 模式回到 Normal 模式只要輸入「ESC」、「ctrl+[」就可以。

回到 Normal 模式後,可以看見左下角的「 — INSERT — 」提示消失了。


Normal 模式
進入到 Vim 編輯器後,最一開始會在 Normal 模式下。

可以切換成 Insert 模式,也可以存檔、離開、存檔然後離開。

存檔:輸入「:w」。

離開:輸入「:q」。

存檔然後離開:輸入「:wq」。
Post Reply