【騰訊雲】騰訊雲服務器搭建ftp服務器

1、硬件描述

1.1 雲服務器:騰訊雲

雲主機
操做系統:Ubuntu Server 14.04.1 LTS 32位
CPU:1核
內存:1GB
系統盤:20GB(本地磁盤)
數據盤:0GB
公網帶寬:1Mbpshtml

1.2 本地配置

操做系統:windows 8.1linux

2、遠程登錄服務器(ubuntu爲例)

2.1 操做教程

官方文檔:如何遠程登陸linux服務器ubuntu

2.2 踩過的坑

須要特別注意的是,在使用ssh與putty保存session登錄時,有一個坑!

保存的session名稱應避免與用戶名衝突windows

3、搭建vsftpd服務器

3.1 下載vsftpd

redhat、centos等使用rpm包的發行版:centos

使用命令安裝:yum install vsftpd
使用下載包安裝:rpm -ivh vsftpd*.rpm安全

Debian、Ubuntu等使用DEB包黨的發行版:bash

使用命令安裝:apt-get install vsftpd服務器

若權限不足,則在命令前加 sudo ,下同session

3.2 關閉selinux(Debian、Ubuntu等使用DEB包的系統可跳過此步驟)

因爲ftp涉及到端口開放的問題,因此咱們把selinux關閉。ssh

selinux的介紹見博文——SELinux深刻理解
ftp命令鏈接使用21端口,數據鏈接則有兩種方式,即主動ftp和被動ftp。詳細見博文——FTP兩種工做模式介紹

通常在redhat、centos等使用rpm包的發行版默認安裝有selinux,而Debian、Ubuntu等使用DEB包的發行版不默認安裝

故對於Debian、Ubuntu等使用DEB包的服務器:

臨時關閉(重啓後,selinux會被打開):setenforce 0
開啓:setenforce 1
永久關閉:修改/etc/selinux/config文件,將SELINUX=enforcing改爲SELINUX=disabled,重啓機器

3.3 開啓ftp服務

service vsftpd start/stop/restart

對於服務操做的一些命令:

service [service名] [對service的操做如:start/stop/restart/status]

3.4 ftp用戶管理

出於安全考慮,通常不會使用系統用戶來作登錄ftp的操做,於是大部分狀況下會新建一個linux用戶(單純的一個用戶,不具有bash),並用此用戶進行ftp的登錄等操做

對於ftp用戶的管理,其遵循linux的用戶管理,根據/etc/passwd和etc/group來進行管理

新建用戶:

useradd test,passwd test

此處的useradd僅僅只是建立用戶,而可替換爲adduser(建立用戶家目錄\home\test)
兩者具體的區別在useradd 與adduser的區別有介紹

3.5 經過對 vsftpd 配置文件的修改實現對vsftpd的精細化配置

對於vsftpd具體的一些配置可經過修改配置文件來進行實現。

常見的配置文件有:

對於主配置文件,一些經常使用的配置:

anonymous_enable=YES #是否開啓匿名登錄
local_enable=YES #是否容許本地用戶(即linux系統中的用戶賬號)登陸FTP服務器,默認設置爲YES容許
write_enable=YES #是否容許本地用戶對FTP服務器文件具備寫權限,默認設置爲YES容許

一項比較重要的配置:(文字不重要,重點看圖)

用戶登陸FTP服務器後是否具備訪問本身目錄之外的其餘文件的權限
設置爲YES時,用戶被鎖定在本身的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list文件
必須與下面的設置項配合
chroot_list_enable=YES
被列入此文件的用戶,在登陸後將不能切換到本身目錄之外的其餘目錄
從而有利於FTP服務器的安全管理和隱私保護。此文件需本身創建
chroot_list_file=/etc/vsftpd/chroot_list

關於主配置文件的使用,史上最詳細的vsftpd配置文件講解(1) 這篇文章寫得很詳細

4、踩過的坑

4.1 不一樣系統配置文件的目錄不一樣

ubuntu不一樣於centos,ubuntu的配置文件目錄不在 /etc/vsftpd/vsftpd.conf 而是在 /etc/vsftpd.conf

4.2 明確vsftpd.conf 文件中幾個參數的做用

4.3 記得打開21端口的安全組

購買雲主機的時候,在作最初配置時,有引導安全組的配置。由於以前選了默認的打開「Linux安全組放通22端口」,而沒打開ftp的21端口。
因此,在配置完成ftp服務器時發現只能在服務器上登錄ftp,而經過外網沒法訪問ftp。這是一個比較容易被忽略的問題!(這是一個大坑)

官方文檔:如何配置安全組?

4.4 出現錯誤500 OOPS: vsftpd: refusing to run with writable root inside chroot()

若是啓用chroot,必須保證ftp根目錄不可寫,這樣對於ftp根直接爲網站根目錄的用戶不方便,因此建議假如ftp根目錄是/home/${cjh},則將訪問權限改寫以下
chmod a-w /home/cjh

4.5 寫文件時遇到-bash: data1.txt: Permission denied

sudo sh -c "echo a > 1.txt"

避免’sudo echo x >’ 時’Permission denied’

5、參考文獻

一、qcloud文檔中心, https://www.qcloud.com/doc/product
二、專題:vsftpd入門——安裝、配置、案例與常見問題。玩轉vsftpd服務器的四大高級配置, http://os.51cto.com/art/201008/222036.htm
三、FTP兩種工做模式介紹, http://www.softbar.com/blog/post/117.html
四、SELinux深刻理解, http://blog.csdn.net/myarrow/article/details/9856095/
五、useradd 與adduser的區別, http://blog.csdn.net/deit_aaron/article/details/9984701
五、史上最詳細的vsftpd配置文件講解(1), http://os.51cto.com/art/201008/221842.htm
六、避免’sudo echo x >’ 時’Permission denied’, http://blog.csdn.net/hejinjing_tom_com/article/details/7767127

相關文章
相關標籤/搜索