Vsftpd3.0.3安装部署配置
导读
vsftpd(very secure ftp daemon,非常安全的FTP守护进程)文件传输协议
主动模式:FTP服务器主动向客户端发起连接请求
被动模式:FTP服务器等待客户端发起连接请求(FTP默认工作模式)
当前环境为Centos7.5.1804
演示为本地用户登录
安装教程
安装依赖
[root@master ~]# yum -y install wget gcc gcc-c++ make tcp_wrappers-devel openssl-devel libcap-devel
下载软件包并解压
[root@master ~]# wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz[root@master ~]# tar xvf vsftpd-3.0.3.tar.gz[root@master ~]# cd vsftpd-3.0.3/
修改配置文件并编译
[root@master vsftpd-3.0.3]# sed -i 's/^#undef/#define/g' builddefs.h#ifndef VSF_BUILDDEFS_H#define VSF_BUILDDEFS_H#define VSF_BUILD_TCPWRAPPERS //允许使用TCP Wrappers(默认是undef)#define VSF_BUILD_PAM //允许使用PAM认证#define VSF_BUILD_SSL //允许使用SSL(默认是undef)#endif /* VSF_BUILDDEFS_H */[root@master vsftpd-3.0.3]# make && make install
拷贝配置文件
#拷贝配置文件[root@master vsftpd-3.0.3]# cp vsftpd.conf /etc/拷贝身份认证模块 [root@master vsftpd-3.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
防火墙开放端口
[root@master ~]# firewall-cmd --zone=public --add-port=21-20/tcp --permanentsuccess [root@master ~]# firewall-cmd --reloadsuccess
启动服务
[root@master ~]# vsftpd
以下为vsftpd配置文件部分内容:
#####匿名用户配置!###### 是否允许匿名登录FTP服务? 默认情况下允许注释anonymous_enable=NO# 如果设为YES,将允许匿名用户使用安全的SSL连接。#allow_anon_ssl=NO# 如果设为YES,将允许匿名用户在特定条件下创建新目录。选项 write_enable 需被激活#anon_mkdir_write_enable=NO#如果设置为YES,将允许匿名用户执行写操作,除了上传和创建目录(例如删除和重命名)。#anon_other_write_enable=NO#如果设置为YES,将允许匿名用户在特定条件下上传文件。选项 write_enable 需被激活#anon_upload_enable=NO#启用后,匿名用户将只能下载以下文件:可读取的。这是承认ftp用户可能拥有文件,特别是在存在上传内容的情况下。#anon_world_readable_only=YES# 如果激活则所有匿名登录均被强制使用安全SSL连接以便在数据连接上发送和接收数据。#force_anon_data_ssl=NO# 如果激活则所有匿名登录均被强制使用SSL连接才能发送密码#force_anon_logins_ssl=NO#启用后可以防止vsftpd请求输入匿名密码,将直接登录no_anon_password=NO#####!匿名用户配置##########Ascii配置!###### 启用后将在上传时接受ASCII模式的数据传输。#ascii_upload_enable=NO# 启用后将在下载时接受ASCII模式的数据传输。#ascii_download_enable=NO#####!Ascii配置###### 启用后,将启用称为"异步ABOR"的特殊FTP命令。#async_abor_enable=NO# 此选项仅针对vsftpd的非PAM版本有效。如果禁用,vsftpd不会爱/etc/shells种检查本地登录的有效用户shell.#check_shell=YES# 启用后允许使用SITE CHMOD命令。这仅适用于给本地用户,匿名用户永远不会使用SITE CHMOD。#chmod_enable=YES# 如果启用,所有匿名上传的文件的所有权都会更改给指定用户。依赖:chown_username#chown_uploads=NO#chown_username=whoever#如果为true 将OpenSSL连接诊断信息转储道日志文件中#debug_ssl=NO# 如果为true 则删除任何失败的上传文件#delete_failed_uploads=NO# 如果激活则可以提供匿名密码电子邮箱相应列表导致登录被拒绝#deny_email_enable=NO#banned_email_file=/etc/vsftpd.banned_emails# 您可以完全自定义登录标题字符串:#ftpd_banner=Welcome to blah FTP service.#####设置权限!######如果设置为NO,则所有目录列表命令都将授予拒绝权限。#dirlist_enable=YES#如果设置为NO,则所有下载请求都将拒绝收取权限。#download_enable=YES#如果启用将并行生成两个日志文件,/var/log/xferlog和/var/log/vsftpd.log#dual_log_enable=NO# 如果激活则所有非匿名登录都将强制使用SSL连接才能进行数据传输。force_local_data_ssl=YES# 如果激活则所有非匿名登录都将强制使用SSL连接才能进行数据传输。force_local_logins_ssl=YES#如果启用则所有非匿名登录均被分类为访客登录。#guest_enable=NO# 如果启用目录列表中所有用户和组信息将显示为ftp。#hide_ids=YES#启用后所有上传操作将对上传文件进行写锁定。所有下载将对下载文件进行共享读取锁定#lock_upload_files=YES#启用后将记录所有ftp请求和响应,并提供以下选项: xferlog_std_format#log_ftp_protocol=NO#启用后将允许使用"ls -R"。允许ls -R将浪费很多资源#ls_recurse_enable=NO#####!设置权限##########标准配置!###### 启用后,vsftpd以"侦听"模式启动,vsftpd将在后台运行进程background=YES# 取消注释以允许本地用户登录。local_enable=YES# 取消注释此选项可启用任何形式的FTP写命令。write_enable=YES# 本地用户的默认umask为077。您可能希望将其更改为022,local_umask=022# 激活目录消息-当远程用户# 进入某个目录。#dirmessage_enable=YES# 激活上载/下载的日志记录。#xferlog_enable=YES# 确保端口传输连接源自端口20 (ftp数据)。connect_from_port_20=YES# 如果愿意,您可以覆盖日志文件所在的位置。显示默认值下面。#xferlog_file=/var/log/vsftpd.log# 如果需要,可以将日志文件设置为标准ftpd xferlog格式。# 请注意,在这种情况下,默认日志文件位置为/var/log/xferlog.# xferlog_std_format=YES# 您可以更改默认值以使空闲会话超时。idle_session_timeout=600# 您可以更改默认值以使数据连接超时。data_connection_timeout=120# 建议您在系统上定义一个唯一的用户,# ftp服务器可以用作完全隔离且没有特权的用户。#nopriv_user=ftpsecure#secure_chroot_dir= /# 如果设置为YES,本地用户将被放置在chroot目录中登录后的主目录chroot_local_user=YES# 如果激活则可以提供放置在chroot在登陆时进入其主目录。如果chroot_local_user设为YES,则不同。这种情况下,列表变为不会放在chroot监听的用户列表。默认情况下包含此列表的文件是/etc/vsftpd.chroot_list,你可以使用chroot_list_file进行设置chroot_list_enable=YES# 设置监听用户列表#chroot_list_file=/etc/vsftpd.chroot_listallow_writeable_chroot=YES# 启用ipv4方式listen=YES# 启用ipv6方式#listen_ipv6=YES#####!标准配置#####
验证
Make时遇到的报错:
tcpwrap.c:16:20: fatal error: tcpd.h: No such file or directory #include <tcpd.h> ^compilation terminated.make: *** [tcpwrap.o] Error 1
解决方法:yum -y install tcp_wrappers-devel
/usr/bin/ld: cannot find -lcapcollect2: error: ld returned 1 exit statusmake: *** [vsftpd] Error 1
解决方法:yum -y install libcap-devel
ssl.c:28:25: fatal error: openssl/err.h: No such file or directory #include <openssl/err.h> ^ compilation terminated. make: *** [ssl.o] Error 1
解决方法: yum -y install openssl-devel
评论(0)