1. 程式人生 > >vsftpd實例:匿名訪問共享+系統用戶訪問控制

vsftpd實例:匿名訪問共享+系統用戶訪問控制

vsftp 匿名訪問 ftp server 實名訪問

FTP環境實例:

某公司由於業務發展需求,現需要在公司內部搭建一臺FTP服務器!該公司有數個部門(IT FD HR)和N名員工(fus1 fus2 fus3 fus4 fus5 fus6 fus7 fus8 fus9)使用該服務器!為了保障系統和其他數據的安全,要求用戶只能訪問FTP服務根目錄(/var/ftp)以下的數據;要求根目錄下有一個公共目錄,該目錄所有人都可以訪問,並且具有上傳下載權限;根目錄下還要有每個部門的工作目錄,並且僅限該部門的員工訪問;在各部門目錄下要有一個僅限該部門員工使用的公共目錄,還要有每個員工的工作目錄,員工目錄要求只能該員工自己訪問;創建一個特權用戶(manager),該用戶可以訪問根目錄下的任何公共目錄,並且具有上傳下載的權限!為了方便特權用戶訪問,要求在每個部門的目錄被訪問時有該部門的提示信息;為了顯示人文精神,在用戶登錄FTP服務器時,要顯示歡迎信息!另外,要求匿名用戶可以訪問,並且所有訪問FTP服務器的賬戶都不能登錄到系統!


思路:

1、安裝FTP服務器軟件,設置SELinux訪問權限

2、測試環境是否可用,備份主配置文件

3、創建用戶組和用戶及其所屬目錄

4、修改服務器配置文件進行訪問控制

5、修改目錄訪問權限控制訪問

6、重啟服務並設置開機啟動


步驟:

第一步:安裝vsftpd軟件

[[email protected] ~]# yum install vsftpd -y

第二步:設置SELinux安全訪問

[[email protected] ~]#getsebool -a | grep ftp

[[email protected] ~]#setsebool allow_ftpd_full_access 1

第三步:測試環境是否運行正常

[[email protected] ~]# service vsftpd start

[[email protected] ~]# firefox ftp://127.0.0.1

另:安裝ftp客戶端測試:

[[email protected] ~]# yum install ftp -y

(匿名用戶(ftp/anonymous)登錄不需要密碼)

第四步:備份主配置文件

[[email protected] ~]# mkdir -p /backup/vsftpd

[[email protected] ~]# cp -p /etc/vsftpd/vsftpd.conf /bachup/vsftpd/vsftpd.conf

第五步:創建用戶組及其部門目錄

[[email protected] ~]# groupadd IT

[[email protected] ~]# groupadd FD

[[email protected] ~]# groupadd HR

[[email protected] ~]# mkdir -p /var/ftp/OU_{IT,FD,HR}

第六步:創建用戶及其屬主目錄

[[email protected] ~]# for name in fus{1..3}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_IT/$name -G IT -m $name

> echo 123456 | passwd --stdin $name

> done

[[email protected] ~]# for name in fus{4..6}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_FD/$name -G FD -m $name

> echo 123456 | passwd --stdin $name

> done

[[email protected] ~]# for name in fus{7..9}

> do

> useradd -s /sbin/nologin -d /var/ftp/OU_HR/$name -G HR -m $name

> echo 123456 | passwd --stdin $name

> done

第七步:創建特權用戶

[[email protected] ~]# useradd -G IT,HR,FD -d /var/ftp/manager -s /sbin/nologin manager

[[email protected] ~]# echo 123456 | passwd --stdin manager

第八步:檢查用戶屬性

[[email protected] ~]# for name in fus{1..9}; do id $name; done

[[email protected] ~]# id manager

第九步:修改服務器主配置文件

[[email protected] ~]# cat /etc/vsftpd/vsftpd.conf | grep -vE "^$|#"

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

local_enable=YES //允許系統用戶登錄

write_enable=YES //啟用全局寫權限

local_umask=022 //系統用戶權限掩碼

anon_umask=022 //匿名用戶權限掩碼

anon_upload_enable=YES //允許匿名用戶上傳

