- 安裝完 Ubuntu Server 版作業系統後,以系統帳號/密碼登入Ubuntu系統
sysadmin passwd : yuanxxxx
MySQL passwd : mysqlxxxx
- Ubuntu Server 主機 IP 建議使用固定 IP,不建議讓個人的 IP分享器自動指定 IP。
- 確認 Ubuntu Server 主機是否能連線到網際網路 : ping www.google.com;若無法連上網路,則必須修改 2 個設定檔
sudo vi /etc/network/interfaces
sudo vi /etc/resolv.conf
- 若還是連不上,則必須檢查 ISP-DNS主機 IP 是否輸入正確 或 Ubuntu Server 主機 IP與個人的 IP分享器 (My AP : ZyXEL P-334WT) 設定上是否有相衝突...等。例如:個人的AP是從 192.168.1.31開始動態指定 IP 給家裡網路的任一電腦,而你卻設定 Ubuntu Server 主機 IP=192.168.3.3,這樣就不行了。
- 確定可以連上網路後,您可以加入喜愛的台灣區的「套件庫伺服主機位置」
sudo vi /etc/apt/sources.list
- 最後依序輸入以下指令安裝「vsftpd」、「fail2ban」 :
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vsftpd fail2ban
二、vsftpd.conf 設定 (sudo vi /etc/vsftpd.conf)
1. 參考網站:
- 鳥哥的 Linux 私房菜--vsftpd
- Samiux's Blog--HOWTO : Home made NAS server with Ubuntu 8.04.1 – Part III
- 建造基於 Ubuntu 的 NAS伺服器 (LAMP,ftp,Samba)
2. 設定原則(我的設定):
- 原則 (1): 允許匿名用戶登入,不允許匿名用戶上傳資料與建立目錄,但允許匿名用戶下載資料。
- 原則 (2):允許本地用戶登入,而且只有特定的人(只有chroot_list內的本地用戶)不被 chroot.
- 最大同時上線人數限制為 10 人,且同一 IP 來源最大連線數量為 2 個
- 使用本地的時間,而非 GMT 時間
3. 參數設定(我的設定):
【 匿名用戶設定 】
- 允許匿名用戶登入:anonymous_enable=YES (預設是 NO)
- 不允許匿名用戶上傳資料: #anon_upload_enable=YES(加註解=使用預設值)
- 不允許匿名用戶建立目錄: #anon_mkdir_write_enable=YES (加註解=使用預設值)
【 本地用戶設定 / 本地用戶設定檔在 /etc/passwd 】
- 允許本地用戶登入:local_enable=YES
- 本地用戶上傳檔案,該檔案的預設權限:local_umask=022
- (NOTES : 以下三個參數都設定成 YES 表示:只有chroot_list內的使用者才不會被限制)
- 設定本地用戶限制在自己的家目錄之內:chroot_local_user=YES
- 設定某些本地用戶限制在他們自己的家目錄內:chroot_list_enable=YES
- 規劃那一個本地用戶會被限制在自己的家目錄內:chroot_list_file=/etc/vsftpd.chroot_list
【 全域設定 / 針對所有使用者的設定值 】
- vsftpd 是以 standalone 的方式來啟動的:listen=YES (預設是 NO)
- 允許使用者上傳資料:write_enable=YES
- 當使用者進入某個目錄時,會顯示該目錄需要注意的內容:dirmessage_enable=YES (預設是 NO= 不顯示)
- 使用本地時間:use_localtime=YES(預設是 NO= GMT / 格林威治時間)
- 啟用上傳/下載日誌記錄:xferlog_enable=YES
- 主動式連線的埠口:connect_from_port_20=YES
- 設定最大同時上線人數:max_clients=10
- 設定同一 IP 來源最大連線數量:max_per_ip=2
- 設定歡迎文字訊息:ftpd_banner=[歡迎文字訊息]
- sudo /etc/init.d/vsftpd restart
三、為了能夠讓家裡多部電腦可以同時上網,原本就架設了一個 IP分享器 (My AP : ZyXEL P-334WT)。該台AP的設定我是用: PPPoE+動態IP,有設置無線網路WEP金鑰,並將 ISP (Seednet) 給的帳號、密碼輸入在 AP裡面,這樣家裡任一台電腦的網卡只要設定 dhcp, 就可以免撥接程式上網囉~
而架了 Ubuntu Server 主機後,我是設定一個固定 IP 給 Server 主機 (IP=192.168.1.1xx ),而且並沒有在 AP裡面做特別設定, 這台 AP 好像知道這個 IP 已經被使用了,所以它也不會指定該 IP給家裡其他的電腦使用;一切都ok,我可以用筆電的 FileZilla Client 程式上傳/下載資料到 Ubuntu 主機.....不過,這只能說是 Intranet FTP Server.
四、從網際網路 Internet 連線登入到 Ubuntu FTP Server 主機
接下來,我想要讓這台 Ubuntu FTP Server 可以像中山、義守等大學FTP一樣, 可以供許多人從網際網路 Internet 連線登入這台 Ubuntu FTP Server 主機 上傳/下載資料。
一開始我以為使用下列網址查詢本機"外部 IP Address"後,並將外部 IP 輸入至 /etc/network/interfaces ,且重新啟動網卡後就能夠利用 FTP Client 從"Internet"上傳/下載資料,但 很不幸的, 就是不行。
>>查詢本機"外部 IP Address"網址:http://dir.twseo.org/ip-check.php
經測試發現,當我重啟 AP, 再用筆電輸入上述網址查詢本機"外部 IP Address"時,咦 外部 IP 會變動;我也從網路上找到該台 AP 的設定手冊來進行設定,可是都無法成功。
最後 我決定向 ISP 申請"固定IP" (PPPoE+固定IP 模式),這個很容易申請,只要進入 ISP業者網站線上申請即可。YES! 我得到一個固定 IP=221.xxx.yyy.zzz;接著 必須在 AP重新設定帳號(因為根據 ISP-Seednet 規定,若要使用固定連線,則 「T帳號」的後面必須加「#」),儲存設定並重啟 AP後,您可以請您的朋友試著從他的電腦 PING 這個固定 IP,若正常,表示該台 AP已擁有固定IP。
若一切ok,最後需再進入 IP分享器 (My AP : ZyXEL P-334WT) 設定 SUA/NAT。如此才能讓外部電腦從網際網路 Internet 連線(到AP, 再由AP轉址)登入這台 Ubuntu FTP Server 主機。(WAN / 外部電腦<-->個人的 IP分享器<-->內部 Server)
五、建立一些使用者帳號,允許他們可以從 Ubuntu FTP Server 公用下載資料區 download資料 (但限制上傳)
- 增加一個 Linux 使用者 [tim]:sudo adduser tim
- 這時候您若用 FileZilla Client / tim 帳號登入時,你會發現 tim用戶只能看到根目錄(其實是 tim用戶被限制在自己的家目錄 /home/tim/)
- 若您想要 tim用戶不被限制在自己的家目錄,則您必須將 tim 加入 /etc/vsftpd.chroot_list 中。
六、如何加大 Ubuntu 主機硬碟容量 (mount other HDD to ftp/file Server)
1. 參考網站:
2. 實作目標:將一顆 30GB 硬碟加入 Ubuntu Server
- 主機板 Primary IDE / Master 的裝置與作用: : Maxtor 80GB ..for Ubuntu Server OS.
- 主機板 Primary IDE / Slave 的裝置與作用: : DVD RW ROM.
- 主機板 Secondary IDE / Master 的裝置與作用: : WD 30GB ..NEW HDD.
- 若硬體安裝正確,您可以在 BIOS 看到新的硬碟裝置。
- 最好先用 Disk 工具 (例如:spfdisk, MHDD)進行磁碟掃描,個人偏好 spfdisk.
- >>進入 Ubuntu Server..
- 首先,我們必須找出硬碟代號:ls -l /dev/disk/ (by-id, by-path, by-uuid), 結果顯示如下:
- 或者也可以使用:ll /dev/sd* 列出所有硬碟代號。這時候,得知新硬碟代號為「sdb」
- 列出所有硬碟的資訊 (大小、磁柱、分割區partition..等):sudo fdisk -l
- 硬碟切割:sudo fdisk /dev/sdb ,>>開始對新硬碟進行切割 >>如下圖:
- 因為我將整顆 30GB硬碟全部給一個 Partition, 所以只會看到「sdb1」;接下來就要格式化硬碟。
- 格式化硬碟 (make filesystem, 「mkfs」/「mke2fs」),我們使用簡單的 '' 指令就好。
- 在使用 mkfs 指令前,先看看 mkfs 指令支援哪些檔案格式:sudo mkfs [tab][tab]
- 將新建好的 partition 格式化 ext4 格式:sudo mkfs -t ext4 /dev/sdb1
- 磁碟檢查:fsck -C -f /dev/sdb1 (注意:fsck 前必須卸載磁碟;若檔案系統無太大問題,也不要輕易執行此命令)
- 建立掛載點資料夾:sudo mkdir /mnt/HDD30G
- 掛載 sdb1 測試:mount /dev/sdb1 /mnt/HDD30G >> 掛載成功後,可以用指令 df (display filesystem -h) 確認是否掛載ok。df 另一個作用是查看根目錄的剩餘容量 (df /)。
- 重開機後,您會發現剛剛已經掛載的 sdb1 並不會自動地被 mount 起來;您必須修改 /etc/fstab 檔案 (fstab=filesystem table),如下圖:
- 使用 FileZilla Client 登入 Ubuntu FTP Server,測試是否可以上傳檔案到新的硬碟。若無法上傳,您必須先檢查登入帳號是否有該目錄 (/mnt/HDD30G) 的存取權限。(chgrp,chown,chmod)
~Done~
沒有留言:
張貼留言