Linux FTP 服務器配置


Ø  簡介

本文主要介紹 Linux FTP 服務器配置,包括如下內容:

1.  FTP 介紹

2.  安裝及配置

3.  用戶訪問

4.  匿名訪問

5.  連接ftp 的常用命令

6.  nmap 端口掃描工具

 

1.  FTP 介紹

FTPFile Transfer Protocol)文件傳輸協議,是用於在網絡上進行文件傳輸的一套標准協議,使用客戶/服務器模式,FTP 屬於網絡傳輸協議的應用層。

 

通俗的將就是,如果一台服務器上如果啟用了 ftp 協議,任意的一台電腦就可以與這台服務器建立連接。只要權限足夠,就可以從這個服務器上下載文件和上傳文件。

 

ftp 有兩個端口號,一個端口號是21,用於傳輸控制流;另一個端口號是20,用於傳輸數據流。也就是21號端口用於建立連接,20號端口用於傳輸數據。

 

n  常用的FTP 軟件

1)  Wu-FTP

古老、配置比較復雜,安全性不是特別理想。UNIX 系統自帶的 FTP 軟件。

 

2)  Proftp(Professional FTP daemon)

功能強大。

 

Proftpd 簡介:

全稱Professional FTP daemon,是針對Wu-FTP 的弱項而開發的,軟件在經過多年的發展之后完善了很多功能,ProFTP 已經成為繼Wu-FTP 之后最為流行的FTP 服務器軟件,越來越多的站點選用它構築安全高效的FTP 站點。Proftpd 軟件和vsftpd 一樣是一個開放源代碼的ftp 服務器軟件,但是可配置項比vsftpd 要多,是目前比較流行的ftp 軟件,Proftpd 的配置和apache 的配置相似,因此該軟件也十分容易配置和管理。

 

3)  vsftp(推薦使用)

安全、高速、穩定。具有以下特點:

1.  配置簡潔、使用方便,使用加密傳送安全性較高。

2.  絕大多數Linux 提供的官方下載,都是有vsftp 來提供的。

 

vsftp 簡介:

全稱Very secure FTP daemon,比ProFTPD 具有更高的安全性。vsftpd 使用一般身份啟動服務,降低了FTP 服務的PID 權限,使該服務即使被入侵也無法得到有效的系統管理權限。同時vsftpd 利用chroot 軟件來改變登錄者的根目錄,使登陸者只能在這個目錄中活動,限制了登錄者的執行權限。vsftpd 通過配置vsftpd.conf 文件來完成部署,設定簡單,登錄者僅分為anonymous real user 兩種。可以使用standalone super daemon 的方式啟動。vsftpd 無法控制每個目錄的流量、不能控制上傳和下載的比例、不能針對不同的登陸者進行不同的權限設定。

 

2.  安裝及配置

說明:以下標紅的文本為安裝vsftp 所需的步驟。

更多配置參考:https://www.cnblogs.com/wenwei-blog/p/8890436.html

 

n  首先檢查系統是否安裝了 vsftp

rpm -q vsftpd

vsftpd-3.0.2-27.el7.x86_64

 

如果沒有安裝,直接使用yum 安裝

yum -y install vsftpd

 

安裝完成后,啟動 vsftpd 服務

systemctl start vsftpd

systemctl enable vsftpd     #開機自啟動

或者 service vsftpd restart

啟動后默認支持用戶訪問宿主目錄,及匿名用戶訪問 /var/fpt目錄。

 

n  vsftp 相關配置

vi /etc/vsftpd/vsftpd.conf

1.  日志選項(建議開啟)

xferlog_enable=YES         #是否啟用日志功能,默認開啟

xferlog_std_format=YES     #日志文件記錄的格式(標准格式),默認開啟

xferlog_file=/var/log/xferlog   #如果啟用日志,需要將日志文件存放的位置注釋取消掉,默認注釋

提示:Linux 系統中,建議都將日志存放在 /var/log 目錄下。

 

2.  設置非標准端口

listen_port=18021          #默認連接斷開為21,數據傳輸端口為20

添加至 listen=NO 下面;

1024以上的端口,不與其他知名端口沖突;

使用非標准斷開時,需要顯示指定端口號,比如:ftp 192.168.1.150 18021

設置為非標准端口,主要是為了安全性考慮,可以防止如 nmap 這種端口掃描器掃描。

 

3.  其他選項

ftpd_banner=Welcome to blah Abeam FTP service.  #設置登錄歡迎信息

idle_session_timeout=600    #用戶會話空閑10分鍾后被斷開

max_clients=50             #服務器總的並發連接數為50

max_per_ip=3               #每個客戶機的最大連接數為3

 

3.  用戶訪問

1)  創建ftp 用戶

groupadd ftpg

useradd -g ftpg -d /opt/res ftpuser

echo "ftpuser" | passwd --stdin ftpuser

 

2)  防火牆開發相應端口

systemctl start firewalld

firewall-cmd --zone=public --list-ports --permanent     #查看開放端口

firewall-cmd --zone=public --add-port=18021/tcp --permanent

# 被動式端口

firewall-cmd --zone=public --add-port=30000-31000/tcp --permanent

firewall-cmd --reload

 

3)  設置 vsftpd.conf 配置文件

vi /etc/vsftpd/vsftpd.conf

