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


一、硬件描述

1.1 雲服務器:騰訊雲

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

1.2 本地配置

操作系統:windows 8.1

二、遠程登陸服務器(ubuntu為例)

2.1 操作教程

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

2.2 踩過的坑

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

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

三、搭建vsftpd服務器

3.1 下載vsftpd

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

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

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

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

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

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

由於ftp涉及到端口開放的問題,所以我們把selinux關閉。

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.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’

五、參考文獻

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM