Linux - FTP 教學
在這裡記錄一下 Linux CentOS7 安裝 FTP 以及如何建立使用者,並且限制使用者只能訪問家目錄。
安裝 vsftpd
執行以下指令安裝 vsfftpd
yum install vsftpd -y
安裝完畢,接著將 vsftpd 啟動及加入開機自動執行
service vsftpd start
service vsftpd enable
建立用戶
更新用戶,調整預設登入目錄
sudo useradd --home-dir /var/mywebsite mywebsite_admin
手動限制 SSH 連線
usermod -s /sbin/nologin mywebsite
或者一次新增使用者及限制SSH連線,預設home目錄為 /etc/home/使用者名稱
useradd -s /sbin/nologin mywebsite
設定密碼
passwd mywebsite
以上設定完畢,就完成基本建立 FTP 用戶,以下是需要調整FTP用戶設定的相關做法
變更預設登入 Home 目錄位置
usermod -m -d /var/home/mywebsite mywebsite
查看用戶
cat /etc/passwd
刪除用戶
userdel isclinic
修改 vsftpd 設定
在 vsftpd 預設是允許匿名用戶登入,相當危險,因此,新增使用者後,在開通防火牆之前,必需要調整 vsftpd 設定。
開啟設定檔案
vim /etc/vsftpd/vsftpd.conf
以下是設定的範例:q
anonymous_enable=NO
# 啟用一般帳號登入
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
# 限制閒置多少秒會自動斷線
idle_session_timeout=600
chroot_local_user=YES
# 限制系統用戶,並且將他們鎖定在home目錄
chroot_list_enable=YES
# 限制更多系统用户(需要手動要建立 chroot_list 並且把所有用戶加入)
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
# 設定只有清單內的使用者可以登入
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
allow_writeable_chroot=YES
# 1個IP可以連線的數量
max_per_ip=3
# 限制下載上傳頻寬 (300k = 300000)
local_max_rate=300000
chroot_list 這個目錄預設是不存在的,
因此,要手動建立 chroot_list 並且把所有用戶加入
touch /etc/vsftpd/chroot_list
cut -d : -f 1 /etc/passwd>>/etc/vsftpd/chroot_list
開啟防火牆
firewall-cmd --zone=public --add-port=10221-10231/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
fiewall-cmd --reload
檢查 ftpusers ,這裡面放置的是限制登入 ftp 的名單,通常都會把重要的帳號加入,禁止FTP連線。
請確保需使用 FTP 連線的帳戶沒有被加入 ftpusers
vim ftpusers
設定 pam.d
開啟 pam.d/vsftpd
vim /etc/pam.d/vsftpd
將以下的內容 将```auth
接著,重啟 vsftpd
讓使用者取得 home 以外的目錄
在使用者的家目錄,透過 mounted 來掛載外部目錄進來
CVT2HUGO: required pam_shells.so``` 修改成 ```auth
mkdir mounted
mount --bind <dir1> mounted
CVT2HUGO: required pam_nologin.so```
限制FTP連線IP
首先開啟 host.deny 設定禁止連線IP
vim /etc/hosts.deny
加入以下這行
vsftpd:all:Deny
開啟 host.allow 設定允許連線IP
vim /etc/hosts.allow
加入允許連線IP,例如 192.168.3.22, 192.168.9.x 與 192.168.8.x 網段
vsftpd:192.168.3.22:Allow
vsftpd:192.168.9.*:Allow
vsftpd:192.168.8.*:Allow
或者可以這樣設定
vsftpd:192.168.3.22 192.168.9.0/24 192.168.8.0/24