ftp匿名用戶,虛擬用戶,配置文件參數含義

=====

FTP(file transfer protocol)

=====

網絡文件共享的幾種方式

   HTTP NFS(unix like) SAMBA FTP

vsftpd (Very Secure FTP)

ftp需要兩個端口

21:命令端口

20:數據端口

是一種跨平臺的文件傳輸工具。

ftp有兩種傳輸模式

   1、主動模式

服務器的端口:2120

   2、被動模式

服務器的端口:21,隨機端口

ftp主動模式和被動模式的區別:

主動模式:

wKiom1MBZmvT0RQLAACb4ayUWPc892.jpg

主動模式的過程:

任何端口到FTP服務器的21端口(客戶端初始化的連接 S<-C)

FTP服務器的21端口到大於1023的端口(服務器響應客戶端的控制端口S->C)

FTP服務器的20端口到大於1023的端口(服務器端初始化數據連接到客戶端的數據端口 S->C)

大於1023端口到FTP服務器的20端口(客戶端發送ACK響應到服務器的數據端口 S<-C)

當用戶登錄到ftp服務器的時候,匿名用戶進入到/var/ftp,系統帳戶進入到自己的家目錄

ftp的被動模式

wKioL1MBZqbB3c-yAACcT96VVW4616.jpg

從任何端口到服務器的21端口(客戶端初始化的連接 S<-C)

服務器的21端口到任何大於1023的端口(服務器響應到客戶端的控制端口的連接 S->C)

從任何端口到服務器的大於1023端口(入;客戶端初始化數據連接到服務器指定的任意端口 S<-C)

服務器的大於1023端口到遠程的大於1023的端口(出;服務器發送 ACK響應和數據到客戶端的數據端口 S->C)


軟件安裝:

#yum install vsftpd -y

服務啓動:

   #servicevsftpd start

   #/etc/init.d/vsftpdstart

   #chkconfigvsftpd on

# netstat -antulp | grep vsftpd

tcp  0   0 0.0.0.0:21     0.0.0.0:*       LISTEN      28997/vsftpd

配置文件的位置:

   /etc/vsftpd/vsftpd.conf

在編輯配置文件之前,最好備份一份,以防萬一

ftp配置的目標:

1、搞定匿名帳戶的訪問

2、本地帳戶

3、虛擬帳戶

匿名用戶訪問:

#vi /etc/vsftpd/vsftpd.conf

12anonymous_enable=YES   //允許匿名用戶登錄

                              //匿名用戶指的是: ftpanonymous

28anon_upload_enable=YES //匿名用戶可以上傳

#cd /

# touch a

# ftp localhost

Connected to localhost.localdomain.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:root): ftp

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (127,0,0,1,50,241)

150 Here comes the directory listing.

drwxr-xr-x   2 0        0            4096 Oct 13 13:29 pub

226 Directory send OK.

ftp> cd pub

250 Directory successfully changed.

ftp> ls

227 Entering Passive Mode (127,0,0,1,191,136)

150 Here comes the directory listing.

226 Directory send OK.

ftp> put a

local: a remote: a

227 Entering Passive Mode (127,0,0,1,192,96)

553 Could not create file.

ftp> quit

221 Goodbye.

允許匿名用戶上傳但是爲什麼上傳不了文件呢?

還必須看目錄有沒有可寫權限。

# chmod 777 /var/ftp/pub

# ftp localhost

Connected to localhost.localdomain.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (localhost:root): ftp

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (127,0,0,1,200,175)

150 Here comes the directory listing.

drwxrwxrwx   2 0        0            4096 Oct 13 13:29 pub

226 Directory send OK.

ftp> cd pub

250 Directory successfully changed.

ftp> put a

local: a remote: a

227 Entering Passive Mode (127,0,0,1,168,25)

150 Ok to send data.

226 File receive OK.

ftp> quit

221 Goodbye.

----------------------------------------------


本地帳戶

