centos yum安裝與配置vsFTPd FTP服務器(轉)

vsftpd做爲FTP服務器,在Linux系統中是很是經常使用的。下面咱們介紹如何在centos系統上安裝vsftp。linux

 

什麼是vsftpd

vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特色是小巧輕快,安全易用。shell

vsftpd 的名字表明"very secure FTP daemon", 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 服務器設計開發的最開始的時候,高安全性就是一個目標。centos

安裝vsftpd

一、以管理員(root)身份執行如下命令安全

  1. yum install vsftpd

二、設置開機啓動vsftpd ftp服務服務器

  1. chkconfig vsftpd on

三、啓動vsftpd服務session

  1. service vsftpd start

管理vsftpd相關命令:app

中止vsftpd:  service vsftpd stopasync

重啓vsftpd:  service vsftpd restarttcp

配置防火牆

打開/etc/sysconfig/iptables文件編輯器

  1. vi /etc/sysconfig/iptables

在REJECT行以前添加以下代碼

  1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和關閉文件,重啓防火牆

  1. service iptables start

配置vsftpd服務器

默認的配置文件是/etc/vsftpd/vsftpd.conf,你能夠用文本編輯器打開。

  1. vi /etc/vsftpd/vsftpd.conf

添加ftp用戶

下面是添加ftpuser用戶,設置根目錄爲/home/wwwroot/ftpuser,禁止此用戶登陸SSH的權限,並限制其訪問其它目錄。

一、修改/etc/vsftpd/vsftpd.conf

將底下三行

  1. #chroot_list_enable=YES
  2. # (default follows)
  3. #chroot_list_file=/etc/vsftpd.chroot_list

改成

  1. chroot_list_enable=YES
  2. # (default follows)
  3. chroot_list_file=/etc/vsftpd/chroot_list

二、增長用戶ftpuser,指向目錄/home/wwwroot/ftpuser,禁止登陸SSH權限。

  1. useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

三、設置用戶口令

  1. passwd ftpuser

四、編輯文件chroot_list:

  1. vi /etc/vsftpd/chroot_list

內容爲ftp用戶名,每一個用戶佔一行,如:

peter
john

五、從新啓動vsftpd

  1. service vsftpd restart

另外,若是以爲之後管理ftp用戶名嫌麻煩,可使用centos官方發佈的腳本管理。地址以下:

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

 

 

打開vsftpd的配置文件,redhat的配置文件默認爲/etc/vsftpd.conf:
要想使用本地用戶登陸的話則只需更改下列選項
local_enable 改成YES
chroot_local_user=YES
#當設置爲YES時,本地用戶登陸後就自動轉到他們的用戶主目錄中去。
#注意!:該選項用安全問題,特別是當用戶有上傳文件或訪問shell的權限時.僅在你知道自#己要做什麼時才設置爲YES
download_enable=YES
#容許下載,若爲NO時則不容許下載。
write_enable=YES
#該選項用於設置是否容許使用會改變FTP文件系統的命令.這些命令有:STOP,DELE,RNFR,
#RNTO,MKD,RMD,APPE,SITE
#

下面是翻譯的vsftpd.conf手冊頁

