FTP服務(vsftpd)配置
根據很多人對CentOS FTP服務的不解,我覺得應該對CentOS FTP服務做出一定的解釋。
1.安裝
一般在CentOS上都自動安裝了vsftd,若沒有安裝則可以使用以下步驟進行安裝
yum -y install vsftpd
touch /var/log/vsftpd.log # 建立vsftp的日誌檔案
在CentOS中,這樣就可以完成了一個簡單的匿名FTP的搭建。
你可以通過訪問ftp://yourip來進行,不過這個FTP沒有任何許可權。
2.基於匿名的FTP架設
參考其他關於Vsftpd的CentOS FTP服務配置文章。
3.建立賬戶
useradd -g www -d /data0/htdocs/www -s /sbin/nologin -M www
選項 說明
-u UID 指定新使用者的 UID,預設為使用當前最大的 UID 加1
-g GROUP 指定新使用者的主組
-G GROUP1[,GROUP2,…[,GROUPN]]] 指定新使用者的附加組
-d HOME_DIR 指定新使用者的登入目錄
-s SHELL 指定新使用者使用的 Shell,預設為 bash
改變使用者預設值選項:
在配置檔案 /etc/login.defs 和 /etc/default/useradd 中存放了使用者預設資料。
4.基於虛擬使用者的FTP架設
所謂虛擬使用者就是沒有使用真實的帳戶,只是通過某種手段達到對映帳戶和設定許可權的目的。
1)我們在/etc/vsftpd/vsftpd.conf中做如下CentOS FTP服務配置:
anonymous_enable=NO 設定不允許匿名訪問
chroot_list_enable=YES 使使用者不能離開主目錄
xferlog_file=/var/log/vsftpd.log 設定vsftpd的服務日誌儲存路徑。
注意,該檔案預設不存在。必須要手動touch出來
ascii_upload_enable=YES
ascii_download_enable=YES 設定支援ASCII模式的上傳和下載功能。
local_enable=YES 設定本地使用者可以訪問。
注:如使用虛擬宿主使用者,在該專案設定為NO的情況下所有虛擬使用者將無法訪問。
pam_service_name=vsftpd PAM認證檔名。PAM將根據/etc/pam.d/vsftpd進行認證
以下這些是關於Vsftpd虛擬使用者支援的重要CentOS FTP服務配置專案。
預設vsftpd.conf中不包含這些設定專案,需要自己手動新增CentOS FTP服務配置。
guest_enable=YES 設定啟用虛擬使用者功能。
guest_username=ftp 指定虛擬使用者的宿主使用者。-CentOS中已經有內建的ftp使用者了
user_config_dir=/etc/vsftpd/vuser_conf 設定虛擬使用者個人vsftp的CentOS FTP服務檔案存放路徑。
存放虛擬使用者個性的CentOS FTP服務檔案(配置檔名=虛擬使用者名稱)
2)建立chroot list,將使用者ftp加入其中:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3)進行認證:
首先,安裝Berkeley DB工具,很多人找不到db_load的問題就是沒有安裝這個包。
yum install db4 db4-utils
然後,建立使用者密碼文字/etc/vsftpd/vuser_passwd.txt ,注意奇行是使用者名稱,偶行是密碼
ftpuser1
ftppass1
ftpuser2
ftppass2
接著,.生成虛擬使用者認證的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
最後,建立虛擬使用者個性CentOS FTP服務檔案
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1
內容如下:
local_root=/opt/var/ftp1 虛擬使用者的根目錄(根據實際修改)
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
4.啟動vsftp伺服器
mkdir /opt/var/ftp/ftpuser1
chmod 777 /opt/var/ftp/ftpuser1
service vsftpd start
常見錯誤:
1.553 Could not create file
一般都是SELinux的問題,設定SELinux的一個值,重啟伺服器即可。
setsebool -P ftpd_disable_trans 1
service vsftpd restart
2.500 OOPS: bad bool value in config file for: write_enable
注意你的CentOS FTP服務檔案中保證每一行最後沒有任何空格,一般出錯就是在多餘的空格上。
更改埠號:listen_port=埠號 (需要自己新增)
歡迎資訊:ftpd_banner=歡迎資訊
====================================================================
許可權問題:
當virtual_use_local_privs=YES時,虛擬使用者和本地使用者有相同的許可權;
當virtual_use_local_privs=NO時,虛擬使用者和匿名使用者有相同的許可權,預設是NO。
當virtual_use_local_privs=YES,write_enable=YES時,虛擬使用者具有寫許可權(上傳、下載、刪除、重新命名)。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES時,虛擬使用者不能瀏覽目錄,只能上傳檔案,無其他許可權。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO時,虛擬使用者只能下載檔案,無其他許可權。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES時,虛擬使用者只能上傳和下載檔案,無其他許可權。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES時,虛擬使用者只能下載檔案和建立資料夾,無其他許可權。
當virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES時,虛擬使用者只能下載、刪除和重新命名檔案,無其他許可權。
一些RadHat版本是預設開啟SeLinux的。這個東西有加強安全性的同時很討厭,比如讓配置好的vsftpd無法正常登入。
#setsebool -P ftpd_disable_trans 1
重啟FTP服務~
IP限制的方法
vsftpd中的配置需要 tcp_wrappers=YES
/etc/hosts.allow 中加入允許的IP
vsftpd : IP1 IP2 : allow
/etc/hosts.deny 中遮蔽所有IP
vsftpd : ALL : deny
重啟服務 service xinetd restart (此服務應該開機啟動!)
實驗一:如果我不允許FTP匿名登陸,我們可以修改vsftpd的主配置檔案來實現
#vi /etc/vsftpd/vsftpd.conf 把anonymous_enable=YES 改為anonymous_enable=NO
重啟vsftpd即可!
實驗二:windows中FTP伺服器可以設定歡迎詞,最大連線數,那我們在Linux的FTP伺服器中設定呢?我要回答的是:同樣可以,我們同樣可以vsftpd的主配置檔案來實現
# vi /etc/vsftpd/vsftpd.conf
在最後新增 ftpd_banner=welcome to here! 這就是歡迎詞
Max_clients=100 這就表示最多可以有100個使用者同時訪問
重啟vsftpd即可!
實驗三:如果我想把借我錢不還的同事(lilei),不想讓他登陸到我們的FTP站點,那我可以
把使用者lilei新增到vi /etc/vsftpd.ftpusers 重啟vsftpd服務即可。
實驗四:上午總經理說要提拔公司的一小部分人,聽到這個訊息,趕緊行動,我只允許總經理一個人可以登陸FTP伺服器,其他人休想,拍經理馬匹,限制其他人。我可以這樣做:
# vi /etc/vsftpd/vsftpd.conf 到最後新增2條,
userlist_deny=NO /這個列表裡的人不拒絕,其他人拒絕(包括匿名)
userlist_file=/etc/mp /指明列表的路徑
然後:#vi /etc/mp 把經理的名字新增上去
重啟vsftpd 服務即可!
但是下午經理把提拔的人的名字給公佈了,憤怒的是既然沒有我。為了表現一下我的憤怒,我決定讓經理不能登陸FTP伺服器,其他人都可以。我可以這樣做:
# vi /etc/vsftpd/vsftpd.conf 把上午新增的userlist_deny=NO
改為userlist_deny=YES /這個列表中的人拒絕,其他人通過。
重啟vsftpd 服務即可!
實驗五:註冊的使用者我們可以給他很高的下載速度(200k),匿名使用者的話,給他們20K的速度,可以這樣做:
# vi /etc/vsftpd/vsftpd.conf 在最後新增
Local_max_rate=200000
Anon_max_rate=20000
重啟vsftpd 服務即可!
實驗六:前天同事一(zhangsan)發了一根菸給我,昨天同事二(lisi)給了我一包煙,今天同事三(wangwu)給了我一條煙,我想根據他們給我的煙,來給他們設定不同的FTP下載速度,我可以這樣做:
# vi /etc/vsftpd/vsftpd.conf 到最後新增
User_config_dir=/etc/vsftpd /定義使用者的配置檔案
#vi /etc/vsftpd/zhangsan 新增以下
Local_max_rate = 3000 /與一根菸等價
#vi /etc/vsftpd/lisi 新增以下
Local_max_rate = 30000 /與一包煙等價
#vi /etc/vsftpd/wangwu 新增以下
Local_max_rate = 300000 /與一條煙等價
重啟vsftpd 服務即可!
實驗七:如何建立簡單的虛擬使用者呢?我只想讓他們可以登陸FTP,但不能登陸我的linux系統,這樣可以保證FTP伺服器的安全。可以這樣做:
Adduser –g ftp –s /sbin/nolgin user01 /直接新增user01使用者到ftp組,
Passwd user01 /給user01設定密碼
實驗八:上面所說的雖然簡單,但還是不安全,那還有沒有其他的方法來建立更安全的虛擬使用者呢?有!我們可以這樣做:
1, 建立虛擬使用者的口令庫檔案
#vi logins.txt 新增以下
Zhangsan /使用者名稱
123 /密碼
Lisi
234
Wangwu
345
2, 生產vsftpd的認證資料庫
#db_load –T –t hash –f logins.txt /etc/vsftpd/vsftpd_logins.db
改資料庫許可權
#chmod 600 /etc/vsftpd/vsftpd_logins.db
3,建立虛擬使用者所需的PAM配置檔案
#vi /etc/pam.d/vsftpd.vu 新增以下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_logins
Account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_logins
4,建立虛擬使用者及所要訪問的目錄並設定相應的許可權
#useradd -d /home/ftpsite virtual /建立vsftpd虛擬使用者所需的系統帳號
#chmod 700 /home/ftpsite/ 設定宿主目錄的許可權為700
5,設定vsftpd.conf配置檔案
#vi /etc/vsftpd/vsftpd.conf 新增如下:
Guest_enable=YES
Guest_username=virtual
Pan_service_name=vsftpd.vu
Anon_world_readable_only=NO
重啟vsftpd服務即可!
實驗九:管理虛擬使用者,要求如下:
Wangwu有瀏覽目錄、上傳、改名、刪除等許可權
Lisi 有瀏覽目錄、上傳、下載許可權
Zhangsan 有瀏覽目錄、下載的許可權(且只能在/misc/abc目錄下,速度為20k)
我們可以這樣做:
首先編輯vsftpd的主配置檔案,
#vi /etc/vsftpd/vsftpd.conf 新增如下:
User_config_dir=/etc/vsftpd /指定虛擬使用者配置檔案的存放處
然後滿足wangwu的需求:
Vi /etc/vsftpd/wangwu 新增如下:
Anon_world_readable_only=NO //開放讀的許可權(如果沒有新增此項,使用者看到的目錄是隱藏的)
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
Anon_other_write_enable=YES
滿足lisi的需求:
Vi /etc/vsftpd/lisi 新增如下:
Anon_world_readable_only=NO //開放讀的許可權(如果沒有新增此項,使用者看到的目錄是隱藏的)
Anon_upload_enable=YES
滿足zhangsan的需求:
Vi /etc/vsftpd/zhangsan 新增如下:
Anon_world_readable_only=NO //開放讀的許可權(如果沒有新增此項,使用者看到的目錄是隱藏的)
Local_root=/misc/abc //設定目錄為本地
Anon_max_rate=20000
最後重啟vsftpd服務即可!
實驗十:如何設定匿名的使用者可以上傳以及刪除的許可權
我們可以這樣做:
#vi /etc/vsftpd/vsftpd.conf 新增如下:
Anon_upload_enable=YES
Anon_mkdir_write_enable=YES
Anon_other_write_enable=YES
#chmod – R 777 /var/ftp/pub /改變pub目錄的許可權
重啟vsftpd服務即可。
相關文章
- linux之FTP服務vsftpd和pure-ftpd常用配置LinuxFTP
- 配置ftp服務FTP
- linux vsftpd 服務配置LinuxFTP
- AIX FTP服務配置AIFTP
- linux ftp服務的搭建配置LinuxFTP
- Linux下FTP和TFTP服務配置LinuxFTP
- vsftpd搭建ftp服務,並實現虛擬使用者訪問FTP
- docker搭建vsftpd服務DockerFTP
- Linux Linux服務端 rpm方式安裝(vsftpd)(FTP)軟體Linux服務端FTP
- linux下開啟並配置FTP服務LinuxFTP
- FTP服務搭建FTP
- yum安裝vsftpd服務FTP
- FTP服務端部署FTP服務端
- Linux FTP服務LinuxFTP
- CentOS.7下安裝配置FTP和SFTP服務CentOSFTP
- Ubuntu上ftp的vsftpd.conf檔案的配置UbuntuFTP
- linux ftp服務搭建LinuxFTP
- ubuntu開啟ftp服務UbuntuFTP
- Azure上部署FTP服務FTP
- ftp服務端安裝FTP服務端
- vsftpd服務的歸納總結FTP
- 教你如何在CentOS7系統中配置ftp服務CentOSFTP
- Linux環境下安裝配置vsftpd服務(三種認證模式)LinuxFTP模式
- ubuntu下搭建ftp服務端UbuntuFTP服務端
- mac下開啟FTP服務MacFTP
- FTP伺服器——使用vsftpd搭建FTP伺服器
- 【Azure 應用服務】Azure App Service 自帶 FTP服務APPFTP
- centos7.4 開啟ftp服務CentOSFTP
- centos7 開啟ftp服務CentOSFTP
- <Linux下FTP服務的搭建>LinuxFTP
- 網路拓撲—FTP服務搭建FTP
- 在 Ubuntu 下如何安裝 vsftpd FTP?UbuntuFTP
- ubuntu ftp 伺服器搭建及vsftpd.conf配置例項詳解UbuntuFTP伺服器
- Linux中Vsftpd服務的部署及優化LinuxFTP優化
- ubuntu 14.04中開啟vsftpd服務步驟UbuntuFTP
- 配置vsftpd匿名使用服務,個人使用者使用以及虛擬使用者使用配置細節!FTP
- 運維安全系列基礎服務之 FTP 服務(系列一)運維FTP
- windows 使用掛載盤提供FTP服務WindowsFTP