指的就是服務器本身的擁有的帳號

   vim/etc/vsftpd/vsftpd.conf

   anonymouns_enable=NO

 #anon_upload_enable=YES

   15  local_enable=YES

      //本地帳戶認證方式啓動

   18  write_enable=YES

      //表示開啓寫權限

   22  local_umask=022

      //表示上傳文件的權限掩碼

   /etc/init.d/vsftpdrestart

   ftplocalhost

   ftp>cd /etc

   ftp>pwd

      /etc

那麼這個時候,就可以下載u1擁有權限的任意文件。用戶u1可以隨意切換所在目錄

解決用戶瞎溜達的問題?

      vim/etc/vsftpd/vsftpd.conf

      96  chroot_list_enable=YES

      98  chroot_list_file=/etc/vsftpd/chroot_list

      vim /etc/vsftpd/chroot_list

          u1

          u2

          //表示這是一個關於chroot的黑名單,凡是在chroot_list中出現的用戶名

          //都會實現chroot的限制

限制所有的本地用戶:

      vim/etc/vsftpd/vsftpd.conf

          chroot_local_user=YES

限制用戶chroot的白名單設置:

      vim/etc/vsftpd/vsftpd.conf

          chroot_local_user=YES

          chroot_list_enable=YES

         chroot_list_file=/etc/vsftpd/chroot_list

          //chroot_list文件中,列出不進行chroot限制的用戶列表


ftp

虛擬帳戶

具體實現:

   1.通過創建本地數據庫實現虛擬用戶

yum   install db4-utils -y

創建一個用於映射虛擬用戶的真實用戶:

useradd -d /var/ftp/vuserdir -s /sbin/nlogin  vuser

   2.修改配置文件:

      #vim/etc/vsftpd/vsftpd.conf

          guest_enable=YES

          guest_username=vuser

   3.生成虛擬用戶文件

      #vim/etc/vsftpd/vftpuser.txt

          neo

          123

          mike

          456

   4.生成虛擬用戶數據文件

db_load -T -t hash -f /etc/vsftpd/vftpuser.txt/etc/vsftpd/vftpuser.db

   #chmod600 /etc/vsftpd/vftpuser.db

   5.創建一個新的pam認證程序

   vim/etc/pam.d/vsftpd1

   auth  required   /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

   account  required   /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

vim /etc/vsftpd/vsftpd.conf

   pam_service_name=vsftpd1

   /etc/init.d/vsftpdrestart

登錄之後,出現這樣的問題:

   226Transfer done (but failed to open directory).

修改配置文件:

   vim/etc/vsftpd/vsftpd.conf

      anon_world_readable_only=NO

額外的ftp配置:

   vim/etc/vsftpd/vsftpd.conf

   ftpd_banner=Welcometo uplooking ftp service

   anon_max_rate=100  (單位是字節)

   max_clients=1

   deny_file={*.ext,*.dll}

關於用戶訪問控制的兩個文件:

   user_list

   ftpusers

綜合練習:

在一臺主機上創建三個基於域名的虛擬主機,每個主機的磁盤配額爲80M90M100M,使用ftp分別管理三個虛擬主機,每個虛擬主機的管理員,只能管理自己的虛擬主機。要求,每個網站的磁盤具有高性能,高可靠性,並且可以磁盤擴展。


附錄:

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=50000bite本地用戶傳輸率50K

Anon_max_rate=30000bite匿名用戶傳輸率30K

Pasv_min_port=50000   將客戶端的數據連接端口改在

Pasv_max_port=60000   50000—60000之間

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=/任意指定的路徑/vsftpd.chroot_list  前提是chroot_local_user=no

這又是一組

Userlist_enable=yes       在指定的文件中的用戶不可以訪問

Userlist_deny=yes  

Userlist_file=/指定的路徑/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=/任意指定的路徑/爲用戶策略自己所建的文件夾指定不同虛擬用戶配置文件的路徑

又是一組

Chown_uploads=yes      改變上傳文件的所有者爲root

Chown_username=root  

又是一組

Deny_email_enable=yes 是否允許禁止匿名用戶使用某些郵件地址

Banned_email_file=//任意指定的路徑/xx/  

又是單的

Pasv_enable=yes    服務器端用被動模式

User_config_dir=/任意指定的路徑//任意文件目錄指定虛擬用戶存放配置文件的路徑



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章