1 搭建vsftp 服務器
前期准備:
1、用root 進入系統
2、使用命令 rpm -qa|grep vsftpd 查看系統是否安裝了ftp,若安裝了vsftp,使用這個命令會在屏幕上顯示vsftpd的版本
3、使用命令rpm -e vsftpd 即可卸載ftp
4、再使用rpm -qa|grep vsftpd 查看系統是否已刪除ftp,若刪除成功,屏幕上顯示vsftpd的版本
一:安裝vsftpd
查看是否已經安裝vsftpd
rpm -qa | grep vsftpd
如果沒有,就安裝,並設置開機啟動
yum -y install vsftpd
chkconfig vsftpd on
二、配置防火牆
打開/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代碼
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
保存和關閉文件,重啟防火牆
service iptables start
三、配置vsftpd服務器
1.默認的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本編輯器打開。
vi /etc/vsftpd/vsftpd.conf
2.修改配置信息
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改為
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
3.增加用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登錄SSH權限。
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser
4.設置用戶口令
passwd ftpuser
5、編輯文件chroot_list:
vi /etc/vsftpd/chroot_list
內容為ftp用戶名,每個用戶占一行,如:
peter
john
6、重新啟動vsftpd
service vsftpd restart
另外,如果覺得以后管理ftp用戶名嫌麻煩,可以使用centos官方發布的腳本管理。地址如下:(未用過)
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
出現的錯誤【這個還沒試過,有試過的老鐵留言通知下,謝謝!】
1、500 OOPS: cannot change directory
解決方法:
在終端輸入命令:
1.setsebool -P ftpd_disable_trans 1
2.service vsftpd restart
就OK了!
原因:這是因為服務器開啟了selinux,這限制了FTP的登錄。
上傳人員權限控制:
file_open_mode上傳檔案的權限,與chmod 所使用的數值相同。如果希望上傳的文件可以執行,設此值為0777。 local_umask=022 這是指定本地用戶上傳后的文件權限設置 umask是unix操作系統的概念,umask決定目錄和文件被創建時得到的初始權限 umask = 022 時,新建的目錄 權限是755,文件的權限是 644 umask = 077 時,新建的目錄 權限是700,文件的權限時 600 vsftpd的local_umask和anon_umask借鑒了它 默認情況下vsftp上傳之后文件的權限是600,目錄權限是700 想要修改上傳之后文件的權限,有兩種情況 如果使用vsftp的是本地用戶 則要修改配置文件中的 local_umask 的值 如果使用vsftp的是虛擬用戶 則要修改配置文件中的 anon_umask 的值
保持svftp 鏈接狀態:
配置 data_connection_timeout 參數值
注:本人遇到連接后無任何東西,解決方案:
getsebool -a|grep ftp
allow_ftpd_anon_write --> on allow_ftpd_full_access --> on //創建文件及文件夾 allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> on //顯示文件夾及文件 ftpd_connect_db --> off ftpd_use_passive_mode --> off httpd_enable_ftp_server --> off tftp_anon_write --> on
用如下命令把以上信息設為ON
setsebool allow_ftpd_full_access=1
參考:
http://www.linuxidc.com/Linux/2015-10/123848.htm
http://blog.csdn.net/tomyjohn/article/details/23250779
配置文件說明:
Local_enable=yes 允許使用本地用戶來登陸ftp 在/etc/vsftpd.ftpuser中可以增加想要阻止登陸ftp的用戶 下面有關linux中ftp的設置項: 限制用戶只能在自己的目錄中 Chroot_list_enable=yes 文件中的名單可以調用 Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用戶名vsftpd.conf的參數 程序代碼:Anonymous_enable=yes 允許匿名登陸 Dirmessage_enable=yes 切換目錄時,顯示目錄下.message的內容 Local_umask=022 FTP上本地的文件權限,默認是077 Connect_form_port_20=yes 啟用FTP數據端口的數據連接 Xferlog_enable=yes 激活上傳和下傳的日志 Xferlog_std_format=yes 使用標准的日志格式 Ftpd_banner=XXXXX 顯示歡迎信息 Pam_service_name=vsftpd 驗證方式 Listen=yes 獨立的VSFTPD服務器 Anon_upload_enable=yes 匿名用戶上傳權限 Anon_mkdir_write_enable=yes 創建目錄的同時可以在此目錄中上傳文件 Write_enable=yes 本地用戶寫的權限 Anon_other_write_enable=yes 匿名帳號可以有刪除的權限 Anon_world_readable_only=no 匿名用戶瀏覽權限 Ascii_upload_enable=yes 啟用上傳的ASCII傳輸方式 Ascii_download_enable=yes 啟用下載的ASCII傳輸方式 Banner_file=/var/vsftpd_banner_file 用戶連接后歡迎信息使用的是此文件中的相關信息 Idle_session_timeout=600(秒) 用戶會話空閑后10分鍾 Data_connection_timeout=120(秒) 將數據連接空閑2分鍾斷 Accept_timeout=60(秒) 將客戶端空閑1分鍾后斷 Connect_timeout=60(秒) 中斷1分鍾后又重新連接 Local_max_rate=50000(bite) 本地用戶傳輸率50K Anon_max_rate=30000(bite) 匿名用戶傳輸率30K Pasv_min_port=5000 將客戶端的數據連接端口改在 Pasv_max_port=6000 5000—6000之間 Max_clients=200 FTP的最大連接數 Max_per_ip=4 每IP的最大連接數 Listen_port=5555 從5555端口進行數據連接 Local_enble=yes 本地帳戶能夠登陸 Write_enable=no 本地帳戶登陸后無權刪除和修改文件 Chroot_local_user=yes 本地所有帳戶都只能在自家目錄 Chroot_list_enable=yes 文件中的名單可以調用 Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no Userlist_enable=yes 在指定的文件中的用戶不可以訪問 Userlist_deny=yes Userlist_file=/etc/vsftpd.user_list Banner_fail=/路徑/文件名 連接失敗時顯示文件中的內容 Ls_recurse_enable=no Async_abor_enable=yes one_process_model=yes Listen_address=10.2.2.2 將虛擬服務綁定到某端口 Guest_enable=yes 虛擬用戶可以登陸 Guest_username
user_config_dir 設置虛擬用戶的主配置文件
#添加讀取用戶配置目錄(注:本行配置默認沒有需要手動輸入)
user_config_dir=/etc/vsftpd/userconf [用於配置用戶主目錄]
設置用戶主目錄:https://www.cnblogs.com/alex-blog/articles/2652337.html