建立安全的 FTP 伺服器 (Wu-Ftp)
本文會講述一些範例,令您的 FTP 伺服器更加安全。例如,標準的安裝允許匿名登入,因此所有人都可以在您的伺服器隱藏很多廢物。
只要跟隨以下步驟,您就可以為每個使用者在伺服器上設定家目錄,而他們不能瀏覽自己目錄以外的東西。
1. 匿名登入
修改/etc/ftpaccess 檔案,刪除所有匿名的記錄。
以下是 ftpaccess 檔案的範例:
/etc/ftpaccess |
|
2. 新增使用者
首先建立一個特別的使用者群組,您可以將所有使用者放在這群組內。例如 FTPgroup
>> groupadd FTPgroup
現在您可以新增一些使用者:
>> adduser -g FTPgroup "username"
(如果您選擇不讓這些使用者存取 shell,請看第四段。)
>> passwd "username"
確定將 "bin", "etc" 和 "lib" 及當中的檔案由 /home/ftp 或 /var/ftp 複製至使用者的家目錄。可使用cp -R 指令如下:
>> cp -R /var/ftp/pub /home/username
在 "pub" 目錄建立一個叫 Download 和 Upload 的目錄,讓使用者上載及下載檔案。
>> mkdir /home/username/pub/download
>> mkdir /home/username/pub/upload
確定在這些剛建立的目錄上設定權限和擁有權。
>> chown username:FTPgroup upload download
>> chmod 500 /home/username/pub/download
>> chmod 700 /home/username/pub/upload
這樣,使用者在上載目錄便有讀取/寫入權限,而下載目錄就有讀取權限。
3. 讓使用者只能在自己的家目錄
要讓使用者只能在自己的家目錄,您要在 ftpaccess 檔案新增一個 "guestgroup FTPgroup"
。
以您喜歡的文字編輯器開啟 /etc/ftpacces並加入:
guestgroup FTPgroup
4. 不能存取 shell
如果您選擇拒絕讓使用者透過 telnet 或 ssh 存取 shell,您需要做的就是建立一個假的 shell,改名為NoAccess
,並將它放在 /etc/目錄下。
>> touch /etc/NoAccess
以編輯器開啟檔案,加上類似以下的東西:
/etc/NoAccess |
#!/bin/sh |
儲存檔案並確定可以執行 shell:
>> chmod +x /etc/NoAccess.
完成後,修改/etc/shells 檔案,並加入剛建立的 shell。
/ etc/shells 檔案如下:
/etc/shells |
/bin/bash2 |
如果您手動新增使用者而沒有使用我的 shell-script,就需要修改 /etc/passwd ,並為使用者更改
shell。
記錄會類似下列這樣:
username:x:100:100::/home/username:/bin/bash
更改 /bin/bash to /etc/NoAccess 便可。
如果一切完成而您選擇手動新增使用者,可用以下指令將使用者新增至適當的 shell:
>> adduser -g FTPgroup -s /etc/NoAcces "username"
為了令使用者的建立自動化,我做了一個細小的 shell-script,可以新增使用者至 FTPgroup ,設定 shell,建立上載和下載目錄,以及從 FTP 目錄複製所需的目錄。
ftpuseradd_script |
#!/usr/bin/perl |
您不可以在 windows 下建立文字檔案,然後複製到伺服器,這樣不能正確運作的。
建立一個叫 useradd 的檔案,加入幾行資料,在指令行執行檔案,但首先要設定權限如下:
>> chmod +x useradd
>> chown root:root useradd
接著:
>> /usr/local/scripts/useradd
或您想設定的檔案路徑,開始自動新增使用者。 這就完成了。
留言列表