A. CentOS7安裝及配置vsftpd-精簡絕版
備註:如果後期想變更此用戶的上傳目錄到
(/run/media/root/xxx/wwwroot/ xxx.org ),
請使用下面的命令:
輸入怎麼想設置的密碼則可。
(1)當我們限定了用戶不能跳出其主目錄之後,使用該用戶登錄FTP時往往會遇到這個錯誤:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
(2)從2.3.5之後,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,
則該用戶的主目錄不能再具有寫許可權了!如果檢查發現還有寫許可權,就會報該錯誤。
要修復這個錯誤,可以用命令chmod a-w /home/user去除用戶主目錄
的寫許可權,注意把目錄替換成你自己的。
或者你可以在vsftpd的配置文件中增加下列一項:
allow_writeable_chroot=YES
(3)使用cmd命令容器發生
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list錯誤
解決:修改vsftpd.conf配置文件,注釋以下內容
(4)本地使用ftpClient調試是發生
java.net.SocketException: Connection reset異常
解決:在本地電腦執行以下命令
netsh advfirewall set global StatefulFTP disable
# 啟動服務
systemctl start vsftpd.service
# 停止服務
systemctl stop vsftpd.service
# 重啟服務
systemctl restart vsftpd.service
# 服務狀態查看
systemctl status vsftpd.service
# 設置開機啟動
systemctl enable vsftpd
B. 限制虛擬用戶的家目錄的家目錄的配置是什麼
centos 6.5 vsftpd 虛擬用戶配置
一:基本知識
1:虛擬用戶:與系統無關聯,不能登入系統,只能訪問FTP伺服器
2:vsftp的服務進程是vsftpd
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf .
4:vsftpd的用戶文件是/etc/vsftpd/ftpusers
5:vsftpd的用戶文件是/etc/vsftpd/user_list
6:推薦使用虛擬用戶登入vs-FTP伺服器
二:安裝
1.檢查是否安裝過vsftpd
rpm -qa vsftpd
安裝:
(1) yum -y install vsftpd lftp
(2) 關閉iptables 和 selinux
/etc/init.d/iptables stop
臨時關閉selinux
setenforce 0
永久性的關閉selinux
vim /etc/selinux/config
修改為 ————》SELINUX=disabled
(3) 創建虛擬用戶文本文件,添加用戶及密碼
cd /etc/vsftpd
touch vuser.txt
備註:奇數行是用戶名,偶數行是密碼。例如:
alix
123456
(4) 生成虛擬資料庫文件(需使用到db_load)
yum -y install db4-utils db4-devel db4-4.3
db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
(5) 配置PAM文件,用來驗證客戶端
vim /etc/pam.d/vsftpd
authrequiredpam_userdb.sodb=/etc/vsftpd/vuser
accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser
(6)修改虛擬資料庫文件的許可權
chmod 700 /etc/vsftpd/vuser.db
(7) 增加一個系統用戶vuser,用於匿名用戶的映射。
mkdir /data
useradd -d /data vuser
chown vuser.vuser /data
usermod -s /sbin/nologinvuser
(8) 修改主配置文件vsftpd.conf,添加:
guest_enable=YES ##激活虛擬用戶
guest_uaername=vuser##把虛擬用戶綁定為系統賬戶vuser
pam_service_name=vuser##使用pam認證
(9) 添加虛擬用戶的配置文件
vim /etc/vsftpd/vsftpd.conf
添加:user_config_dir=/etc/vsftpd/vsftpd_user_conf
(10) 創建vsftpd_user_conf目錄
mkdir /etc/vsftpd/vsftpd_user_conf
(11) 設置虛擬用戶配置文件,與虛擬用戶名相同
touch /etc/vsftpd/vsftpd_user_conf/testuser
(12) 編輯虛擬用戶配置文件
vim /etc/vsftpd/vsftpd_user_conf/testuser
anon_world_readable_only=NO ###瀏覽FTP目錄和下載
anon_upload_enable=YES ###允許上傳
anon_mkdir_write_enable=YES ###建立和刪除目錄
anon_other_write_enable=YES ####改名和刪除文件
local_root=/ftpdir/ #### 指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登錄後的主目錄。
備註:一定要檢查後面是否有空格。
(13)啟動
/etc/init.d/vsftpd restart
三。添加新的虛擬用戶
添加虛擬用戶
vim /etc/vsftpd/vuser.txt
web2
123456
生成庫文件
db-load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
編輯虛擬用戶的配置文件
touch /etc/vsftpd/vsftpd_user_conf/web2
vim /etc/vsftpd/vsftpd_user_conf/web2
anon_world_readable_only=NO ###瀏覽FTP目錄和下載
anon_upload_enable=YES ###允許上傳
anon_mkdir_write_enable=YES ###建立和刪除目錄
anon_other_write_enable=YES ####改名和刪除文件
local_root=/ftpdir/ #### 指定虛擬用戶在系統用戶下面的路徑,限制虛擬用戶的家目錄,虛擬用戶登錄後的主目錄。
創建用戶家目錄
mkdir /ftpdir/web2
修改許可權
chown -R vuser.vuser /ftpdir/web2
載入vsftpd
/etc/init.d/vsftpd reload
本地連接:
ftp
(需要把vsftpd.conf 里的ssl關了)
lftp
(在 /etc/lftp.cong里添加 set ssl:verify-certificate no)
四、配置ssl
1、安裝包
apt-get -y install openssl
2、創建一個證書(時間365天)並填寫相關一些信息
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/certs/vsftpd.pem
Generating a 2048 bit RSA private key
..........+++
.............+++
writing new private key to '/etc/ssl/certs/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:shanghai
Locality Name (eg, city) []:shanghai
Organization Name (eg, company) [Internet Widgits Pty Ltd]:aaa
Organizational Unit Name (eg, section) []:aaa
Common Name (e.g. server FQDN or YOUR name) []:aaa
Email Address []:
3、修改許可權
chmod 0400 /etc/ssl/certs/vsftpd.pem
4、ssl具體配置/etc/vsftpd.conf最後添加
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
ssl_sslv2=YES
ssl_sslv3=YES
ssl_tlsv1=YES
5、配置說明
ssl_enable=YES #開啟vsftpd對ssl協議的支持
ssl_sslv2=YES #支持SSL v2 protocol
ssl_sslv3=YES #支持SSL v3 protocol
ssl_tlsv1=YES #支持TSL v1
rsa_cert_file=/etc/ssl/certs/vsftpd.pem #存放證書地方
6、重啟服務
/etc/init.d/vsftpd restart
Stopping FTP server: vsftpd.
Starting FTP server: vsftpd.
7、測試
1)lftp fileftp:'redhat'@192.168.1.124
ls: Fatal error: Certificate verification: Not trusted
解決在/etc/lftp.conf文件中添加1行到最後
set ssl:verify-certificate no
再登錄一次就OK了
2)查看日誌
Sat Aug 1 13:52:23 2015 [pid 2] CONNECT: Client "192.168.1.124"
Sat Aug 1 13:52:23 2015 [pid 2] DEBUG: Client "192.168.1.124", "Connection terminated without SSL shutdown - buggy client?"
Sat Aug 1 13:56:25 2015 [pid 2] CONNECT: Client "192.168.1.120"
Sat Aug 1 13:56:25 2015 [pid 1] [fileftp] OK LOGIN: Client "192.168.1.120"
C. linux 伺服器怎麼啟動ftp
Liux系統下有好幾款很不錯的ftp服務,各有特點,適應於不同的應用場合。一般在各種Linux的發行版中,默認帶有的ftp軟體是vsftp,本文是針對CentOs7系統下搭建vsftpd服務為例。
1. 首先確定系統中已經安裝了vsftpd軟體,查看命令:
rpm -q vsftpd
rpm -qa |grep vsftpd
2. 安裝vsftpd(以yum安裝為例)
yum install -y vsftpd
3.關閉selinux和iptables(也可配置防火牆相關訪問策略,反之系統阻斷),設置vsftpd開機自啟
永久關閉selinux
vi /etc/sysconfig/selinux
將配置SELinux=enforcing改為SELinux=disabled
保存退出並重啟伺服器
驗證是否關閉命令:getenforce
關閉防火牆
centos 7 操作命令:systemctl stop firewalld.service
centos 6 操作命令:service stop iptables
設置vsftpd開機自啟
centos 7 操作命令:systemctl enable vsftpd.service
centos 6 操作命令:chkconfig vsftpd on
4.vsftpd的配置
ftpusers 該文件用來指定哪些用戶不能訪問ftp伺服器。
user_list 該文件用來指定的默認賬戶在默認情況下也不能訪問ftp伺服器。
vsftpd.conf vsftpd的主要配置文件,路徑:
/etc/vsftpd/vsftpd.conf
# vsftpd.conf的配置
# 是否允許匿名登錄
anonymous_enable=NO
# 是否允許本地用戶登錄
local_enable=YES
# 是否允許本地用戶對FTP伺服器文件具有寫許可權
write_enable=YES
# 本地用戶主目錄
local_root=/var/ftp
# 匿名用戶主目錄
anon_root=/var/ftp/pub
# 是否允許匿名用戶上傳文件,如允許,須將全局的
write_enable=YES
anon_upload_enable=YES
# 是否允許匿名用戶創建新文件夾
anon_mkdir_write_enable=YES
# 容許匿名用戶除了新建和上傳外的其他許可權
anon_other_write_enable=YES
# 本地用戶掩碼
local_umask=022
# 設置匿名登入者新增或上傳檔案時的umask值
anon_umask=022
# 是否激活目錄歡迎信息功能
dirmessage_enable=YES
xferlog_enable=YES
# 主動模式數據傳輸20埠
connect_from_port_20=NO
xferlog_std_format=YES
# 是否監聽ipv4
listen=YES
# listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 是否設置被動模式
pasv_enable=YES
# 被動模式傳輸使用埠
pasv_min_port=20020
pasv_max_port=20020
# 被動模式返回給客戶端的ip地址(伺服器內網穿透時使用)
pasv_address=0.0.0.0( 伺服器外網ip )
# 設置用戶訪問目錄,默認只允許用戶自己的ftp目錄
# 需要同時設置allow_writeable_chroot,允許受限用戶的寫許可權,不然會報錯
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
5.創建例外用戶文件
#哪怕沒有例外用戶也必須創建
vim /etc/vsftpd/chroot_list
只想讓指定賬戶不限制在其主目錄,其它賬戶都限制在主目錄。
對於chroot_local_user與chroot_list_enable的組合效果,可以參考下表:
6. 創建ftp新用戶
#新增一個test(用戶名),並指定上傳目錄在/home/ftp/test下
useradd -g root -d /home/ftp/test -s /sbin/nologin test
# 如果後期想變更此用戶的上傳到(/XXX/ftp/test),請使用下面的命令:
usermod -d /XXX/ftp/test test
# 設置用戶密碼
passwd test
因為安全問題,vaftpd不允許匿名用戶在ftp主目錄上傳,可以新建一個子目錄,設置許可權為777
7. 關於local_umask和anon_umask掩碼
掩碼決定了上傳文件的許可權,掩碼為022代表上傳後的文件許可權為
666-022=644 -> rw-r--r--
掩碼即為要去除的許可權為,默認設為033即可。
8. 啟動vsftp服務
#centos7 操作命令
啟動: systemctl start vsftpd.service
停止: systemctl stop vsftpd.service
重啟: systemctl restart vsftpd.service
查看狀態: systemctl status vsftpd.service
#centos6 操作命令
啟動: service vsftpd start
停止: service vsftpd stop
重啟: service vsftpd restart
查看狀態: service vsftpd status
D. linux配置ftp伺服器的過程
第一步:打開終端(快捷鍵是Ctrl+Alt+t),如果當前用戶不是root用戶,請輸入命令「su」,然後輸入root賬戶密碼即可;
第二步:輸入命令「apt-get update」,這一步是為了更新下載的數據源,如果不更新可能造成有幾個後面的軟體包無法下載;
第三步:輸入命令「apt-get install vsftpd」完成安裝vsftpd;
第四步:判斷vsftp是否安裝成功,輸入命令「service vsftpd restart」重啟vsftpd服務,如果他在運行狀態說明安裝成功;
第五步:新建「/home/uftp」目錄作為用戶主目錄,輸入命令「mkdir /home/uftp」回車 ,然後輸入命令「ls /home」查看home目錄下有uftp這個目錄嗎,如果有就是創建成功;
第六步:新建用戶uftp並且設置密碼,輸入命令「useradd -d /home/uftp -s /bin/bash uftp」
回車,然後再輸入命令「passwd uftp」回車,然後輸入兩次密碼就設置ok了
第七步:使用vi修改配置文件/etc/vsftpd.conf,輸入命令「vi /etc/vsftpd.conf」回車,
向文件中添加「userlist_deny=NO」」userlist_enable=YES」?, 「userlist_file=/etc/allowed_users」?,
「seccomp_sandbox=NO」,最後把文件中的「local_enable=YES」保存(如果提示無法保存,直接退出來,把讀寫和執行許可權給這個文件,具體操作為:輸入命令: 「chmod 777 /etc/vsftpd.conf」回車就可以了);
第八步:新建文件/etc/allowed_users,輸入命令「vi /etc/allowed_users」,打開後再這個文件內寫入「uftp」保存即可;《Linux就該這么學》
第九步:查看/etc/ftpusers文件(不能訪問ftp服務用戶清單)的內容,輸入命令「vi /etc/ftpusers」回車,如果裡面有uftp,就把他刪除;
第十步:安裝winscp軟體,進行遠程登錄訪問;下載直接在網路下載就行
E. linux中怎麼安裝vsftpd
vsftpd是Linux下比較著名的FTP伺服器,搭建FTP伺服器當然首選這個。
本文介紹了在CentOS 6.4下安裝vsftpd、配置虛擬用戶登錄FTP的過程。
正文:
一:安裝vsftpd
查看是否已經安裝vsftpd
rpm -qa | grep vsftpd
如果沒有,就安裝,並設置開機啟動
yum -y install vsftpd
chkconfig vsftpd on
二:基於虛擬用戶的配置
所謂虛擬用戶就是沒有使用真實的帳戶,只是通過映射到真實帳戶和設置許可權的目的。虛擬用戶不能登錄CentOS系統。
修改配置文件
打開/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //設定不允許匿名訪問
local_enable=YES //設定本地用戶可以訪問。註:如使用虛擬宿主用戶,在該項目設定為NO的情況下所有虛擬用戶將無法訪問
chroot_list_enable=YES //使用戶不能離開主目錄
ascii_upload_enable=YES
ascii_download_enable=YES //設定支持ASCII模式的上傳和下載功能
pam_service_name=vsftpd //PAM認證文件名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關於vsftpd虛擬用戶支持的重要配置項,默認vsftpd.conf中不包含這些設定項目,需要自己手動添加
guest_enable=YES //設定啟用虛擬用戶功能
guest_username=ftp //指定虛擬用戶的宿主用戶,CentOS中已經有內置的ftp用戶了
user_config_dir=/etc/vsftpd/vuser_conf //設定虛擬用戶個人vsftp的CentOS FTP服務文件存放路徑。存放虛擬用戶個性的CentOS FTP服務文件(配置文件名=虛擬用戶名
進行認證
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然後,創建用戶密碼文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用戶名,偶行是密碼
test
123456
接著,生成虛擬用戶認證的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
隨後,編輯認證文件/etc/pam.d/vsftpd,全部注釋掉原來語句,再增加以下兩句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最後,創建虛擬用戶配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test //文件名等於vuser_passwd.txt裡面的賬戶名,否則下面設置無效
內容如下
local_root=/ftp/www //虛擬用戶根目錄,根據實際情況修改
write_enable=YES //可寫
anon_umask=022 //掩碼
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
設置Selinux
setsebool -P ftp_home_dir=1 //設置ftp可以使用home目錄
sersebool -P allow_ftpd_full_access=1 //設置ftp用戶可以有所有許可權
設置FTP根目錄許可權
mkdir /ftp/www //創建目錄
chmod R 755 /ftp
chmod R 777 /ftp/www
最新的vsftpd要求對主目錄不能有寫的許可權所以ftp為755,主目錄下面的子目錄再設置777許可權
設置防火牆
打開/etc/sysconfig/iptables
在「-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT」,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 21 -j ACCEPT
然後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
service iptables restart
OK,運行「service vsftpd start」,你就可以訪問你的FTP伺服器了。
F. 如何在linux下開啟FTP服務
Linux下ftp服務可以通過搭建vsftpd服務來實現,以CentOS為例,首先查看系統中是否安裝了vsftpd,可以通過執行命令rpm -qa |grepvsftpd來查看是否安裝相應的包,如果沒有安裝那麼可以執行yum-yinstallvsftpd來安裝,安裝之後首先創建ftp用戶,比如ftp_test,命令如下:
useradd-s/sbin/nologin-d/home/ftp_testftp_test
目錄盡量不要選擇根目錄下,這里是/home/ftp_test,並且ftp_test這個目錄不要手動創建,否則許可權會有問題,執行命令的時候會自動創建,
現在可以看到上面的路徑是一個/,對於ftp用戶來說也就是根目錄了,只能在這個目錄下操作,而無法跳出這個目錄
以上就是vsftpd服務的基本搭建過程,實際使用時可以分配多個用戶