搜尋
首頁運維linux運維linux運維之搭建符合自己要求的vsftp服務

當我們在伺服器上安裝好了vsftpd這個軟體後,並且已經理解該軟體的主設定檔/etc/vsftpd/vsftpd.conf後,我們就可以搭建出自己想要的ftp服務了。

指定連接埠等

listen_port=21 設定監聽的連接埠

download_enable=YES 允許下載檔案

max_clients=100 限制並發客戶端連線數

max_per_ip=100 限制統一ip的並發連結數

##禁止匿名、實體使用者登陸

#先把匿名使用者登陸給關了,不給匿名使用者瀏覽權限。

anonymous_enable=NO

那為什麼不允許實體使用者登陸呢?因為實體使用者本來就可以用更安全的sftp登陸,所以,就不用使用ftp協定登陸了。另外,因為ftp是明文傳輸協議,如果帳號密碼被截獲了,那就不好了。

如何禁止實體使用者登陸呢?在文章下方設定虛擬使用者的第三步驟會講到,把/etc/pam.d/vsftpd下的所有內容都註解掉。

主動連接、被動連接設定

我們想要建立既要支援主動連接模式也支援被動連接,那麼設定如下:

主動連線模式的連接埠設定

connect_from_port_20=YES

設定防火牆,將21埠放行,另外不用開啟20埠,直接對於主機主動向外請求的而回應的封包允許進入本機( establish/related)。

iptables -A INPUT -p tcp --dport 21 -j ACCEPT # FTP服务
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT

開啟被動模式,被動連線的連接埠限定為10001~11000中的任一個。


pasv_enable=YES
pasv_min_port=10001
pasv_max_port=11000

設定防火牆,允許10000~11000之間的連接埠開放。

iptables -A INPUT -p tcp --dport 10001::11000 -j ACCEPT # ftp被动连接端口

設定虛擬使用者

#設定虛擬使用者的步驟如下:

  1. 建立虛擬使用者口令檔

  2. 產生虛擬使用者口令認證檔案

  3. #編輯vsftpd的PAM認證檔案

建立本機對應目錄並設定宿主目錄權限

修改設定檔。

給每個虛擬使用者弄一個單獨的設定檔

#1.建立虛擬使用者的口令檔,該檔案的格式為奇數行為用戶名,偶數行為密碼。下面建立一個這樣的檔案/etc/vsftpd/vusers,內容如下:

ftptest1
111111
ftptest2
222222

2.產生虛擬使用者口令認證檔案

,執行下列指令:

db_load -T -t hash -f  /etc/vsftpd/vusers  /etc/vsftpd/login.db
當指令正確執行後,就會出現/etc/vsftpd/login.db檔。為了安全起見,我們將該檔案的權限設定為600.
chmod 600 login.db

3.編輯虛擬使用者所需的PAM設定檔

vim /etc/pam.d/vsftpd

將先前的內容全部給註解掉,並新加入兩行

auth    required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login 
account   required    /lib64/security/pam_userdb.so  db=/etc/vsftpd/login

注意,如果是32位元的去掉lib後面64,另外login後面不用加入後綴的。這樣操作之後,實體使用者就不能登陸ftp服務了。

4.建立本地映射目錄並設定宿主目錄權限。

######建立虛擬使用者的宿主使用者###
# useradd -d /home/vsftp -s /sbin/nologin ftpuser
###修改目錄權限為755###
# chmod 755 /home/vsftp/
######5.修改設定檔。 #########把下面幾行設定資訊寫入到/etc/vsftpd/vsftpd.conf設定檔中。 ###
# 开启虚拟用户登陆功能
guest_enable=YES

# 将虚拟用户与宿主用户对应
guest_username=ftpuser

# pam认证文件(该配置默认存在)
pam_service_name=vsftpd

# vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了,所以要加入下面配置
allow_writeable_chroot=YES
######6.給每個虛擬使用者建立單獨的設定檔。 #########若想給每個虛擬使用者都建立單獨的設定文件,則需要在主設定檔中加入###
user_config_dir=/etc/vsftpd/config
###指定虛擬使用者的設定檔路徑。接下來給兩個虛擬用戶建立各自的配置文件:###
# ftptest1虚拟用户的配置文件

# 创建虚拟用户家目录
# mkdir /home/vsftp/ftptest1
# chown ftpuser:ftpuser /home/vsftp/ftptest1/

# 建立配置文件
# mkdir /etc/vsftpd/config 
# vim /etc/vsftpd/config/ftptest1  <=== 虚拟用户各自配置文件和自己的用户名对应起来

# 指定家目录
local_root=/home/vsftp/ftptest1
# 允许相关权限
download_enable=yes
anon_upload_enable=yes
anon_other_write_enable=YES
anon_mkdir_write_enable=yes
anon_world_readable_only=no
# 设置最大传输速度,单位b/s
anon_max_rate=100000
###注意:目前還沒給ftptest2虛擬用於建立單獨的配置文件,那麼對於此用戶就使用主配置文件的配置(/etc /vsftpd/vsftpd.conf)######更多相關技術文章,請造訪###linux系統教學###專欄! ###

以上是linux運維之搭建符合自己要求的vsftp服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

什么是linux交叉编译什么是linux交叉编译Apr 29, 2022 pm 06:47 PM

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

linux中rpc是什么意思linux中rpc是什么意思May 07, 2022 pm 04:48 PM

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境