天天看點

【轉】ftp 服務部署及ftp 權限設定

ftp服務的定義

ftp:// 檔案傳輸協定

ftp協定提供的軟體

在rhel7中:

vsftpd

ftp服務的基本資訊

軟體的安裝包:vsftpd

預設釋出目錄:/var/ftp

協定接口:       21 tcp

服務的配置檔案: /etc/vsftpd/vsftpd.conf

部署ftp服務

yum install vsftpd -y

systemctl start vsftpd

systemctl enable vsftpd

firewall-cmd –permanent –add-service=ftp         添加 ftp服務到火牆白名單中

firewall-cmd –reload

一切完成後看一下 getenforce 的狀态,若為enforcing 則需關閉

vim /etc/sysconfig/selinux  檔案

reboot虛拟機

getenfoce 檢視狀态,為disabled就可以進行實驗。

測試

報錯解析

530密碼錯,使用者認證失敗

550服務本身不允許

553本地檔案系統權限過小

500權限太大了

ftp服務的配置檔案

vim /etc/vsftpd/vsftpd.conf

ftp是否對登陸使用者可寫

write enable=YES|NO

可以看到參數為NO時,ftp服務對使用者不可寫

可以看到參數為YES時,ftp服務對使用者可寫

=========================匿名使用者權限設定===============================

1.匿名使用者是否可以登陸ftp伺服器

anontmous enable=YES|NO

可以看到參數為YES時,匿名使用者可登陸ftp伺服器

可以看到參數為NO時,匿名使用者不可登陸ftp伺服器

2.匿名使用者的上傳

[root@westos ~]# vim /etc/vsftpd/vsftpd.conf

write_enable=YES

anon_upload_enable=YES

[root@westos ~]# systemctl restart vsftpd

[root@westos ~]chgrp ftp /var/ftp/pub

[root@westos ~]chmod 775 /var/ftp/pub

put上傳

3.匿名使用者的上傳權限更改

寫入:anon_umask=022

4.匿名使用者建立目錄

寫入:anon_mkdir_write_enable=YES

5.匿名使用者下載下傳

預設不能下載下傳

寫入:anon_world_readable_only=YES|NO    #NO表示匿名使用者可以下載下傳

測試:

6.匿名使用者删除

寫入:anon_other_write_enable=YES|NO

7.匿名使用者的家目錄修改

vim /etc/vsftpd/vsftpd/vsftpd.conf

anon_root=/westos #匿名使用者進來指定目錄

重新開機服務

8.匿名使用者使用的使用者身份修改

chown_uploads=YES

chown_username=westos

[root@westos westos]# systemctl restart vsftpd

9.匿名使用者上傳的最大速率

寫入:anon_max_rate=20480

10.最大連結數

root@westos ~]# vim /etc/vsftpd/vsftpd.conf

寫入:max_clients=1

=========================本地使用者權限設定===============================

1.本地使用者是否可以登陸ftp伺服器

[root@westos mnt]# vim /etc/vsftpd/vsftpd.conf

 修改:local_enable=YES|NO   預設為YES

[root@westos mnt]# systemctl restart vsftpd  重新開機服務

使用者登陸lftp 172.25.254.101 -u gq

2.限制本地使用者浏覽/目錄,所有本地使用者被鎖定到自己家目錄中

chroot_local_user=YES   去掉注釋

寫入:local_root=/mnt

[root@westos mnt]# systemctl restart vsftpd

3.本地使用者上傳檔案權限

local umask=xxx

4.vim /etc/vsftpd/ftpusers #使用者黑名單(系統預設是黑黑名單)

vim /etc/vsftpd/user_list #使用者臨時黑名單

5.使用者白名單設定

userlist_deny=NO

/etc/vsftpd/user_list #參數設定,此檔案變成使用者白名單,隻在名單中出現的使用者可以登陸ftp

ftp虛拟使用者的設定

建立虛拟使用者的原因: 因為系統使用者登陸ftp服務,同時也可以登陸系統,這樣很不安全,是以我們要建立ftp虛拟使用者,使這些使用者隻能登陸ftp

ftp建立虛拟使用者

1>建立虛拟帳号身份

vim /etc/vsftpd/loginusers

編輯内容:

westos1 使用者

123 密碼

westos2 使用者

westos3 使用者

退出并儲存

注意:編輯的時候不要有空格

2>對檔案進行hash加密

執行 db_load -T -t hash -f loginusers loginusers.db

3>編輯檔案(驗證密碼與使用者是否一緻的檔案) 檔案名稱任意

vim /etc/pam.d/ftpauth

寫入

account   required         pam_userdb.so           db=/etc/vsftpd/loginusers

auth         required         pam_userdb.so           db=/etc/vsftpd/loginusers

4>編輯配置檔案 vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務

    修改 pam_service_name=ftpauth

    添加 guest_enable=YES

 5> 在另一台主機進行測試:可以看到虛拟使用者建立成功,可以登入

注意:   建立虛拟使用者後,本地使用者就不能正常登陸了,但是仍然可以指定本地使用者身份登陸

5>再次編輯配置檔案vim /etc/vsftpd/vsftpd.conf

    添加guest_username=tom退出(tom使用者必須存在)

修改後要重新開機!!!

6>檢視tom使用者家目錄下的東西,如果虛拟使用者登入時可以看到以下檔案,則證明虛拟使用者登入身份修改成功

    cd /home/

  執行 chmod 555 /home/westos減小權限

  測試

成功!!!

虛拟使用者獨立家目錄設定

1>首先在這三個家目錄中分别建立檔案

    mkdir -p /ftphome/westos{1…3}

    mkdir -p /ftphome/westos1/westos1date

    mkdir -p /ftphome/westos2/westos2date

    mkdir -p /ftphome/westos3/westos3date

  2>再編輯配置檔案vim /etc/vsftpd/vsftpd.conf退出後重新啟動服務  

 添加:

    注意:

    $ USER 相當于c語言中的變量,給不同的值,輸出不同的值

    user_sub_token=$ USER (将shell中$USER的用法移到ftp服務中來用)

    重新啟動服務systemctl restart vsftpd

    給該檔案滿權限chmod 777 /ftphome/westos*/*

    測試:

可以看到不同的虛拟使用者在不同的家目錄!!!

虛拟使用者權限單獨設定

原理:虛拟使用者使用的是匿名使用者的參數控制,如果我們想讓不同的虛拟使用者有不同的權利,就必須給每個虛拟使用者設定自己的次配置檔案。

1>首先建立虛拟使用者的次目錄和次配置檔案

    mkdir /etc/vsftpd/user_conf

    touch /etc/vsftpd/user_conf/westos1

2>  編輯次配置檔案 vim /etc/vsftpd/user_conf/westos1

    寫入允許虛拟使用者執行的動作anon_upload_enable=YES退出儲存

 3> 編輯配置檔案vim /etc/vsftpd/vsftpd.conf(注意:虛拟使用者的上傳參數為NO,或預設 )

    寫入user_config_dir=/etc/vsftpd/user_conf

   測試:

    虛拟使用者westos1可以實作上傳功能,而westos2和westos3不行

可以看到westos1 可以上傳檔案,而westos2 westos3 不能上傳檔案!!!

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

作者:Smile-GQ