linux安裝ftp服務,設定ftp使用者登入的目錄,新增ftp訪問使用者,設定ftp 使用被動模式訪問
1. 作為ftp伺服器,需要啟動vsftpd服務
1)檢視本機是否安裝有ftp相關的rpm包
# rpm -qa|grep ftp如果沒有安裝,可以掛載redhat的安裝包(位於/home/ltbo99,自己的目錄),在packages目錄下查詢
# mount -o loop rhel-server-6.8-x86_64-***.iso /mnt2)安裝vsftpd服務# cd /mnt/packages
# find . -name 「ftp」
# rpm -ivh vsftpd-2.2.2-21.el6.x86_64.rpm啟動ftp伺服器端的服務(服務名為vsftpd)
# service vsftpd status # service vsftpd start修改啟動方式,改為系統啟動時自動啟動
chkconfig vsftpd on
檢視啟動方式:chkconfig –list|grep vsftpd ,只要2-5為開啟就能隨機啟動
3 vsftpd服務配置
/etc/vsftpd/vsftpd.conf------主配置檔案
/etc/rc.d/init.d/vsftpd ----啟動指令碼
/etc/pam.d/vsftpd -------pam認證檔案(此檔案中file=/etc/vsftpd/ftpusers欄位,指明阻止訪問的使用者來自/etc/vsftpd/ftpusers檔案中的使用者)
/etc/vsftpd/user_list--------禁止或允許使用vsftpd的使用者列表檔案。這個檔案中指定的使用者預設情況(即在/etc/vsftpd/vsftpd.conf中設定userlist_deny=yes)下也不能訪問ftp伺服器,在設定了userlist_deny=no時,僅允許user_list中指定的使用者訪問ftp伺服器。
/var/ftp
------------------匿名使用者主目錄 本地使用者主目錄為:/home/使用者主目錄,即登入後進入自己家目錄
/etc/logrotate.d/vsftpd.log
---vsftpd的日誌檔案
1) 檢視vsftpd.conf 配置#grep -v 「#」 /etc/vsftpd/vsftpd.conf
anonymous_enable=yes
//是否啟動匿名使用者登入
local_enable=yes
//是否允許本地使用者登入
write_enable=yes
//是否允許使用者寫入
local_umask=022
//使用者目錄下建立檔案預設許可權,此處預設許可權是777-022=755
dirmessage_enable=yes
xferlog_enable=yes
//是否使用日誌
connect_from_port_20=yes
xferlog_std_format=yes
listen=yes
//是否使用監聽,若不使用將使用超級守護程序
pam_service_name=vsftpd
userlist_enable=yes
//是否啟用用/etc/hosts.allow或/etc/hosts.deny檔案生效
//以上是預設的ftp引數,我們還需新增以下引數來完成配置:
chroot_local_user=yes
//是否禁止本地使用者離開自己的主目錄
xferlog_file=/var/log/vsftpd.log
//設定ftp的日誌路徑
修改 local_root (本地使用者),anon_root(匿名使用者)來配置 ftp 使用者的登陸家目錄。
設定目錄許可權
# chmod -r 755 /home/user注:表示將整個/home/user目錄與其中的檔案和子目錄的許可權都設定為-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
2) 設定ftp訪問使用者
(1) 新增使用者 設定使用者主目錄 ,-s /sbin/nologin表示使用者不能使用shell命令登陸,admin使用者名稱
# useradd -s /sbin/nologin admin刪除使用者命令 userdel -r admin# passwd admin 輸入兩次密碼(密碼:123)
(2)/etc/vsftpd/user_list 最後一行新增admin使用者名稱
(3)vsftpd下錯誤之:500 oops 500 oops: child died.
解決辦法:
1、 檢視 selinux 的狀態: sestatus -b | grep ftp
2、 在出現的結果中可以看到
ftp_home_dir off
tftpd_disable_trans off之類。我們現在只要把其中之一設定為on就可以啦。
3、 setsebool -p ftpd_disable_trans on 或者 setsebool -p ftp_home_dir on 若還是沒用 setsebool allow_ftpd_full_access on
下面是常用的布林變數:
allow_ftpd_anon_write //關閉這個布林變數會阻止 vsftpd 讀取 public_content_rw_t //型別的檔案和目錄。如果允許使用者通過 ftp 上傳檔案。必須開放這個布林變數。
allow_ftpd_full_access //當開放這個布林變數時只有 linux(dac)的許可權來控制訪問,通過驗證的使用者可以讀取和寫入標記為 public_content_t 或 public_content_rw_t 型別的檔案。
allow_ftpd_use_cif //當開放這個布林變數時 vsftpd 允許 cifs_t 型別的檔案和目錄,因此這個布林變數啟用,可以讓你的 ftp 伺服器可以使用 samba 檔案系統。
allow_ftpd_use_nfs vsftpd //的當開放這個布林變數時 vsftpd 允許 nfs_t 型別的檔案和目錄,因此這個布林變數啟用,可以讓你的 ftp 伺服器可以使用 nfs 檔案系統。
ftp_home_dir //當開放這個布林變數時認證使用者可以讀寫自己的主目錄中的檔案。
ftpd_connect_db //當開放這個布林變數時允許 vsftpd 連線資料庫。
httpd_enable_ftp_server //當開放這個布林變數時容許的 httpd 作為 ftp 伺服器,並且監聽 ftp 埠。
tftp_anon_write //當開放這個布林變數時允許 tftp 訪問乙個公共的目錄。
禁用selinux
#vi /etc/sysconfig/selinuxselinux=enforcing –> selinux=disabled
但是這個修改需要重新啟動計算機,reboot 一下。(執行setenforce 0 或者重啟)
4、 重啟vsftpd: service vsftpd restart
5、 查詢當前檔案屬性:
#ls – dz /var/ftp/pub3)ftp 使用被動模式訪問
載入模組ip_conntrack_ftp,優點:不影響ftp的配置,缺點:客戶端會感覺到連線有些延遲。
在/etc/sysconfig/iptables-config中新增:iptables_modules=」ip_conntrack_ftp」
載入模組:/sbin/modprobe ip_conntrack_ftp
開機啟動,在/etc/rc.local新增:/sbin/modprobe ip_conntrack_ftp
參考:linux系統ftp伺服器配置:vsftp虛擬使用者與主動被動模式用法 中 ftp的主動埠與被動埠配置
為ftp服務開啟21埠
#vim /etc/sysconfig/iptables4)解除安裝新增 -a input -m state –state new -m tcp -p tcp –dport 21 -j accept
-a input -m state –state new -m udp -p udp –dport 21 -j accept
# /etc/init.d/iptables restart 重啟生效
rpm -qa vsfptd 查詢
rpm -e 刪除 vsftpd (逐一刪除上面的查詢結果)
man rpm
5)測試
windows 匿名訪問ftp 檔案瀏覽器的位址列:
linux 搭建ftp伺服器
工具 linux虛擬機器 securecrt filezilla 1 安裝vsftpd元件 命令 yum y install vsftpd 2 新增賬戶及密碼 1 新增賬戶命令 useradd ftpuser 登入後預設的路徑為 home ftpuser.2 新增密碼命令 passwd ftpuse...
Linux搭建FTP伺服器
第一章 介紹 主要介紹在linux中搭建ftp伺服器的過程,需要掌握的要點是配置檔案的合理配置。第二章 安裝ftp 執行命令 yum y install vsftpd 第三章 使用 1 建立ftp連線使用者 useradd ftpusr 2 設定ftp使用者密碼 passwd ftpusr 3 建立...
linux搭建ftp伺服器
安裝 vsftp軟體 關閉firewall和selinux setenforce 0 設定selinux 成為permissive模式 關閉selinux setenforce 1 設定selinux 成為enforcing模式 開啟selinux 或者修改配置 vi etc selinux con...