0
点赞
收藏
分享

微信扫一扫

vsftpd配置

weipeng2k 2022-01-20 阅读 192

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

在 FTP 的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。

安装 VSFTP

检查Linux系统是否安装了vsftpd

卸载vsftpd

安装

安装完后,有/etc/vsftpd/vsftpd.conf 文件,是 vsftp 的配置文件

查看安装路径

添加一个 Linux 用户

此用户就是用来登录 ftp 服务器用的。

这样一个用户建完,可以用这个登录。登录后默认的路径为 /home/ftpuser.

给用户添加密码。

 防火墙开启 21 端口

修改 iptables 文件

在有一行 22 -j ACCEPT 下面另起一行输入跟那行前面一样的,只是把 22 换成 21,

重启 iptables

修改 selinux

外网是可以访问上去了,可是发现没法返回目录(使用 ftp 的主动模式,被动模式还是无法访问),也上传不了,有可能是selinux 问题了。

修改 selinux:

执行以下命令查看状态:

执行上面命令,再返回的结果看到两行都是 off,代表,没有开启外网的访问

修改/etc/vsftpd/vsftpd.conf 文件:

重启 ftp 服务:

设置开机启动 vsftpd ftp 服务

/etc/vsftpd/vsftpd.conf配置

anonymous_enable=NO //设定不允许匿名访问

local_enable=YES //设定本地用户可以访问

write_enable=YES //设定可以进行写操作

local_umask=022 //设定上传后文件的权限掩码

anon_upload_enable=NO //禁止匿名用户上传

anon_mkdir_write_enable=NO //禁止匿名用户建立目录

dirmessage_enable=YES //设定开启目录标语功能

xferlog_enable=YES //设定开启日志记录功能

connect_from_port_20=YES //设定端口20进行数据连接(主动模式)

chown_uploads=NO //设定禁止上传文件更改宿主

#chown_username=whoever

xferlog_file=/var/log/xferlog //设定Vsftpd的服务日志保存路径。

xferlog_std_format=YES //设定日志使用标准的记录格式。

#idle_session_timeout=600 //设定空闲连接超时时间,单位为秒,这里默认

#data_connection_timeout=120 //设定空闲连接超时时间,单位为秒,这里默认。

#nopriv_user=ftptest

async_abor_enable=YES //设定支持异步传输功能。

ascii_upload_enable=YES

ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能。

ftpd_banner=Welcome to blah FTP service. //设定Vsftpd的登陆标语。

#deny_email_enable=YES // (default follows)

#banned_email_file=/etc/vsftpd/banned_emails

chroot_local_user=YES

chroot_list_enable=YES //禁止用户登出自己的FTP主目录。

chroot_list_file=/etc/vsftpd/chroot_list //这个文件里的用户不受限制,不限制在本目录。

ls_recurse_enable=NO //禁止用户登陆FTP后使用"ls -R"的命令。

该命令会对服务器性能造成巨大开销。

#listen=NO

#listen_ipv6=YES

userlist_enable=YES //设定userlist_file中的用户将不得使用FTP。

tcp_wrappers=YES //设定支持TCP Wrappers

allow_writeable_chroot=YES //这个可以解决chroot权限问题

systemctl restart vsftpd //重启vsftpd服务

遇到的问题

vsftpd连接中变换了IP地址

1.vi /etc/vsftpd/vsftpd.conf

2.添加:

pasv_promiscuous=YES

3.保存后退出

4.重新加载vsftpd   

service vsftpd reload

5.pasv_promiscuous选项参数说明:

此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO。

合理的用法是:在一些安全隧道配置环境下,或者更好地支持FXP时(才启用它)。

6.FTP模式与数据端口

FTP 分为两类,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP。这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过此链接进行传输操作指令。它们的区别在于使用数据传输端口(ftp- data)的方式。PORT FTP由FTP服务器指定数据传输所使用的端口,默认值为20。PASV FTP由FTP客户端决定数据传输的端口。 PASV FTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数据传输端口更为方便一些。

举报

相关推荐

0 条评论