CentOS6.5
vsftpd 配置文件爲/etc/vsftpd/vsftpd.conflinux
安裝完軟件後:
1.默認匿名用戶可以登錄,且限制在/pub目錄內,
2.本地用戶能夠登錄但因SElinux而沒法登錄。
3.ftpuser內用戶沒法登錄。(PAM限制)
4.可利用 /etc/hosts.{allow|deny} 來做爲基礎防火牆;
5.主動式聯機的埠口爲 port 20
6.使用格林威治時間 (GMT)。『 use_localtime=YES 』可修改爲本地時間。web
限制用戶登錄的文件有兩個:
1./etc/vsftpd/ftpusers:就是 /etc/pam.d/vsftpd 這個檔案的設定所影響的;(默認拒絕)
2./etc/vsftpd/user_list:由 vsftpd.conf 的 userlist_file 所設定。
默認爲拒絕文件內的用戶,如若想設置爲容許文件內的用戶:userlist_deny=NO數據庫
修改配置文件:
1、若想本地用戶也能登錄。
方法:關閉SElinux,setenforce=0 ,或查看/var/log/messages內容,根據提示修改SElinux設置。
2、限制用戶在家目錄,指定用戶不限制在家目錄。
chroot_local_user=YES-------------------限制全部用戶在家目錄
chroot_list_enable=YES------------------開啓容許的用戶列表文件
chroot_list_file=/etc/vsftpd/chroot_list--------用戶列表文件
3、禁止上傳特定類型的文件
deny_file={*.txt}安全
其餘參數配置說明:服務器
與服務器環境較相關的設定值:
connect_from_port_20=YES (NO)
listen_port=21
dirmessage_enable=YES (NO)----進入目錄顯示消息
message_file=.message
listen=YES (NO)---------服務啓動方式
pasv_enable=YES (NO)------支持數據流的被動式聯機方式
use_localtime=YES (NO)
write_enable=YES (NO)-----容許用戶上傳
connect_timeout=60-----數據鏈接主動模式下,服務端鏈接客戶端請求超時時間
accept_timeout=60------被動模式下
data_connection_timeout=300-------數據鏈路傳輸超時時間
idle_session_timeout=300--------控制鏈路待機超時時間
max_clients=0------獨立服務模式,同時聯機數
max_per_ip=0-------同一IP的聯機數
pasv_min_port=0, pasv_max_port=0------被動聯機模式端口號設置
ftpd_banner
banner_file=/path/file
與實體用戶較相關的設定值:
guest_enable=YES (NO)-----設置全部用戶使用guest身份登陸
guest_username=ftp------指定guest身份所使用的用戶權限
local_enable=YES (NO)
local_max_rate=0-------限制用戶傳輸速度,單位比特每秒
chroot_local_user=YES (NO)-----限制在用戶家目錄
chroot_list_enable=YES (NO)-------啓用chroot_list文件
chroot_list_file=/etc/vsftpd.chroot_list
userlist_enable=YES (NO)------啓用userlist文件
userlist_deny=YES (NO)-------拒絕該文件用戶登錄
userlist_file=/etc/vsftpd/user_list
匿名者登入的設定值:
anonymous_enable=YES (NO)
anon_world_readable_only=YES (NO)-----僅具備下載可讀文件的權限
anon_other_write_enable=YES (NO)-----寫權限 ,若此爲NO,則下面兩個設置無效
anon_mkdir_write_enable=YES (NO)------創建目錄的權限
anon_upload_enable=YES (NO)-------上傳權限
deny_email_enable=YES (NO)-----特殊email address抵擋
banned_email_file=/etc/vsftpd/banned_emails
no_anon_password=YES (NO)------NO的時候登入時會檢查輸入的email
anon_max_rate=0-------限制傳輸速度
anon_umask=077------上傳檔案的權限
關於系統安全方面的一些設定值:
ascii_download_enable=YES (NO)---優先使用ASCII格式下載文件
ascii_upload_enable=YES (NO)----優先使用ASCII格式上傳文件
one_process_model=YES (NO)-----爲每一個聯機建立一個進程,增長效能,消耗資源。硬件要求高,通常建議設置NO
tcp_wrappers=YES (NO)-----支持tcp_wrappers控制
xferlog_enable=YES (NO)-----開啓上傳下載記錄
xferlog_file=/var/log/xferlog-----設置記錄文件位置
xferlog_std_format=YES (NO)-----是否設定爲 wu ftp 相同的登陸檔格式,須要使用wu ftp登陸文件分析軟件查看
dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log-----登陸檔
nopriv_user=nobody----運行服務的用戶
pam_service_name=vsftpd------pam 模塊的名稱,咱們放置在 /etc/pam.d/vsftpd 便是這個session
虛擬用戶登錄配置:app
1、多用戶相同訪問目錄與權限:tcp
1.建立可登錄的帳號和密碼。ui
#cat virtual_users.txt加密
zhangsan
123456
lisi
123456
wangwu
123456
2.檢查系統是否安裝已經安裝下列軟件包,用於建立數據庫文件
#rpm -qa |grep db4
db4-4.7.25-20.el_7.i686
db4-cxx-4.7.25-20.el_7.i686
db4-devel-4.7.25-20.el_7.i686
db4-utils-4.7.25-20.el_7.i686
3.使用db_load命令把virtual_users.txt 文件轉換成數據庫文件,並更改數據庫文件的權限
#db_load -T -t hash -f ./virtual_users.txt /etc/vsftpd/virtual_users.db
#chmod 600 /etc/vsftpd/virtual_users.db
4.新建一個虛擬用戶的PAM文件,內容以下
#cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users 64位用/lib64 替換/lib
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtual_users
5建立虛擬用戶。設置該用戶所須要訪問的目錄,並設置虛擬用戶的訪問權限
#useradd -d /home/ftp virtual_user
#chmod 700 /home/ftp
6.編輯vsftpd.conf配置文件:
guest_enable=YES
guest_username=virtual_user
pam_sevice_name=vsftpd.vu
virtual_use_local_privs=YES 虛擬用戶和本地用戶有相同的權限;
或者:virtual_use_local_privs=NO時,虛擬用戶和匿名用戶有相同的權限,默認是NO。
虛擬用戶要麼擁用本地用戶權限要麼擁有匿名權限,匿名權限對於家目錄中的身份爲其餘用戶。
2、多用戶不一樣訪問目錄與權限。
一、二、三、四、5不變。
6.建立ftp用戶配製文件目錄:/etc/vsftpd/user_conf
#mkdir /etc/vsftpd/user_conf
7.在/etc/vsftpd/user_conf目錄中建立以用戶名命名的配置文件zhangsan、lisi、wangwu
「zhangsan」內容以下:
local_root=/home/ftp (固然,你高興也能夠設置成其它,但要注意virtual用戶對此目錄的權限)
anon_world_readable_only=NO (使download用戶的能下載,也只能下載;寫成YES,將不能列出文件和目錄)
「lisi」內容以下:
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES (寫權限)
anon_mkdir_write_enable=YES (新建目錄權限)
anon_upload_enable=YES(上傳權限)
anon_other_write_enable=YES(刪除/重命名的權限)
「wangwu」內容以下:
local_root=/home/virtual_user
anon_world_readable_only=NO
anon_umask=022 (因爲web頁面的特殊性,故單獨設置上傳文件權限爲755,此掩碼值可根據具體狀況更改)
write_enable=YES (寫權限)
anon_mkdir_write_enable=YES (新建目錄權限)
anon_upload_enable=YES(上傳權限)
anon_other_write_enable=YES(刪除/重命名的權限)
8.在/etc/vsftpd.conf加入或者更改如下配置語句:
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual_user
pam_service_name=ftp.vu
user_config_dir=/etc/vsftpd/user_conf
==============================================
用戶1有上傳,下載,建立文件,目錄的權限;用戶2只能下載;用戶3能夠上傳下載,但不能刪除目錄 和文件;三個用戶的家目錄 爲同一個。
[root@test5 user_conf]# cat user1
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
[root@test5 user_conf]# cat user2
local_root=/home/ftp
anon_world_readable_only=NO
[root@test5 user_conf]# cat user3
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
==============================================
ftps
1.檢查 vsftpd 有無支持 ssl 模塊:ldd $(which vsftpd) | grep ssl
2.創建專門給 vsftpd 使用的憑證數據:
cd /etc/pki/tls/certs
make vsftpd.pem 須要填寫證書相關信息
3.修改 vsftpd.conf 的配置文件
針對 SSL 所加入的特別參數!每一個項目都很重要!
ssl_enable=YES <==啓動 SSL 的支持
allow_anon_ssl=NO <==可是不容許匿名者使用 SSL
force_local_data_ssl=YES <==強制實體用戶數據傳輸加密
force_local_logins_ssl=YES <==同上,但連登入時的賬密也加密
ssl_tlsv1=YES <==支持 TLS 方式便可,底下不用啓動
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem <==預設 RSA 加密的憑證檔案所在
限制文件大小?
# cd /usr/local/proftpd/bin/
# ftpquota -create -type=tally -table-path=/usr/local/proftpd/etc/ftpquota.tallytab
# ftpquota -create -type=limit -table-path=/usr/local/proftpd/etc/ftpquota.limittab
# ftpquota --type=limit --table-path=/usr/local/proftpd/etc/ftpquota.limittab --add-record --quota-type=user --name=tom --units=Mb --bytes-
upload=50 --bytes-xfer=1
# (上面意思是:限定tom用戶空間大小爲50M,上傳文件大小爲1M)
ftpquota 具體用法參照 ftpquota --help--------------未證明