CentOS 7搭建基於虛擬使用者的FTP服務
在vsftpd服務中,虛擬使用者被預設作為匿名使用者進行處理以降低許可權,因此對應的配置項通常以anon_開頭。
CentOS 7下基本搭建FTP服務過程如下:
1、建立文字格式的使用者名稱/密碼列表
文字中奇數行為使用者名稱,偶數行為上一行中使用者所對應的密碼。如:執行以下操作新增兩個使用者mike、john,密碼分別為123,456
新建一個文字:
輸入使用者名稱和密碼:
2、建立Berkeley DB格式的資料庫檔案
有了文字格式的使用者名稱/密碼列表檔案後,以此檔案作為資料來源通過db_load工具建立Berkeley DB格式的資料庫檔案:
在db_load命令中,-f 選項用於指定資料來源檔案,-T 選項允許非Berkeley DB的應用程式使用從文字格式轉換的DB資料檔案, “ -t hash ” 選項指定讀取資料檔案的基本方法。
為了保證資料安全,可以將檔案許可權設定為 “600” ,避免資料外洩:
3、新增虛擬使用者的對映賬號、建立FTP根目錄:
如以下操作添加了一個名為 “test” 的系統使用者賬號(此賬號無須設定密碼及登入shell),並結合實際情況更改目錄許可權,指定的宿主目錄,預設是所有虛擬使用者的根目錄(可以最後對每個使用者的配置檔案單獨設定)
4、為虛擬使用者建立PAM認證檔案
vsftpd服務預設的PAM認證檔案位於 /etc/pam.d/vsftpd ,可以執行以下操作在/etc/pam.d目錄下建立一個名為vsftpd.vu的PAM認證檔案,用於虛擬使用者認證控制。
以上內容,通過 “ db=/etc/vsftpd/vusers”引數指定了要使用的虛擬使用者資料庫檔案位置(省略了.db副檔名)
5、為不同的虛擬使用者建立獨立的配置檔案(為了給不同虛擬使用者設定不同的許可權,若所有的虛擬使用者許可權一致,則可忽略這一步)
開啟後寫入相應許可權
儲存退出後,並以同樣的方式建立其他使用者的獨立的配置檔案。
6、更改 /etc/vsftpd/vsftpd.conf 的配置檔案如下:
以上各主要配置項欄位含義如下:
anonymous_enable=NO:禁止匿名使用者訪問;
local_enable=YES:允許本地系統使用者訪問;
write_enable=YES:啟用任何形式的寫入許可權,(如上傳、刪除檔案等)都需要開啟此項;
local_umask=022:設定本地使用者所上傳的預設許可權掩碼;
listen=NO:是否以獨立執行的方式監聽服務;
pam_service_name=vsftpd.vu:設定用於使用者認證的PAM檔案位置;
guest_username=test:指定對映的系統使用者名稱稱;
guest_enable=YES:是否啟用虛擬使用者;
allow_writeable_chroot=允許被限制使用者的主目錄具有寫許可權(此項必須寫入,否則可能會報錯)
anon_world_readable_only=NO:允許使用者下載目錄內容
anon_other_write_enable=YES:允許匿名使用者有其他寫入許可權,如重新命名、覆蓋及刪除檔案等;
user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬使用者獨立的配置檔案目錄
若都有一樣的許可權,直接在上面這個配置檔案寫入就好,若有不一樣的許可權,可以寫入到使用者單獨的配置檔案中,也可在在使用者單獨的配置檔案中指定新的根目錄
儲存退出配置檔案後,執行 systemctl start vsftpd
啟動ftp服務即可使用。
-----關於ftp所有配置項的詳細解釋 -----關於匿名使用者:
- anonymous_enable=YES:是否允許匿名訪問;
- anon_umask=022:設定匿名使用者所上傳檔案的預設許可權掩碼值(反掩碼);
- anon_root=/var/ftp:設定匿名使用者的FTP根目錄;
- anon_upload_enable=YES;是否允許匿名使用者上傳檔案;
- anon_mkdir_write_enable=YES:是否允許匿名使用者由建立目錄的寫入許可權;
- anon_other_write_enable=YES:是否允許匿名使用者有其他寫入許可權,如對檔案改名、覆蓋及刪除檔案等;
-----關於本地使用者:
- local_enable=YES:是否允許本地使用者訪問;
- local_umask=022:設定本地使用者所上傳檔案的預設許可權掩碼值(反掩碼);
- local_root=/var/ftp:設定本地使用者的FTP根目錄(預設為使用者的宿主目錄);
- chroot_local_user=YES:是否將FTP本地使用者禁錮在宿主目錄中;
- allow_writeable_chroot=YES:允許被限制使用者的主目錄具有寫許可權;
- local_max_rate=0:限制本地使用者的最大傳輸速率(0為無限制),單位為位元組/秒(B/s)
-----關於全域性配置:
- listen=NO: 是否以獨立執行的方式監聽服務;
- listen_address=0.0.0.0:設定監聽f t p服務的ip地址;
- listen_port=21:設定監聽ftp服務的埠號;
- write_enable=YES:啟用任何形式的寫入許可權,(如上傳、刪除檔案等)都需要開啟此項;
- download_enable=YES:是否允許下載檔案(建立僅限於瀏覽、上傳的FTP伺服器時,可將此項設定為“NO”);
- dirmessage_enable=YES:使用者切換進入目錄時顯示 “.message”檔案(如果已存在)的內容;
- xferlog_enable=YES:啟用xferlog日誌,預設記錄到 /var/log/xferlog;
- xferlog_std_format=YES:啟用標準的xferlog日誌格式,若禁用此項,將使用vsftpd自己的日誌格式;
- connect_from_port_20=YES:允許伺服器主動模式(從20埠建立資料連線);
- pasv_enable=NO:禁止被動模式連線;預設允許被動模式連線;
- pasv_max_port=24600:設定用於被動模式的伺服器最大埠號;
- pasv_min_port=24500:設定用於被動模式的伺服器最大埠號;
- pam_service_name=vsftpd.vu:設定用於使用者認證的PAM檔案位置(/etc/pam.d/目錄中對應的檔名);
- userlist_enable=YES:是否啟用userl_ist使用者列表檔案;
- userlist_deny=YES:是否禁用user_list列表檔案中的使用者賬號;
- max_clients=0:最多允許多少個客戶端同時連線(0為無限制);
- max_per_ip=0:對來自同一個ip地址的客戶端,最多允許多少個併發連線(0為無限制);
- tcp_wrappers=YES:是否啟用tcp_wrappers主機訪問控制;
-----關於虛擬使用者的配置項:
- guest_username=test:指定對映的系統使用者名稱稱;
- guest_enable=YES:是否啟用虛擬使用者;
- allow_writeable_chroot=允許被限制使用者的主目錄具有寫許可權(此項必須寫入,否則可能會報錯)
- anon_world_readable_only=NO:允許使用者下載目錄內容
- anon_other_write_enable=YES:允許匿名使用者有其他寫入許可權,如重新命名、覆蓋及刪除檔案等;
- user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬使用者獨立的配置檔案目錄;
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新連結地址: https://www.linuxidc.com/Linux/2019-03/157278.htm