基於vsftpd部署ftp服務(centos/rhel)

1、vsftp安裝linux

通常在CentOS上都自動安裝了vsftd,若沒有安裝則可使用如下步驟進行安裝shell

[root@lnmp yum.repos.d]# yum install vsftpd
[root@lnmp ~]# chkconfig vsftpd on
[root@lnmp ~]# service vsftpd start

# 清空iptables,並關閉iptables和selinux
[root@lnmp ~]# iptables -F                            # 清空iptables規則
[root@lnmp ~]# iptables -L -nv
Chain INPUT (policy ACCEPT 40 packets, 3328 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 25 packets, 3208 bytes)
 pkts bytes target     prot opt in     out     source               destination
[root@lnmp ~]# service iptables stop                  # 關閉防火牆
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@lnmp ~]# chkconfig iptables off                  # 設置iptables開機不啓動

# 關閉selinux
[root@lnmp ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
[root@lnmp ~]# shutdown -r now

2、匿名/系統用戶配置測試vim

[root@lnmp ~]# useradd -s /sbin/nologin shaw
[root@lnmp ~]# passwd shaw

默認,安裝好vsftp,匿名用戶(只可下載)和系統用戶(徹底權限)就能夠訪問session

由於系統用戶登陸ftp,即在本身家目錄中,全部具有所有權限工具

更改系統帳號ftp主目錄,對用戶限速測試

[root@lnmp ~]# vim /etc/vsftpd/vsftpd.conf 
local_root=/var/ftp/pub                    # 更改系統用戶主目錄
local_max_rate=1024000                     # 系統用戶限速1MB(上傳和下載)
[root@lnmp ~]# service vsftpd restart
[root@lnmp ~]# chmod o+w /var/ftp/pub     # 加權限,能夠上傳和刪除(ftp權限,由dir權限和ftp權限共同控制)

此時系統用戶登陸ftp,就在‘/var/ftp/pub’目錄下,須要什麼樣的權限,手工添加ui

3、vsftpd虛擬用戶配置測試spa

1. 編輯配置文件vi /etc/vsftpd/vsftpd.confrest

[root@lnmp ~]# touch /var/log/vsftpd.log           # 建立vsftp的日誌文件
[root@lnmp ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                                #設定不容許匿名訪問
local_enable=YES                                   #設定本地用戶能夠訪問
chroot_list_enable=YES                             #使用戶不能離開主目錄
xferlog_file=/var/log/vsftpd.log                   #設定vsftpd的服務日誌
pam_service_name=vsftpd                            #PAM"認證文件"名,PAM將根據/etc/pam.d/vsftpd進行認證

# Vsftpd虛擬用戶支持服務配置,默認vsftpd.conf中不包含這些設定項目,須要本身手動添加
guest_enable=YES                                   #設定啓用虛擬用戶功能。
guest_username=ftp                                 #指定虛擬用戶的宿主用戶。系統中已經有內置的"ftp"用戶了
user_config_dir=/etc/vsftpd/vuser_conf             #設定虛擬用戶我的vsftp的配置文件存放路徑。存放虛擬用戶個性化的配置文件名,應和虛擬用戶名相同

2. 建立chroot_list,將用戶ftp加入其中日誌

[root@lnmp ~]# touch /etc/vsftpd/chroot_list
[root@lnmp ~]# echo ftp >> /etc/vsftpd/chroot_list

3. 進行虛擬用戶認證配置

安裝Berkeley DB工具,後面找不到db_load的問題就是沒有安裝這個軟件包的緣由

[root@lnmp ~]# yum install db4 db4-utils

建立用戶密碼文件vuser_passwd.txt

[root@lnmp ~]# vi /etc/vsftpd/vuser_passwd.txt  #   #注意奇數行是用戶名,偶數行是密碼
ftpuser
q.123456

生成虛擬用戶認證的db文件

[root@lnmp ~]# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

編輯認證文件/etc/pam.d/vsftpd,所有註釋掉原來語句,並增長如下兩行

[root@lnmp ~]# vi /etc/pam.d/vsftpd
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth    required        pam_userdb.so   db=/etc/vsftpd/vuser_passwd
account required        pam_userdb.so   db=/etc/vsftpd/vuser_passwd

建立虛擬用戶服務配置文件

[root@lnmp ~]# mkdir /etc/vsftpd/vuser_conf
[root@lnmp ~]# vi /etc/vsftpd/vuser_conf/ftpuser   # 配置文件名和用戶名相同,每行配置最後,不能有空格,不然啓動時報錯
local_root=/var/ftp/pub 	        # 虛擬用戶的根目錄(根據實際修改)
write_enable=YES 			# 可寫
anon_umask=022 				# 掩碼
anon_max_rate=1024000                   # 限速1MB
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

[root@lnmp ~]# mkdir /var/ftp/ftpuser            # 給剛創建的用戶建立目錄
[root@lnmp ~]# chown -R ftp /var/ftp/ftpuser     # 設定目錄權限

4.從新啓動vsftp服務

[root@lnmp ~]# service vsftpd restart
相關文章
相關標籤/搜索