實驗 實現基於MYSQL的FTP虛擬使用者

2021-08-09 10:12:34 字數 2797 閱讀 7135

說明:本實驗在兩台centos主機上實現,一台作為ftp伺服器,一台做mysql資料庫伺服器。

注意:須把selinux跟防火牆關閉。

1.在ftp伺服器安裝所需要的包組。

[root@anuuy ~]# yum install vsftpd 

[root@anuuy ~]# yum groupinstall "development tools"

[root@anuuy ~]# yum install mariadb-devel

[root@anuuy ~]# yum install pam-devel    #順序無所謂。

[root@anuuy ~]# yum install openssl-devel

[root@anuuy ~]# yum install mariadb

[root@anuuy ~]# systemctl start vsftpd  #啟動服務

[root@anuuy ~]# systemcrl start mariadb  #啟動資料庫服務

2.在ftp伺服器編譯pam_mysql 安裝包位址

[root@anuuy ~]# tar xvf pam_mysql-0.7rc1.tar.gz  #yum安裝也可以,本機沒有所以編譯安裝的,yum可以安裝請忽略此步驟。

[root@anuuy ~]# cd pam_mysql-0.7rc1/ #進入解壓縮目錄執行以下操作

[root@anuuy ~]# ./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security

[root@anuuy ~]# make && make install #安裝

3.在ftp伺服器,準備虛擬使用者對映的系統使用者

[root@anuuy ~]# mkdir upload #建立檔案

[root@anuuy ~]# chown ftpvuser upload #更改upload檔案的屬主為ftpvuser

4.在mysql 伺服器,準備使用者和資料表

[root@sunny ~]# yum install mariadb-server  #安裝資料庫

[root@sunny ~]# systemctl start mariadb   #啟動資料庫

[root@sunny ~]# mysql #進入資料庫

mariadb [(none)]> create database ftpdb; #建立名稱為ftpdb的資料庫

mariadb [(none)]> grant all on ftpdb.* to ftpuser@'172.18.19.%' identified by

'centos';   #授權

mariadb [(none)]> create table ftpvusers (id int unsigned auto_increment primary key,username char(30),password char(48)); #建立表

mariadb [(none)]> insert ftpvusers (username,password) values ('ftpuser1',password('centos')),('ftpuser2',password('centos'));  #新增記錄

mariadb [ftpdb]> flush privileges;   #重新整理策略

5.在ftp伺服器,建立pam配置檔案

[root@anuuy ~]# vim /etc/pam.d/ftp.mysql

auth required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2

account required pam_mysql.so user=ftpuser passwd=centos host=192.168.25.108 db=ftpdb table=ftpvusers usercolumn=username passwdcolumn=password crypt=2

6.在ftp伺服器呼叫ftp.mysql檔案。

[root@anuuy ~]# vim /etc/vsftpd/vsftpd.conf

pam_service_name=ftp.mysql   #更改為ftp.mysql

guest_enable=yes

#新增guest_username=ftpvuser    #作業系統賬號對映成虛擬賬號

user_config_dir=/etc/vsftpd

/vusers.conf.d/

#指定虛擬使用者許可權配置檔案的所在的目錄

7.在ftp伺服器上建立虛擬使用者許可權配置檔案

[root@anuuy ~]# mkdir /etc/vsftpd/vusers.conf.d/

[root@anuuy ~]# vim /etc/vsftpd/vusers.conf.d/ftpuser1  #建立檔案

anon_upload_enable=yes

#寫入此**,**意思:開啟匿名上傳檔案

[root@anuuy ~]# vim /etc/vsftpd/vusers.conf.d/ftpuser2

anon_upload_enable=yes

#允許匿名使用者上傳檔案

FTP協議解析與實現(通過實驗講述FTP協議)

配置server 選擇edit setting,設定如下 增加登陸使用者和共享目錄,選擇edit user 登陸測試,在瀏覽器中輸入本機ip,可以看到共享目錄下的檔案。一 輸入ftp伺服器的ip和命令埠號,即21,進行tcp連線 二 登陸伺服器。ftp常用的命令見下文,注意傳送的命令都需要換行 三 ...

基於MFC實現的簡單FTP客戶端

在windows環境下,使用vc 開發工具實現乙個ftp客戶端軟體。在本次ftp的設計中主要使用wininet api程式設計,無需考慮基本的通訊協議和底層的資料傳輸工作,mfc提供的wininet類是對wininet api函式封裝而來的,它為使用者提供了更加方便的程式設計介面。而在該設計中,使用...

基於MFC實現的簡單FTP客戶端

在windows環境下,使用vc 開發工具實現乙個ftp客戶端軟體。在本次ftp的設計中主要使用wininet api程式設計,無需考慮基本的通訊協議和底層的資料傳輸工作,mfc提供的wininet類是對wininet api函式封裝而來的,它為使用者提供了更加方便的程式設計介面。而在該設計中,使用...