技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類(lèi) >

linux配置ftp服務(wù)

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-08-14 18:04┆點(diǎn)擊:

  Step1. 修改/etc/vsftpd/vsftpd.conf

  `新增底下一行

  listen_port=2121

  Step2. 重新啟動(dòng)vsftpd

  [root@home vsftpd]# /sbin/service vsftpd restart

  Shutting down vsftpd: OK ]

  Starting vsftpd for vsftpd: OK ]

  特定使用者peter、john 不得變更目錄

  使用者的預(yù)設(shè)目錄為/home/username,若是我們不希望使用者在ftp 時(shí)能夠

  切換到上一層目錄/home,則可參考以下步驟。

  Step1. 修改/etc/vsftpd/vsftpd.conf

  將底下三行

  #chroot_list_enable=YES

  # (default follows)

  #chroot_list_file=http://www.3lian.com/etc/vsftpd.chroot_list

  改為

  chroot_list_enable=YES

  # (default follows)

  chroot_list_file=http://www.3lian.com/etc/vsftpd/chroot_list //需新增此文件

  Step2. 新增一個(gè)檔案: /etc/vsftpd/chroot_list

  內(nèi)容增加兩行:

  peter

  john

  Step3. 重新啟動(dòng)vsftpd

  [root@home vsftpd]# /sbin/service vsftpd restart

  Shutting down vsftpd: OK ]

  Starting vsftpd for vsftpd: OK ]

  若是peter 欲切換到根目錄以外的目錄,則會(huì)出現(xiàn)以下警告:

  ftp>; cd /home

  550 Failed to change directory.

  取消anonymous 登入

  若是讀者的主機(jī)不希望使用者匿名登入,則可參考以下步驟。

  Step1. 修改/etc/vsftpd/vsftpd.conf

  將

  anonymous_enable=YES

  改為

  anonymous_enable=NO

  安排歡迎話(huà)語(yǔ)

  若是我們希望使用者在登入時(shí),能夠看到歡迎話(huà)語(yǔ),可能包括對(duì)該主機(jī)的

  說(shuō)明,或是目錄的介紹,可參考以下步驟。

  首先確定在/etc/vsftpd/vsftpd.conf 當(dāng)中是否有底下這一行

  dirmessage_enable=YES

  RedHat9 的默認(rèn)值是有上面這行的。

  接著,在各目錄之中,新增名為.message 的檔案,再這邊假設(shè)有一個(gè)使用

  者test1,且此使用者的根目錄下有個(gè)目錄名為abc,那首先我們?cè)?home/test1

  之下新增.message,內(nèi)容如下:

  Hello~ Welcome to the home directory

  This is for test only...

  接著,在/home/test1/abc 的目錄下新增.message,內(nèi)容如下:

  Welcome to abc's directory

  This is subdir...

  那么,當(dāng)使用者test1 登入時(shí),會(huì)看到以下訊息:

  230- Hello~ Welcome to the home directory

  230-

  230- This is for test only...

  230-

  若是切換到abc 的目錄,則會(huì)出現(xiàn)以下訊息:

  250- Welcome to abc's directory

  250-

  250- This is subdir ...

  對(duì)于每一個(gè)聯(lián)機(jī),以獨(dú)立的process 來(lái)運(yùn)作

  一般啟動(dòng)vsftp 時(shí),我們只會(huì)看到一個(gè)名為vsftpd 的process 在運(yùn)作,但若

  是讀者希望每一個(gè)聯(lián)機(jī),都能以獨(dú)立的process 來(lái)呈現(xiàn),則可執(zhí)行以下步驟。

  Step1. 修改/etc/vsftpd/vsftpd.conf

  新增底下一行

  setproctitle_enable=YES

  Step2. 重新啟動(dòng)vsftpd

  [root@home vsftpd]# /sbin/service vsftpd restart

  Shutting down vsftpd: OK ]

  Starting vsftpd for vsftpd: OK ]

  使用ps -ef 的指令,可以看告不同使用者聯(lián)機(jī)的情形,如下圖所示:

  [root@home vsftpd]# ps -ef|grep ftp

  root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER

  nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244:

  connected

  test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1:

  IDLE

  nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244:

  connected

  test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2:

  IDLE

  root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp

  [root@home vsftpd]#

  限制傳輸檔案的速度:本機(jī)的使用者最高速度為200KBytes/s,匿名登入

  者所能使用的最高速度為50KBytes/s

  Step1. 修改/etc/vsftpd/vsftpd.conf

  新增底下兩行

  anon_max_rate=50000

  local_max_rate=200000

  Step2. 重新啟動(dòng)vsftpd

  [root@home vsftpd]# /sbin/service vsftpd restart

  Shutting down vsftpd: OK ]

  Starting vsftpd for vsftpd: OK ]

  在這邊速度的單位為Bytes/s,其中anon_max_rate 所限制的是匿名登入的

  使用者,而local_max_rate 所限制的是本機(jī)的使用者。VSFTPD 對(duì)于速度的限

  制,范圍大概在80%到120%之間,也就是我們限制最高速度為100KBytes/s,

  但實(shí)際的速度可能在80KBytes/s 到120KBytes/s 之間,當(dāng)然,若是頻寬不足

  時(shí),數(shù)值會(huì)低于此限制。

  建置一個(gè)防火墻下的ftp server,使用PORT FTP mode:預(yù)設(shè)的ftp

  port:21 以及ftp data port:20

  啟動(dòng)VSFTPD 之后執(zhí)行以下兩行指令,只允許port 21 以及port 20 開(kāi)放,

  其它關(guān)閉。

  iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT

  iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset

  將vsftpd 并入XINETD

  若是讀者希望將vsftpd 并入XINETD 之中,也就是7.x 版的預(yù)設(shè)設(shè)定,那

  么讀者可以執(zhí)行以下步驟。

  Step1. 修改/etc/vsftpd/vsftpd.conf

  將

  listen=YES

  改為

  listen=NO

  Step2. 新增一個(gè)檔案: /etc/xinetd.d/vsftpd

  內(nèi)容如下:

  service vsftpd

  {

  disable = no

  socket_type = stream

  wait = no

  user = root

  server = /usr/sbin/vsftpd

  port = 21

  log_on_success += PID HOST DURATION

  log_on_failure += HOST

  }

  Step3. 重新啟動(dòng)xinetd

  [root@home vsftpd]# /sbin/service xinetd restart

  Stopping xinetd: OK ]

  Starting xinetd: OK ]

  3、常見(jiàn)錯(cuò)誤

  ftp客戶(hù)連接常見(jiàn)故障現(xiàn)象

  現(xiàn)象0:

  > ftp: connect :連接被拒絕

  原因: 服務(wù)沒(méi)啟動(dòng)

  解決: # chkconfig vsftpd on

  現(xiàn)象1:

  500 OOPS: cannot open user list file

  原因: 不存在文件“/etc/vsftpd.user_list”或文件中不存在該帳戶(hù)

  解決: # echo username >> /etc/vsftpd.user_list

  現(xiàn)象2:

  530 Permission denied.

  Login failed.

  原因: “/etc/vsftpd.user_list”文件中不存在當(dāng)前登陸用戶(hù)

  解決: # echo username >> /etc/vsftpd.user_list

  現(xiàn)象3:

  500 OOPS: cannot open chroot() user list file

  Login failed.

  原因: 不存在文件“/etc/vsftpd.chroot_list”

  解決: # echo username >> /etc/vsftpd.chroot_list

  現(xiàn)象4:

  500 OOPS: missing value in config file

  Connection closed by remote host.

  原因: “=”等號(hào)前值有問(wèn)題,或只有一個(gè)空格

  解決: 修正相應(yīng)的值即可,可能過(guò) diff 來(lái)比較查找

  現(xiàn)象5:

  500 OOPS: bad bool value in config file

  Connection closed by remote host.

  原因: “=”等號(hào)后值有問(wèn)題

  解決: 將“=”等號(hào)后值確認(rèn)修改

  現(xiàn)象6:

  500 OOPS: unrecognised variable in config file

  Connection closed by remote host.

  原因: 參數(shù)前有空格

  解決: 將參數(shù)前空格刪除

  現(xiàn)象7、

  確認(rèn)存在“local_enable=YES”,但本地用戶(hù)無(wú)法登陸

  原因: 驗(yàn)證參數(shù)被誤刪除

  解決: 添加“pam_service_name=vsftpd”

  現(xiàn)象8、

  500 OOPS: chdir

  500 OOPS: child died

  Connection closed by remote host.

  原因: 用戶(hù)主目錄沒(méi)有權(quán)限或沒(méi)有主目錄

  解決: 正確設(shè)置用戶(hù)主目錄權(quán)限

  553 Could not create file.

  要解決這個(gè)問(wèn)題只要:

  1. setsebool -P ftpd_disable_trans 1

  2. service vsftpd restart

  1、設(shè)置selinux

  vi /etc/sysconfig/selinux

  將其中的SELINUX=enforcing改為SELINUX=disabled

  2、設(shè)置如下

  setsebool -P allow_ftpd_full_access 1

  chmod -R 765 /etc/home

  1、 查看 SELinux 的狀態(tài): sestatus -b | grep ftp

  2、 在出現(xiàn)的結(jié)果中可以看到

  ftp_home_dir off

  tftpd_disable_trans off

  之類(lèi)。我們現(xiàn)在只要把其中之一設(shè)置為on就可以啦。

  3、 setsebool -P ftpd_disable_trans on 或者 setsebool -P ftp_home_dir on

  4、 重啟vsftpd: service vsftpd restart