FTP在實踐中使用的比較多。今天實踐一下VSFTPD的部署。php
#1 centos7 Vsftpd ###1.1 安裝vsftpd yum install -y vsftpd
###1.2 配置ftp vi /etc/vsftpd/vsftpd.conf
ubuntu
anonymous_enable=NO chroot_local_user=YES #最後添加以下行解決沒法登錄的問題 allow_writeable_chroot=YES
###1.3 啓動/從新啓動ftp systemctl start vsftpd.service
(原service start vsftpd)
systemctl restart vsftpd.service
(原service restart vsftpd)
centos
###1.4 設置開機啓動ftp systemctl enable vsftpd.service
(原chkconfig vsftpd on)
瀏覽器
###1.5 創建ftp帳戶 useradd -d /www/ftp -s /sbin/nologin ftpadmin
/www/ftp 爲ftp目錄bash
###1.6 修改密碼 passwd ftpadmin
服務器
###1.7 設置帳戶權限 chown -R ftpadmin.ftpadmin /www/ftp
session
若是系統啓用了防火牆和SELinux,那麼還要作如下配置。 ####1.8 防火牆添加FTP服務: firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
####1.9 設置SELinux: getsebool -a | grep ftp
setsebool -P ftpd_full_access on
app
###1.10 使用filezilla來訪問下FTP,測試FTP CURD操做。 ftpadmin/paswordless
#2 ubuntu14.04 vsftpd ###2.1 完全卸載vsftpd sudo apt-get --purge remove vsftpd
測試
###2.2 安裝vsftpd sudo apt-get install vsftpd
###2.3 備份配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bk
###2.4 檢查是否已啓動 netstat -antl
###2.5 配置 vi /etc/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES #最後添加以下行解決沒法登錄的問題 allow_writeable_chroot=YES userlist_deny=NO userlist_enable=YES userlist_file=/etc/allowed_users
###2.6 創建ftp帳戶 sudo useradd -d /ftp -s /bin/bash ftpuser
/ftp 爲ftp目錄
###2.7 修改密碼 passwd ftpuser
###2.8 設置帳戶權限 chown -R ftpuser.ftpuser /ftp
###2.9 重啓服務 sudo service vsftpd restart
###2.10 使用filezilla來訪問下FTP,測試FTP CURD操做。 ftpuser/pasword
#3 好的實踐 ###3.1 ftp服務器: (1)、匿名用戶可登陸瀏覽,但不能下載
(2)、設置4個不一樣等級的用戶使用此ftp服務器(虛擬用戶),分別以下
用戶名:ftpmain 路徑/home/vsftpd 管理用戶,可對ftp服務器的全部文件進行任何操做
用戶名:down 路徑/home/vsftpd/down 下載用戶,只可下載此目錄下的文件
用戶名:upload 路徑/home/vstfpd/upload 上傳用戶,在此目錄下可上傳下載刪除等操做
用戶名:test 路徑/home/vsftpd/test 測試目錄
###3.2 vsftpd日誌解決方案 代表FTP服務器記錄上傳下載的狀況
xferlog_enable=YES
代表將記錄的上傳下載狀況寫在xferlog_file所指定的文件中,即xferlog_file選項指定的文件中 xferlog_std_format=YES
xferlog_file=/var/log/xferlog
###3.3 啓用雙份日誌。在用xferlog文件記錄服務器上傳下載狀況的同時,
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
###3.4 修改歡迎信息
sudo vi /etc/vsftpd.conf 末尾添加行
dirmessage_enable=YES
而後到ftp根目錄設置.message內容
cd /ftp
sudo vi .message
輸入:Welcome to ftp server ,enjoy it !
sudo service vsftpd restart
###3.5 超時設置 idle_session_timeout=600
#空閒鏈接超時
data_connection_timeout=120
#數據傳輸超時
ACCEPT_TIMEOUT=60
#PAVS請求超時
connect_timeout=60
#PROT模式鏈接超時
###3.6 容許匿名上傳
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
###3.7 一些命令 sudo cat /etc/hosts
查看本地host
ftp localhost
ftp登錄本地
anonymous_enable=YES 匿名訪問
finger ftp 查看ftp的根目錄能夠用這個命令
more /etc/passwd | grep ftp 查看ftp默認的根目錄
gedit /etc/passwd ,把其中的ftp項修改爲本身須要的. vi打開文件,/爲查找命令 修改ftp默認的根目錄
pgrep vsftpd 或者列出全部進程 ps -d 查看vsftpd是否啓動
sudo chown root:root ftp , ftp爲目錄 賦予那個組
###3.8 權限模式 7 5 5
用戶 組 任何人
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755
權限模式是由用戶,文件組及其餘全部人各組數值分別相加得出的。從上面的圖表中應該能看出個大概。
Read 4 - 容許讀文件 Write 2 - 容許寫/修改文件 eXecute1 - 讀/寫/刪除/修改/目錄
權限模式實例
模式 字符表示 說明
0477 -r--rwxrwx 全部者僅可讀(4),其餘及組可讀寫執行(7)
0677 -rw-rwxrwx 全部者僅可讀寫(6),其餘及組可讀寫執行(7)
0444 -r--r--r-- 全部均僅可讀(4)
0666 -rw-rw-rw- 全部均僅可讀寫(6)
0400 -r-------- 全部者僅可讀(4),組及其餘無任何權限(0)
0600 -rw------- 全部者僅可讀寫(6),組及其餘無任何權限(0)
0470 -r--rwx--- 全部者僅可讀,組可讀寫執行,其餘則無任何權限
0407 -r-----rwx 全部者僅可讀,其餘可讀寫執行,組則無任何權限
0670 -rw-rwx--- 全部者僅可讀寫,組可讀寫執行,其餘則無任何權限
0607 -rw----rwx 全部者僅可讀寫,其餘可讀寫執行,組則無任何權限
###3.8 其它
安裝完後不用作任何配置既可用匿名方式進行訪問,默認的ftp文件夾爲/srv/ftp
ftp://192.168.1.111/ ftp 在瀏覽器 訪問
開放重命名,刪除文件等權限,不開的話無法續傳。
anon_other_write_enable=YES
###3.9 cmds_allowed
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
cmds_allowed=FEAT,REST,ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,DELE,RETR
# ABOR - abort a file transfer 取消文件傳輸 # CWD - change working directory 更改目錄 # DELE - delete a remote file 刪除文件 # LIST - list remote files 列目錄 # MDTM - return the modification time of a file 返回文件的更新時間 # MKD - make a remote directory 新建文件夾 # NLST - name list of remote directory # PASS - send password # PASV - enter passive mode # PORT - open a data port 打開一個傳輸端口 # PWD - print working directory 顯示當前工做目錄 # QUIT - terminate the connection 退出 # RETR - retrieve a remote file 下載文件 # RMD - remove a remote directory # RNFR - rename from # RNTO - rename to # SITE - site-specific commands # SIZE - return the size of a file 返回文件大小 # STOR - store a file on the remote host 上傳文件 # TYPE - set transfer type # USER - send username # less common commands: # ACCT* - send account information # APPE - append to a remote file # CDUP - CWD to the parent of the current directory # HELP - return help on using the server # MODE - set transfer mode # NOOP - do nothing # REIN* - reinitialize the connection # STAT - return server status # STOU - store a file uniquely # STRU - set file transfer structure # SYST - return system type
#4 引用及感謝 1.http://wiki.ubuntu.org.cn/Vsftpd
2.http://forum.ubuntu.org.cn/viewtopic.php?t=464142
3.http://pcvc.net/blog/2015/08/09/centos-7-installation-configuration-do-vsftpd-ftp-service/
4.http://www.baidu.com/link?url=Vkk0J001A2kX4yDj2X4nDkFc7_TndIoCPZzv5BvpiGv72oHnI53E9mQ7zBZbXTRNz0oMCQi1_gucQpmmxI3u0a&wd=&eqid=d5017af9000006a70000000256418716
2016-07-10 21:03:25 星期日
2017-02-14 Centos 6.5 vsftpd
yum install -y vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES
userlist_deny=NO
文件尾添加此行
useradd -d /home/ftp -s /sbin/nologin ftpadmin
passwd ftpadmin
chown -R ftpadmin.ftpadmin /home/ftp
echo ftpadmin >> /etc/vsftpd/user_list
service vsftpd start
find / -name vsftpd
rpm -qa | grep vsftpd