anon_mkdir_write_enable=YES //允許匿名用戶創建目錄

dirmessage_enable=YES //開啟目錄訪問提示

message_file=.message //定義目錄訪問提示文件

xferlog_enable=YES //開啟用戶訪問日誌記錄

xferlog_file=/var/log/vsftpd.log //定義日誌記錄文件的位置及名稱(需要自己創建)

xferlog_std_format=YES //定義日誌記錄的文件格式

connect_from_port_20=YES //定義服務器的連接端口

idle_session_timeout=600 //當超過600s無交互時斷開會話

data_connection_timeout=120 //當超過120s無數據時斷開傳輸通道

banner_file=/etc/vsftpd/banner //定義登錄提示文件banner的位置

chroot_local_user=YES //鎖定用戶訪問權限到家目錄

ls_recurse_enable=YES //允許用戶使用ls命令

listen=YES //定義vsftpd工作模式為standalone

pam_service_name=vsftpd //開啟vsftpd的PAM認證

userlist_enable=YES //開啟userlist訪問控制

userlist_deny=NO //僅限userlist中的用戶訪問(雙重否定等於肯定)

tcp_wrappers=YES //開啟TCP訪問控制(hosts.allow和hosts.deny)

local_root=/var/ftp //鎖定系統用戶訪問的根目錄

no_anon_password=YES //匿名用戶訪問時提示輸入密碼,可直接訪問

第十步:創建主配置文件中定義的文件

vsftpd.log:

[[email protected] ~]# touch /var/log/vsftpd.log

banner:

[[email protected] ~]# vi /etc/vsftpd/banner

[[email protected] ~]# cat /etc/vsftpd/banner

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

Hellow,everyone

welcome to FTPServer!

Good luck!

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

.message:

[[email protected] ~]# echo "welcome to IT." > /var/ftp/OU_IT/.message

[[email protected] ~]# echo "welcome to FD." > /var/ftp/OU_FD/.message

[[email protected] ~]# echo "welcome to HR." > /var/ftp/OU_HR/.message

user_list:

[[email protected] ~]# for name in fus{1..9}; do echo $name; done > /etc/vsftpd/user_list

[[email protected] ~]# echo ftp >> /etc/vsftpd/user_list

[[email protected] ~]# echo manager >> /etc/vsftpd/user_list

第十一步:設置文件目錄訪問權限

ftp目錄的訪問權限:

[[email protected] ~]# chown root:ftp /var/ftp/

[[email protected] ~]# tree /var/ftp

/var/ftp/ 目錄權限 目錄所有者 目錄屬組 目錄

├── manager drwx------ manager manager manager

├── OU_IT drwxr-x--- root IT OU_IT

│ ├── fus1 drwx------ fus1 fus1 fus1

│ ├── fus2 drwx------ fus2 fus2 fus2

│ ├── fus3 drwx------ fus3 fus3 fus3

│ └── pub_it drwxrwx--- root IT pub_it

├── OU_FD drwxr-x--- root FD OU_FD

│ ├── fus4 drwx------ fus4 fus4 fus4

│ ├── fus5 drwx------ fus5 fus5 fus5

│ ├── fus6 drwx------ fus6 fus6 fus6

│ └── pub_fd drwxrwx--- root FD pub_it

├── OU_HR drwxr-x--- root HR OU_H

│ ├── fus7 drwx------ fus7 fus7 fus7

│ ├── fus8 drwx------ fus8 fus8 fus8

│ ├── fus9 drwx------ fus9 fus9 fus9

│ └── pub_hr drwxrwx--- root HR pub_it

└── pub drwxrwxr-x root ftp pub

第十二步:重啟服務,使配置文件生效

[[email protected] ~]# ps -ef | grep vsftpd (獲取vsftpd進程的PID-2784)

[[email protected] ~]# kill -HUP 2784 (2784=vsftpd的進程號)

第十三步:設置vsftpd開機啟動

[[email protected] ~]# chkconfig vsftpd on


本文出自 “楓淩傲雪” 博客,請務必保留此出處http://2689027.blog.51cto.com/2679027/1925902

vsftpd實例:匿名訪問共享+系統用戶訪問控制