#此爲vsftp的配置
#更多詳細信息,請見man 5 vsftpd.conf
#vsftpd 配置的格式很是簡單,格式
# option=value 注:以#開頭的爲註釋,將被忽略
# 如下爲Boolean選項,value爲YES或NO
#
listen=YES
#當爲YES時,vsftpd將以單獨模式運行.這意味着vsftpd沒必要以某種inetd運行,而是能夠
#直接執行.vsftpd執行後會本身偵聽和操做進入的鏈接
#
listen_ipv6=NO
#相似listen選項,但該選項使vsftpd偵聽的地址爲IPv6格式的.
#
allow_anon_ssl=NO
#該選項僅在ssl_enable爲YES時才用,若設爲YES表示容許匿名用戶經過ssl鏈接
#
anon_mkdir_write_enable=NO
#該選項設置爲YES時表示容許匿名用戶建立新的目錄,爲了使該選項可以起做用必須
#使write_enable爲YES且匿名的用戶必須有在父目錄寫入的權限
#
anon_other_write_enable=NO
#該選項設置爲YES時,匿名用戶除了具備上傳,建立目錄的權限外還具備其餘的權限
#如重命名等
#
anon_upload_enable=NO
#該選項爲YES時表示匿名用戶有上傳文件的權限.爲了使該選項工做必須使write_enable
#爲YES
#
anon_world_readable_only=YES
#該選項爲YES時,匿名用戶只能下載具備全局可讀屬性的文件
#
anonymous_enable=NO
#該選項控制着是否容許匿名用戶登陸.當爲YES時則同時容許匿名用戶ftp和anonyous登陸
#
ascii_download_enable=YES
#該選項用於指定是否容許下載時以ASCII模式傳輸數據
#
ascii_upload_enable=YES
#該選項設置是否容許上傳時以ASCII模式傳輸數據
#
async_abor_enable=NO
#該選項設置爲YES時,FTP命令將顯示爲"async ABOR"僅反對高級客戶端使用這一特性.
#
background=NO
#該選項設置當vsftpd以"listen"模式運行時,則在後臺運行偵聽程序
#
check_shell=YES
#該選項只對以non-PAM編譯的vsftpd起做用,當設置爲NO時,則vsftpd不會根據/etc/shells
#文件來檢查本地用戶登陸的shell是否有效
#
chmod_enable=YES
#該選項爲YES時,容許本地用戶使用CHMOD命令改變上傳的文件的權限.匿名用戶沒法使用
#CHMOD命令
#
chown_uploads=YES
#當爲YES時,全部匿名用戶上傳上來的文件都會將文件的所屬關係改成由chown_user-name
#指定的用戶
#
chroot_list_enable=NO
#該選項用於指定一系列可使用chroot()的用戶名,指定的用戶在登陸FTP後就會轉向
#本身的主目錄所在的位置.默認狀況下指定的用戶放在/etc/vsftpd.chroot_list文件中
#但能夠在chroot_list_file指定別的文件名
#
chroot_local_user=NO
#當設置爲YES時,本地用戶登陸後就自動轉到他們的用戶主目錄中去。
#注意!:該選項用安全問題,特別是當用戶有上傳文件或訪問shell的權限時.僅在你知道自#己要做什麼時才設置爲YES
#
connect_from_port_20=YES
#該選項用於設置是否使用20號端口傳輸數據.因爲安全的緣由,一些客戶端堅持使用
#20號端口,可是禁用該選項可使vsftpd運行在更低的特權中
#
debug_ssl=NO
#該選項爲YES時,將會把OpenSSl鏈接的診斷信息存儲在日誌文件中。
#
delete_failed_uploads=YES
#當設置爲YES時,在上傳文件失敗時刪除該文件.
#
#deny_email_enable=NO
#該選項用於指定一系列拒絕匿名用戶登陸的密碼郵件.默認狀況下包含郵件的文件爲
#/etc/vsftpd.banned_emails或由banned_email_file指定的文件中
#
dirlist_enable=YES
#是否容許用戶列出目錄的內容
#
dirmessage_enable=YES
#當爲YES時表示當用戶第一次進入一個新的目錄時會顯示目錄的信息.默認狀況下目錄的
#信息在目錄裏面的.message文件裏.可是你能夠用message_file來指定別的.
#
download_enable=YES
#容許下載,若爲NO時則不容許下載。
#
dual_log_enable=NO
#當設置爲YES時將會同時產生兩個日誌文件,一個爲/var/log/vsftpd.log(vsftpd本身
#風格的日誌文件)和/var/log/xferlog(wu-ftpd風格的日誌文件能夠被標準的工具分析)
#
force_dot_files=NO
#若設置爲YES時,在指定'ls -a'時會列出全部以.開始的隱藏文件,該選項則使.和..不列出
#
#force_anno_data_ssl=NO
#僅在ssl_enable爲YES時可用,當該選項爲YES時全部匿名用戶登陸時都要求使用SSL鏈接
#進行數據傳輸
#
#force_anon_logins_ssl=NO
#僅在ssl_enable爲YES時可用,當該選項爲YES時全部匿名用戶登陸時都要求使用SSl鏈接
#進行密碼傳輸
#
#force_local_data_ssl=YES
#僅在ssl_enable爲YES時可用,當爲YES時,全部非匿名用戶登陸時都要求使用SSL連接進
#行數據傳輸
#
#force_local_logins_ssl=YES
#僅在ssl_enable爲YES時可用,當爲YES時,全部非匿名用戶登陸時到要求使用SSL連接
#進行密碼傳輸
#
guest_enable=NO
#設置是否容許非匿名用戶做爲"guest"登陸,一個guest登陸用戶映射爲guest_username
#指定的一個用戶名
#
hide_ids=YES
#當設置爲YES時,全部目錄列表中的組和用戶的信息都被隱藏,用"ftp"代替。
#
#implicit_ssl=NO
#當爲YES時,在全部ftp鏈接的第一件事就是SSL握手
#
local_enable=YES
#控制是否容許本地用戶登陸.(/etc/passwd中指定的用戶登陸)
#
lock_upload_files=YES
#設置當用戶上傳文件時是否鎖住上傳的文件。
#
log_ftp_protocol=YES
#當爲YES時,全部FTP的請求和應答都被記錄在日誌文件中.可用於調試。
#
ls_recurse_enable=NO
#設置是否容許遞歸列出目錄及其子目錄中的內容
#
mdtm_write=YES
#容許使用MDTM設置修改的時間
#
no_anon_password=NO
#當爲YES時,將使vsftpd不會詢問匿名用戶的密碼
#
no_log_lock=NO
#當爲YES時在記錄日誌時不會鎖住日誌文件
#
one_process_model=NO
#容許登陸用戶只能使用一個進程
#
passwd_chroot_enable=NO
#和chroot_local_user一塊兒使用當爲YES時.在用戶轉到本身主目錄時不須要再輸入密碼。
#
pasv_addr_resolve=NO
#若你想使用主機名的話就設置爲YES
#
pasv_enable=YES
#該選項用於設置是否使用PASV方式來得到數據鏈接。
#
#pasv_promiscuous=NO #若是你想禁用PORT安全檢查(確保輸出的數據僅鏈接到客戶端)則設置爲YES.僅在你在你#知道你在做什麼時.#require_cert=NO#若設置爲YES時,則全部的SSl客戶端鏈接都須要提供證書,有效的證書在validate_cert中指#定#require_ssl_reuse=NO#當設置爲YES時,全部的SSl數據鏈接都須要檢閱SSL會話安全儘管該選項默認是安全的,可是他可#能會破壞許多FTP客戶端,因此你可能會禁用他#run_as_launching_user=NO#若你但願使用引導vsftpd運行的用戶去運行vsftpd.該選項在不能使用root用戶訪問FTP時很#頗有用。重要的警告!:不要使用該選項除非你真的知道你在做什麼.#secure_email_list_enable=NO#若你想指定一系列的郵件密碼讓匿名用戶登陸。默認狀況下郵件密碼存放在/etc/vsftpd.email_passwords,#但能夠email_password_file指定文件.#session_support=NO#該選項控制着vsftpd是否試圖控制着登陸會話.若vsftpd控制着登陸會話的話,則會更新utmp和wtmp日誌文件.#若是使用PAM認證的話他也會打開一個pam_session且只在退出登陸後關閉.若是你不須要登陸會話的話你可能#會關閉此選項。#setproctitle_enable=NO#若該選項爲YES時vsftpd會試着顯示系統中的進程的狀態信息。換言之就是報告影響一個vsftpd#會話的進程名。#ssl_enable=NO#是否支持SSl鏈接。#ssl_request_cert=YES#SSL鏈接時是否須要認證.#ssl_sslv2=NO#該選項僅在ssl_enable可用時才應用當爲YES時,容許SSL v2協議鏈接。TLS v1優先#ssl_sslv3=NO#該選項僅在ssl_enable爲YES時可用.容許使用SSl v3協議鏈接.TLS v1優先#ssl_tlsv1=YES#該選項僅在ssl_enable爲YES時可用,容許使用TLS v1協議。#strict_ssl_read_eof=NO#該選項爲YES時,在上傳數據時須要經過SSL鏈接的終端,而不是端口上的一個EOF#strict_ssl_write_shutdown=NO#當設置爲YES時,在下載數據時須要經過SSL鏈接的端口,而不是端口上的一個EOF#syslog_enable=NO#該選項爲YES時.任何原來記錄到/var/log/vsftpd.log的信息都將記錄到系統日誌文件中#tcp_wrappers=YES#當該選項爲YES時,鏈接時將經過tcp_wrapper訪問控制(wrap爲隱藏的意思)#text_userdb_names=NO#該選項爲YES時設置顯示用戶名和組名.默認狀況下使用的是UID和GID#tilde_user_enable=NO#控制vsftpd是否使用相對路徑.(以~/something顯示路徑)#use_localtime=YES#設置是否使用本地用戶所在的時區顯示時間.默認顯示的時間爲GMT時區的.#use_sendfile=YES#用於設置在你的系統中使用sendfile()系統調用來測試的內部設置。#userlist_deny=NO#設置禁止登陸的用戶列表,用戶列表在userlist_file中指定的文件中指定#userlist_enable=NO#容許從文件中加載容許登陸的用戶名列表#validate_cert=YES#若設置爲YES時,全部的SSL客戶端須要合法的認證書#virtual_use_local_privs=NO#該選項用於設置虛擬用戶是否擁有和本地用戶同樣的特權.#write_enable=YES#該選項用於設置是否容許使用會改變FTP文件系統的命令.這些命令有:STOP,DELE,RNFR,#RNTO,MKD,RMD,APPE,SITE#xferlog_enable=YES#設置爲YES時,會產生一個關於上傳和下載的日誌文件,默認的日誌文件爲/var/log/vsftp.log#可是能夠經過vsftpd_log_file指定別的日誌文件名#xferlog_std_format=NO#設置是否產生標準格式(wu-ftpd風格的)日誌文件.默認的文件名/var/log/xferlog#可是能夠經過xferlog_file指定別的日子文件名。######數字選項# 說明:如下爲數字選項,一個數字選項的值不能是負數,能夠指定一個八進制的數字#在數字前加上'0'就是八進制的數值不然默認爲十進制的數值.###accept_timeout=60#該選項用於設置一個PASV風格的鏈接的超時,單位爲s#anon_max_rate=1024#該選項用於設置匿名用戶的最大數據傳輸速度,單位b/s.若設置爲0時表示無限制#anon_umask=077#該選項用於設置匿名用戶建立文件時的權限掩碼.#chown_upload_mode=0600#該選項用於設置匿名用戶上傳文件時使用chown強制改變文件的權限值#connect_timeout=60#用於設置鏈接超時#data_connection_timeout=120#用於設置沒有進程使用時最大容許數據鏈接的超時#delay_failed_login=1#設置登陸失敗時要延遲1s後才能夠再次鏈接#delay_successful_login=0#設置登陸成功後的延遲時間,單位是s#file_open_mode=0777#設置上傳文件的權限,若你但願上傳的文件能夠被執行你須要設置爲0777#ftp_data_port=21#設置PORT風格的鏈接的端口,默認爲20#idle_session_timeout=300#設置遠程客戶端使用兩個FTP命令之間的最大時間,超時後則退出客戶端鏈接#listen_port=21#當vsftpd在單獨模式下運行時偵聽的端口號#local_max_rate=2048#設置本地用戶最大的傳輸速度,b/s,若設置爲0表示爲限制。#local_umask=0077#設置本地用戶上傳文件時的權限掩碼#max_clients=10#設置最大鏈接的IP數爲10#max_login_fails=5#設置在5次鏈接失敗後終止會話#max_per_ip=1#設置每一個IP地址最多能夠鏈接的數目爲1次。若設置爲0時表示無限次#pasv_max_port=0#設置使用PASV風格鏈接時最大的端口號,0表示無限制#pasv_min_port=0#設置使用PASV風格鏈接時最小的端口號,0表示無限制#trans_chunk_size=0#你可能不會改變這個選項設置,可是你能夠爲更低寬帶限制將此選項設置爲像8192同樣#####字符串設置##anon_root=/home/ftp/ftp#設置匿名用戶登陸後轉向的目錄##banned_email_file=/home/huangyandong/logs/vsftpd/vsftpd.banned_emails#設置存放匿名用戶郵件密碼列表的文件#banner_file=/home/huangyandong/logs/vsftpd/vsftpd.banner#設置包含當用戶登陸FTP時顯示的內容的文件,會覆蓋由ftpd_banner設置的字符串##ca_certs_file#該選項設置加載認證證書的文件#chown_username=huangyandong#設置當上傳文件後文件的所屬關係該爲huangyandong全部,僅在chown_uploads爲YES時#可用#chroot_list_file=/home/huangyandong/logs/vsftpd/vsftpd.chroot_list#設置包含容許轉到用戶主目錄的用戶名的文件名,僅在chroot_local_user和chroot_list_enable#爲YES時可用##cmds_allowed=PASV,RETR,QUIT#指定一系列由,隔開的容許使用的FTP命令#cmds_denied=DELE,RMD#指定一系列由,隔開的不容許使用的FTP命令#此處指定不容許刪除文件和目錄##deny_file#指定包含一系列不容許訪問的文件名的文件##dsa_cert_file#指定加載DSA證書的文件名##dsa_private_key_file#指定包含DSA私鑰的文件##email_password_file=/etc/vsftpd.email_password#指定包含郵件密碼的文件##ftp_username=ftp#指定操做匿名用戶使用的根目錄的用戶名##ftpd_banner#指定用戶登陸FTP時顯示的內容##guest_username=ftp#指定遊客映射的用戶名##hide_file#指定要隱藏的文件名匹配##listen_address#指定當在單獨模式下運行時偵聽的IP地址##listen_address6#指定當在單獨模式下運行時偵聽的IPV6地址#local_root=/home/ftp/ftp#指定本地用戶登陸後轉入的目錄##message_file#該選項指定包含當用戶轉入一個新的目錄時顯示的內容的文件,默認文件爲.message#僅在dirmessage_enable可用時纔有用#secure_chroot_dir=/home/huangyandong/logs/vsftpd/empty#指定安全的目錄名,該目錄不能被ftp用戶寫入,在FTP文件系統不能訪問是轉入的目錄##userlist_file=/etc/vsftpd.user_list#該選項用於指定在userlist_enable爲YES時,從指定文件中加載用戶列表#vsftpd_log_file=/home/huangyandong/logs/vsftpd/vsftpd.log#用於指定日誌文件,默認爲/var/log/vsftpd.log##xferlog_file=/home/huangyandong/logs/vsftpd/xferlog#用於在xferlog_enable爲YES時指定標準的日誌文件默認爲/var/log/xferlog#### This string is the name of the PAM service vsftpd will use.pam_service_name=vsftpd# This option specifies the location of the RSA certificate to use for SSL# encrypted connections.rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

相關文章
相關標籤/搜索