vsftpd安裝配置


vsftpd安裝配置

vsftpd測試服務器:

192.168.1.191

1、安裝:

yum provides */vsftpd  
yum install vsftpd -y

2、匿名用戶最基本配置(生產上不設置匿名用戶訪問):

vim /etc/vsftpd/vsftpd.conf

允許匿名用戶訪問

anonymous_enable=YES

允許匿名用戶上傳文件並可以創建目錄:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

修改匿名目錄所有者(默認是root):

chown ftp.ftp /var/ftp/pub/

設置允許匿名用戶可上傳可讀寫:

anon_other_write_enable=YES

注:如果去掉這一條,匿名用戶可以創建,上傳,但是不能刪除。

3、啟動vsftp服務:

service vsftpd start
service vsftpd stop
service vsftpd restart

4、正式部署vsftpd(廢棄原來默認的ftp目錄:/var/ftp):

首先修改配置文件

備份配置文件

cp -a vsftpd.conf vsftpd.conf.bak
echo "" > vsftpd.conf
vim /etc/vsftpd/vsftpd.conf

加入以下內容:

anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
ascii_upload_enable=YES
ascii_download_enable=YES

5、創建宿主用戶

創建用戶 ftpuser 指定 /vsftpd 目錄:

useradd -g root -M -d /vsftpd -s /sbin/nologin ftpuser

設置用戶 ftpuser 的密碼:

passwd ftpuser
密碼:
12345678

把 /vsftpd 的所有權給ftpuser.root:

chown -R ftpuser.root /vsftpd

建立虛擬用戶文件:

touch /etc/vsftpd/vuser_passwd

編輯虛擬用戶名單文件:

第一行賬號,第二行密碼,注意:不能使用root做用戶名,系統保留。

vim  /etc/vsftpd/vuser_passwd

編輯內容:

ftp1
12345678
ftp2
12345678

6、生成虛擬用戶數據文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db

7、創建用戶配置

mkdir /etc/vsftpd/vuser_conf # 建立虛擬用戶個人vsftp的配置文件
cd /etc/vsftpd/vuser_conf   # 進入目錄
touch ftp1 ftp2

每個文件(ftp1和ftp2寫入如下內容,local_root=/vsftpd/ftp1#這里寫入這個用戶的實際存儲路勁):

vim ftp1
內容:
local_root=/vsftpd/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim ftp2
內容:
local_root=/vsftpd/ftp2
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

8、創建用戶目錄

mkdir -p /vsftpd/ftp1
mkdir -p /vsftpd/ftp2

修改權限:

chown -R ftpuser.root /vsftpd/ftp1
chown -R ftpuser.root /vsftpd/ftp2

注:原來ftp安裝完的默認目錄/var/ftp可以廢棄。

9、服務啟動

systemctl restart vsftpd.service # 重啟服務
systemctl start vsftpd.service  # 啟動服務
systemctl status vsftpd.service  # 服務狀態查看

10、生成虛擬用戶的PAM文件

cd /etc/pam.d/
備份vsftpd文件:
cp -a vsftpd vsftpd.bak

修改vsftpd文件內容(加入第二和第三行,下面的都全部注釋,注意下面是64位操作系統,如果是32位的話lib64需要改成lib):

vim vsftpd

內容:

#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
#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

11、客戶端調試

1.首先每次更改配置需要重啟vsftpd服務。

2.上面每個配置文件中的內容最好是手動鍵入(曾經的我直接粘貼進去,cat就是沒問題,但是粘貼進去就是不行)。

3.客戶端windows打開cmd到后台進行連接,網頁和資源管理器里面都會有緩存也看不到報錯。

4.服務器tail -f /var/log/secure查看日志(也可以tail -f /var/log/messages,這個看不出什么,前者更精准)。

查看日志:

tail -f /var/log/secure

5.客戶端報錯示例(坑了我好久,它說chroot沒有讀到/etc/vsftpd/chroot_list這個文件,所以我們新建這個文件就行,記得重啟服務)。

建立文件:

touch /etc/vsftpd/chroot_list

6.如果虛擬用戶登錄到自己的宿主目錄后,不能上傳文件的話,服務器端需要在宿主目錄里面再新建一個文件夾,給這文件夾777權限,就可以了(直接把宿主目錄設置777就會登錄不了)。

7.新增用戶的話,需要在/etc/vsftpd/vsuser.passwd里面追加用戶(刪除就是刪除用戶),

記得使用db_load重新生成vsuser.passwd文件即可,vuser_confi里面新建一個新建賬戶的權限文件,宿主目錄記得新建存儲文件。

8.建議使用ftp工具和cmd驗證。

測試1:

ftp 192.168.1.191
輸入:
ftp1
密碼
12345678
ftp 192.168.1.191
輸入:
ftp2
密碼
12345678

在ftp>下輸入:

user

注:輸入user可以重新輸入用戶名和密碼。

測試2:

ftp://192.168.1.191/

注:輸入ftp1用戶名,進入的是ftp1用戶的目錄(ftp1),輸入ftp2用戶名,進入的是ftp2用戶的目錄(ftp2)。

12、修改端口號(測試的時候沒有修改成2121,而是用默認的21端口)

1.在/etc/vsftpd/vsftpd.conf文件中增加listen_port=21(這里默認是21)。

2.在vim /etc/services文件中修改如下內容。

ftp       21/tcp
ftp       21/udp     fsp fspd

注意:上面修改的只是鏈接端口號,既然更改了連接端口號,別忘記訪問的時候修改端口。

既然我們設置的是被動模式(服務器被動打開數據端口,只有在數據鏈接的時候才會使用,

下面我們用ftp工具能成功連接,當打開某個文件夾的時候(請求數據的時候),才會使用該端口,

但是我這里使用了iptables,之允許了2121通過我們設置的是10060到10090端口,具體如下)。

設置防火牆:

firewall-cmd --add-port=10060-10090/tcp --zone=public --permanent
firewall-cmd --add-port=21/tcp --zone=public --permanent
firewall-cmd --reload

注:正常情況下使用默認21端口即可,考慮到安全,可以修改為其它端口。

轉載至:https://www.cnblogs.com/suixhxy/p/14916989.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM