linux搭建ftp服務——未連接mysql數據庫的做法

   ftp服務很重要,這裏介紹ftp在linux上不連接mysql數據庫的搭建方法,ftp也可以連接mysql,有時間再生成文檔。

   先說明ftp的基本原理:FTP –File Transfer Protocol 文件傳輸協議。能夠在網絡上提供文件傳輸服務,遠程用戶可以上傳和下載文件。常使用TCP端口20作爲數據通道(傳輸文件和目錄列表)、TCP端口21作爲命令通道(傳輸用戶命令)。linux下常用的服務器有:proftpd、wuftpd、vsftpd等,我們一般使用vsftpd,直接在redhat系統盤用rpm安裝即可。ftp傳輸分爲主動模式和被動模式,主動與被動是相對服務器來區分的,即主動模式是服務器主動發起數據請求,服務器的端口號爲20;被動模式是客戶端主動發起數據請求,服務器端口爲1024及以上,爲了安全,建議用主動模式。

   實驗環境:rhel5.6

   實驗過程:

#mount /dev/cdrom /media        //掛載linux系統盤

#yum install vsftpd             //安裝vsftpd

#/etc/init.d/vsftpd start       //啓動vsftpd服務

到這裏,基本的vsftpd服務已經搭好,客戶端可以正常下載數據,如下截圖:

wKiom1NEsh3BFav2AAYJ9lfp67E382.jpg

   但是,到這裏登錄進來的用戶都屬於匿名用戶,匿名用戶若想上傳東西是不被允許的,下載與瀏覽都可以,應該再繼續配置以支持用戶上傳。

wKiom1NEtMPipUPjAAEKijjTS6s077.jpg

   進入/etc/vsftpd/vsftpd.conf,將上圖中的27行和31行前面的#去掉,即打開匿名用戶的上傳和新建文件夾功能。

#chmod o+w /var/ftp/pub        //修改ftp所在目錄的權限,允許匿名用戶上傳和新建,默認情況下,ftp會把用戶的需要上傳下載的東西放在/var/ftp/pub目錄下。

#/etc/init.d/vsftpd restart

   到這裏匿名用戶的上傳和新建目錄的功能可以打開,如下截圖:

wKiom1NEtuuhKG65AAMlpNb_qiU166.jpg

   但是,因爲只要是能夠訪問這個ftp站點的人都可以上傳數據,萬一上傳一個病毒玩意呢?所以應當設置用戶名密碼訪問,步驟如下:

#vim /etc/vsftpd/vsftpd.conf

   12 anonymous_enable=NO

   27 anon_upload_enable=NO

   31 anon_mkdir_write_enable=NO        //將允許匿名用戶新建上傳功能關掉

#service vsftpd restart

#useradd ftptest

#passwd ftptest            //創建允許訪問ftp用戶名密碼

wKiom1NEugbzaliCAALLYzjBy20363.jpg

wKioL1NEud7TRN4nAAIGkUBjP0E154.jpg

   到這裏就做到了需要用戶名密碼訪問ftp服務,用戶的ftp數據在用戶名的目錄下。

   爲了更加安全,可以將系統用戶限制在自己的主目錄下,做法如下:

#vim /etc/vsftpd/vsftpd.conf

wKioL1NEut3xOQfsAADax2RXk2U230.jpg即將96行、98行前面的#去掉,開啓chroot_list_enable和chroot_list_file

#/etc/init.d/vsftpd restart

登錄ftp嘗試:

wKioL1NEu6CCxGM7AALEMSV-PlM109.jpg

   發現之前可以訪問的現在無法登錄,在此之所以把這個問題貼出來,是想提醒自己以後碰到類似這種問題不要心慌、不要着急、尋找蛛絲馬跡解決問題,找到解題思路。在這種圖形界面下很難發現問題所在,不妨試試cmd命令行方式登錄ftp以需求解決問題突破口,如下截圖:

wKioL1NEwRyQEVdaAASgftEoohU638.jpg

   通過命令提示符可以看到客戶端打不開文件/etc/vsftpd/chroot_list,現在不妨進入ftp服務器看看這個文件

wKiom1NEw_niIvn9AACiru-e2V4385.jpg

   發現沒有這個文件,那就新建一個吧:

#touch /etc/vsftpd/chroot_list

wKioL1NExDvDa3NwAAFG_kL18i8461.jpg

   再次登錄:

wKioL1NExHPRy0dxAAHySgCmWQ8986.jpg

   成功了,到這裏沒有連接mysql數據庫但是帶有用戶名密碼訪問ftp服務搭建成功了,這裏強調的是要注意解決問題的方法。

附:

服務一覽


後臺進程:vsftpd


類型:System V 服務


使用端口:20(ftp-data),21(ftp)


所需RPM包:vsftpd


配置文件:/etc/vsftpd/vsftpd.conf

/etc/vsftpd.ftpusers

/etc/pam.d/vsftpd


日誌:/var/log/vsftpd.log

vsftpd.conf

/etc/vsftpd/vsftpd.conf是vsftpd主配置文件,配置參數如下:

anonymous_enable=YES#是否允許匿名ftp

local_enable=YES#是否允許本地用戶登錄

local_umask=022#默認的umask碼

anon_upload_enable=YES#是否允許匿名上傳文件

anon_mkdir_write_enable=YES#是否允許匿名用戶創建目錄

anon_other_write_enable=YES#是否允許匿名用戶刪除目錄和文件

dirmessage_enable=YES#是否顯示目錄說明文件,默認是YES但需要收工創建.message文件

xferlog_enable=YES#是否記錄ftp傳輸過程

connect_from_port_20=YES#是否確信端口傳輸來自

chown_username=username#是否改變上傳文件的屬主

xferlog_file=/var/log/vsftpd.log# ftp傳輸日誌的路徑和名字

xferlog_std_format=YES#是否使用標準的ftp xferlog模式

idle_session_timeout=600#設置默認的斷開不活躍session的時間

ata_connection_timeout=120#設置數據傳輸超時時間

ascii_upload_enable=YES

ascii_download_enable=YES#是否使用ascii碼方式上傳和下載文件

ftpd_banner=my FTP server#定製歡迎信息

deny_email_enable=YES

banned_email_file=/etc/vsftpd.banned_emails#是否允許禁止匿名用戶使用某些郵件地址,如果是輸入禁止的郵件地址的路徑和文件名

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list#是否將系統用戶限止在自己的home目錄下,如果選擇了yes那麼vsftpd.chroot_list中列出的是不chroot的用戶的列表

max_clients=N#如果以standalone模式起動,那麼只有N個用戶可以連接,其他的用戶將得到錯誤信息,默認是0不限制

message_file#設置訪問一個目錄時獲得的目錄信息文件的文件名。默認是.message


ftp用戶控制


/etc/vsftpd/ftpusers


/etc/vsftpd/user_list


/etc/vsftpd/chroot_list

ftpusers:所有用戶名出現在此文件中的用戶就不可以通過FTP登錄到系統。

user_list:當在vsftpd.conf文件中定義serlist_deny=YES(默認)時,在vsftpd.user_list文件中定義的用戶不可以使用FTP,當定義userlist_deny=NO,只有在vsftpd.user_list文件中定義的用戶可以使用FTP。

chroot_list:是否將系統用戶限止在自己的主目錄下。如果選擇了chroot_list_enable=YES,那麼chroot_list中列出的是被chroot的用戶列表;如果添加chroot_local_user=YES,那麼chroot_list中列出的是不被chroot的用戶列表。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章