Centos 6.5使用vsftpd配置FTP服務器教程
什麼是vsftpd
vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特點是小巧輕快,安全易用。vsftpd 的名字代表”very secure FTP daemon”, 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 服務器設計開發的最開始的時候,高安全性就是一個目標。
vsftpd作爲FTP服務器,在Linux系統中是非常常用的。下面我們介紹如何在centos系統上安裝vsftp。
當前登錄用戶獲取root權限。執行su命令,輸入當前用戶密碼。
執行:su
檢測系統是否安裝過vsftpd,
執行:rpm -qa | grep vsftpd
若已安裝,會顯示已安裝的vsftpd版本號,
若沒有安裝,無顯示。
若已安裝過vsftpd,先卸載。卸載前,先停止服務 ,然後再卸載。
停止服務:service vsftpd stop
卸載:yum remove vsftpd
安裝。用yum命令在線安裝,命令如下:
yum -y install vsftpd
安裝後默認是未啓動,需執行start命令啓動,然後就可以訪問了,此時匿名賬戶即可訪問,考慮安全,需進一步設置。
啓動服務:service vsftpd start
此時在安裝vsftpd的機器,用瀏覽器訪問ftp://127.0.0.1 測試成功,且匿名可以訪問,直接進入pub目錄(因爲/var/ftp/pub是匿名用戶的默認訪問目錄),但是其他機器還不能訪問 ,需要繼續配置。
禁止匿名登陸,執行以下命令,配置vsftpb服務:
執行:vi /etc/vsftpd/vsftpd.conf
此時會進入編輯器窗口,這裏需要簡單瞭解vi編輯器的使用,可以參考:http://www.linuxidc.com/Linux/2013-03/80588.htm
簡單的使用是按i進入插入模式,進行編輯,按esc退出編輯模式,然後輸入:wq 保存修改並退出。
.
在vsftpd.conf文件中做如下修改:
按下i鍵,
設定不允許匿名用戶訪問(這行靠近文本內容上面,之前是disabled,改爲NO即可):
anonymous_enable=NO添加ftp用戶(這兩行比較靠下面,用#號註釋掉了,刪除#符號即可)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list之後按esc,輸入:wq 保存退出
上面配置的意義:userlist_enable=YES
此項配置/etc/vsftpd.user_list中指定的用戶也不能訪問服務器,若添加userlist_deny=No,則僅僅/etc/vsftpd.user_list文件中的用戶可以訪問,其他用戶都不可以訪問服務器。如過userlist_enable=NO,userlist_deny=YES,則指定使文件/etc/vsftpd.user_list中指定的用戶不可以訪問服務器,其他本地用戶可以訪問服務器添加上面指定的 /etc/vsftpd/chroot_list 文件。
執行:vim /etc/vsftpd/chroot_list
進入編輯器界面,直接輸入 :wq保存退出即可創建chroot_list文件。
此時使用
service vsftpd restart
重啓服務,再次訪問 ftp://127.0.0.1/,可以看到需要輸入賬號密碼了,說明上面的配置生效了。(這步先不執行也行,執行只是爲了及時看到修改效果。最後全部修改完,再執行一次也行,這樣可以直接看到最後效果)添加ftp用戶,執行以下命令 (不換行,下面是一條命令):
useradd -d /var/www/html -g ftp -s /sbin/nologin test
說明:其中,-d命令是指定用戶主目錄,-g是指定用戶分組,-s /sbin/nologin 是禁止用戶登陸系統,最後test是本次新建用戶的用戶名。
設置test用戶密碼,根據提示,輸入兩次。
執行:passwd test
密碼儘量設置字母加數字的組合,不要太過簡單
修改ftp用戶目錄權限,依次執行以下兩條命令:
執行:chown test:ftp /var/www/html
目的:設置test用戶到文件夾執行:
chmod 777 /var/www/html –R
目的:設置權限 777代表修改它的權限爲完全開放chown用法
用來更改某個目錄或文件的用戶名和用戶組的
chmod用法
用來修改某個目錄或文件的訪問權限。
參考
http://blog.csdn.net/doupei2006/article/details/8015986此時重啓服務
service vsftpd restart
在本機用test用戶登陸測試成功,但是外部機器還不能訪問,需要繼續配置(這步先不執行也行,執行只是爲了及時看到修改效果。最後全部修改完,再執行一次也行,這樣可以直接看到最後效果)。開放21端口 因爲ftp默認的端口爲21,而centos默認是沒有開啓的,所以要修改iptables文件
執行:vi /etc/sysconfig/iptables
進入編輯器界面,在行上面有22 -j ACCEPT 的那行下面另起一行輸入
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
然後esc退出編輯模式,輸入:wq保存退出。
重啓iptables (這步先不執行也行,執行只是爲了及時看到修改效果。最後全部修改完,再執行一次也行,這樣可以直接看到最後效果)
執行:service iptables restart
此時測試,正常情況下,本機和其他機器應該都可以訪問,但是無法返回文件列表。(就是隻能登陸,無返回數據,因爲有些瀏覽器會記住密碼,再次刷新無登陸頁面,只有無法訪問頁面,可以清除瀏覽器緩存或者換個之前沒登陸過的瀏覽器訪問)
修改selinux
SELinux(Security-Enhanced Linux) 是美國國家安全局(NAS)對於強制訪問控制的實現,是 Linux上最傑出的新安全子系統。NSA是在Linux社區的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,進程只能訪問那些在他的任務中所需要文件。SELinux 默認安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作爲其他發行版上容易安裝的包得到。
執行:
getsebool -a | grep ftp
執行上面命令,在返回的結果看到兩行都是off,代表沒有開啓外網的訪問。
依次執行下面兩條命令,這兩條執行需要一定時間,耐心等待
setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on
再次執行:
getsebool -a | grep ftp
,如圖所示,修改成功:開啓passive模式(被動模式默認是開啓的,但是要指定一個端口範圍)
執行:vi /etc/vsftpd/vsftpd.conf
進入編輯模式,在最後面添加以下兩行:
pasv_min_port=30000
pasv_max_port=30999
然後esc退出編輯模式,輸入:wq 保存退出。
上面是指定被動模式端口範圍:表示端口範圍爲30000~30999,這個可以隨意改由於指定了這段端口範圍,iptables也要相應的開啓這個範圍。
執行:vi /etc/sysconfig/iptables
進入編輯模式,在21那一行下添加一行,和上面差不多,只是把21 改爲30000:30999
-A INPUT -p tcp -m state --state NEW -m tcp --dport 30000:30999 -j ACCEPT
然後esc退出編輯模式,輸入:wq 保存退出。
配置完成,重啓iptables和vsftp服務
執行:service iptables restart
執行:service vsftpd restart
爲便於演示效果,可以在用戶主目錄 /var/www/html 添加一個文件,
執行:vi /var/www/html/test.txt
打開編輯器窗口,按i,輸入內容,然後按esc退出編輯模式,輸入:wq 保存退出。
用另一臺機器訪問本機配置的服務,訪問 ftp://服務器ip ,例如 ftp://192.168.122.133/
使用windows系統下的ftp客戶端端軟件 FileZilla 測試,上傳下載都正常,配置成功。
- 配置開機默認啓動vsftp服務
執行:chkconfig vsftpd on
以上就是簡單配置過程,vsftpd.conf 文件還有更詳細的配置,比如歡迎語、上傳下載速度等,可以自行百度瞭解。
本文如有疏漏或錯誤,歡迎指出。