Linux搭建FTP伺服器

2021-08-07 16:07:36 字數 4714 閱讀 7435

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 /mnt

# cd /mnt/packages

# find . -name 「ftp」

2)安裝vsftpd服務
# 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

# passwd admin 輸入兩次密碼(密碼:123)

刪除使用者命令 userdel -r admin

(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/selinux

selinux=enforcing –> selinux=disabled

但是這個修改需要重新啟動計算機,reboot 一下。(執行setenforce 0 或者重啟)

4、 重啟vsftpd: service vsftpd restart

5、 查詢當前檔案屬性:

#ls – dz /var/ftp/pub

3)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/iptables

新增 -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 重啟生效

4)解除安裝

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...