vsftpd伺服器搭建

來源:互聯網
上載者:User

標籤:vsftpd 伺服器 ftp 虛擬使用者

什麼是vsftpd?

      vsftpd是一個類UNIX作業系統上的一個FTP伺服器,包括linux。vsftpd全稱是very secure FTP daemon(非常安全的FTP進程),顧名思義,安全是它的一大特性。

        比如說vsftpd是在chroot模式下工作的,通俗chroot模式就是把它禁錮在一個目錄中,禁止它訪問別的目錄。如果你不是用chroot模式,使用系統使用者帳號登陸FTP時,那麼便有了這個使用者的所有權力,這樣豈不是很不安全?


理解FTP協議

        在配置vsftp之前,先說一下什麼是FTP,FTP(File Transfer Protocol)是檔案傳輸通訊協定的簡稱。工作於應用程式層,用於上傳或下載檔案,能夠將一個主機的檔案分享權限設定給其他主機。

        FTP有兩種串連方式,命令串連和資料連線。命令串連也叫控制串連,是一直線上,21/tcp,和伺服器進行溝通。資料連線是按需開啟,按需關閉的,請求下載檔案時開啟,傳輸完畢後關閉。

        FTP有兩種模式,主動FTP和被動FTP。

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/5D/2C/wKioL1UiKOSCKKTZAAChNGg4jgw140.jpg" title="QQ20150ddddddddddddd406142829.png" alt="wKioL1UiKOSCKKTZAAChNGg4jgw140.jpg" />

        主動FTP有兩次TCP三向交握,最終在20號連接埠建立書籍串連。一次是用戶端發起,另一次由伺服器端發起。首先用戶端以大於1024的源連接埠向FTP的伺服器端21號目標連接埠發起串連請求。另一次是FTP伺服器端主動發起到用戶端的串連,使用20號源連接埠,主動向用戶端的1025號連接埠發起串連請求。但是防火牆可能會阻止,因此有了被動FTP。

        被動FTP伺服器端只是用21號連接埠,也有兩次TCP的三向交握,只不過三向交握都是由用戶端發起的。第一次用戶端以1024為源連接埠向FTP伺服器的21號連接埠發起串連請求,FTP伺服器告訴用戶端使用1024--5000的連接埠進行資料轉送,這個訊息幀屬於第一次三向交握的一部分。而後第二次三向交握開始,用戶端使用1025號源連接埠主動串連伺服器端的發來的連接埠號碼。這樣都是用戶端發起的串連請求,防火牆便不會阻止。


FTP使用者

             FTP有三類使用者,無論那種使用者都要映射為一個系統使用者。

    匿名使用者:anonymous使用者

    系統使用者:passwd中記錄的使用者

    虛擬使用者:建立一個系統帳號,將所有帳號映射到此使用者訪問,使用的不是系統使用者帳號,提高安                          全性


簡單配置vsftpd

    rpm包安裝

        # yum install vsftpd

        # service vsftpd on

        # chkconfig vsftpd on


    vsftp設定檔調整及說明

        annoymous_enable=YES                         允許匿名使用者登入

        local_enable=YES                                     是否開啟系統使用者

        write_enable=YES                                     是否允許系統使用者上傳檔案

        anon_upload_enable=NO                          匿名使用者不可上傳檔案

        local_umask=022                                       上傳檔案的許可權設定

        anon_mkdir_write_enable=NO                   匿名使用者不能建立目錄

        anon_other_write_enable=NO                   匿名使用者不能刪除檔案

        dirmessage_enable=YES                          顯示使用者歡迎資訊,比如在/var/ftp/.message檔案中

                                                                                   寫一句‘Welcome‘,則使用者進入/var/ftp目錄時,會                                                                                                顯示此資訊。

                                                                            

        xferlog_enable=YES                                  開啟日誌傳輸

        xferlog_file=/var/log/vsftpd.log                   定義日誌傳輸檔案,若不存在,請事先建立

        #chown_upload                                         上傳檔案後將屬主改為其他使用者

        #chown_username                                    改為哪個使用者,不建議root使用者

        connect_from_port_20=YES                      20號連接埠進行資料連線

        idle_session_timeout =600                        控制連線逾時時間

        data_connection_timeout =120                  單次資料連線時間

        #ascii_upload_enable=YES

        #ascii_download_enable=YES                   以純文字格式實現上傳下載,有兩種資料轉送模式,文                                                                                        本和二進位,建議不要開啟此項。

        

        chroot_local_user=YES                              每一個使用者都禁錮在家母錄中

        #chroot_list_file_enable=YES                     用一個檔案將使用者鎖在家目錄下

        #chroot_list_file=/etc/vsftpd/chroot_list       哪一個檔案中建立一個使用者列表,所有在此列表中的用                                                                                     戶都禁錮在家目錄當中。

        listen=YES                                                   vsftpd是否工作為一個獨立的守護進程

        pam_service_name=vsftpd                         所有寫在ftpuser都禁止登入ftp伺服器

        userlist_enable=YES                                   拒絕user_list中使用者登入

        userlist_deny=YES                                      拒絕user_list中使用者登入,若改為NO則僅允許user_list                                                                                      中使用者登入

        #max_clients                                               最大登入FTP伺服器用戶端的個數

        #max_per_ip                                               每一個單獨IP允許發起幾個串連請求


基於mysql的虛擬使用者

# yum -y install mysql-server mysql-devel

# service mysqld start

# chkconfig mysqld on


# tar xf pam_mysql-0.7RC1.tar.gz

# cd pam_mysql-0.7RC1

# ./configure --with-mysql=/usr --with-openssl

# make

# make install

mysql> CREATE DATABASE vsftpd

mysql>US E vsftpd

mysql> CREATE TABLE users (

    -> id INT AUTO_INCREMENT NOT NULL,

    -> name CHAR(20) BINARY NOT NULL,

    -> password CHAR(48) BINARY NOT NULL,

    -> PRIMARY KEY (id));

mysql> GRANT SELECT ON vsftpd.* TO [email protected] IDENTIFIED BY ‘vsftpd‘;

mysql> GRANT SELECT ON vsftpd.* TO [email protected] IDENTIFIED BY ‘vsftpd‘;

mysql> FLUSH PRIVILEGES;

mysql> INSERT INTO users (name,password) VALUES (‘tom‘,‘xiaoming‘),(‘cat‘,‘xiaoming‘);


#vim /etc/pam.d/vsftpd.mysql

auth required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

account required /lib/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0


# useradd -s /sbin/nologin -d /var/ftproot vuser

# chmod go+rx /var/ftproot


# vim /etc/vsftpd/vsftpd.conf

    guest_enable=YES

    guest_username=vuser

    pam_service_name=vsftpd.mysql

# service vsfptd restart

即可。


本文出自 “在路上” 部落格,請務必保留此出處http://mingxiao.blog.51cto.com/8124243/1629366

vsftpd伺服器搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.