必須設置以下3個選項:

local_enable=YES           #默認YES

write_enable=YES           #默認YESNO 禁止用戶上傳)

local_umask=022            #本地用戶創建目錄或文件的掩碼,默認022

local_max_rate=200000      #設置用戶最大傳輸速率為200KB/s(添加)

 

若啟用了 SELinux,允許用戶上傳文件到宿主目錄,需要執行以下命令:

getsebool -a | grep ftp     #查看狀態

setsebool -P tftp_home_dir on

setsebool -P allow_ftpd_full_access on

注意:否則用戶也無法上傳文件。

關閉 SELinux,編輯 /etc/selinux/config

SELINUX=enforcing 改為 disabled     #阿里雲 ESC 默認為 disabled

 

注意:阿里雲 ESC 一定不要設置為enforcing,否則重啟后無法連接。

clip_image002

后來,登錄阿里雲控制台遠程連接,發送遠程命令才得以解決!!!

mv /etc/selinux/config /etc/selinux/config.bak

sed 's/enforcing/disabled/g' /etc/selinux/config.bak >> /etc/selinux/config    #enforcing 替換為 disabled

 

 

4)  用戶訪問控制(兩種方式)

限制指定的用戶不可以訪問,而其他用戶可以訪問,適合大多數可以訪問:

userlist_enable=YES                    #默認只有該選項

userlist_deny=YES                      #是否為禁止模式

userlist_file=/etc/vsftpd.user_list     #每個用戶名占一行

 

限制指定的用戶可以訪問,而其他用戶不可以訪問,適合大多數用戶不可以訪問:

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd.user_list

 

5)  設置 chroot

chroot 就是把ftp 用戶宿主目錄作為/根目錄,使其用戶無法切換到其他目錄。

設置所有用戶執行chroot

vi /etc/vsftpd/vsftpd.conf

chroot_local_user=YES      #限制只能訪問自身目錄,默認注釋

allow_writeable_chroot=YES  #加入此項

 

設置指定的用戶不執行chroot

chroot_local_user=YES      #啟用chroot,默認注釋

chroot_list_enable=YES     #啟用指定的用戶執行chroot,默認注釋

chroot_list_file=/etc/vsftpd/chroot_list    #每個用戶名占一行,默認注釋

 

6)  啟用被動連接模式

vi /etc/vsftpd/vsftpd.conf  #末尾添加以下選項

#啟用被動連接模式

pasv_enable=YES

pasv_min_port=30000

pasv_max_port=31000

 

4.  匿名訪問

n  設置 vsftpd.conf 配置文件

vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO         #是否允許匿名訪問,默認為YES

anon_max_rate=100000       #設置匿名用戶最大傳送速率為100KB/s(這個選項默認沒有,需要添加,開啟匿名下載時建議開啟此限制)

 

開啟匿名用戶上傳功能

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

 

1)  匿名 FTP 用戶名:ftp anonymous,密碼為空即可;

 

2)  匿名用戶訪問的目錄:為ftp 偽用戶的宿主目錄下:/var/fpt

grep ftp /etc/passwd    #查看ftp 偽用戶的宿主目錄

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

 

3)  使用Windows DOS 命令測試連接 vsftp

C:\Users\Abeam>ftp 192.168.1.150

用戶(192.168.1.150:(none)): ftp    #用戶名輸入ftp

或者

C:\Users\Abeam>ftp

ftp> open 192.168.1.150

 

# 如果連接不上,關閉防火牆或開放2021端口

systemctl stop firewalld

 

5.  連接ftp 的常用命令

連接ftpftp FTP地址

ftp>

ls      #查看目錄下的文件

cd      #切換目錄(FTP服務器)

bin     #二進制傳輸(vsftp 不需要)

lcd     #指定下載目錄(本地),如果不指定默認下載到當前登錄目錄

get     #下載單個文件

mget    #下載多個文件

put     #上傳單個文件

mput    #上傳多個文件

prompt  #關閉交互模式(如:提示某某文件是否需要下載?關閉后默認為下載)

bye     #退出

open    #連接 FTP 服務器

user    #輸入 FTP 服務器用戶名和密碼

另外,ftp 命令也可以執行 Linux 的一些命令,如:pwd

 

說明:其實也可以不用掌握這些命令,通常都使用 FTP 的客戶端來實現上傳和下載。但如果需要實現自動化的上傳和下載,就需要了解這些命令了。

clip_image004

 

6.  nmap 端口掃描工具

nmap 基本功能有三個,一是探測一組主機是否在線;其次是掃描 主機端口,嗅探所提供的網絡服務;還可以推斷主機所用的操作系統 。

1)  光盤安裝nmap

mount /dev/cdrom /mnt/cdrom/

find /mnt/cdrom -name "nmap*"       #搜索軟件包

/mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm        #命令行

/mnt/cdrom/Packages/nmap-ncat-6.40-16.el7.x86_64.rpm    #圖形工具

rpm -ivh /mnt/cdrom/Packages/nmap-6.40-16.el7.x86_64.rpm    #安裝

 

2)  使用方法

nmap 192.168.1.150             認掃描1 – 65535

clip_image006

 

nmap -p1-1024 192.168.1.150     #掃描指定端口范圍

clip_image008


免責聲明!

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



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