FTP搭建
安装vsftpd
shell
#安装vsftpd
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
systemctl restart vsftpd
创建测试用户
shell
#创建测试用户
useradd -d /home/ftptest -g ftp -s /sbin/false ftptest
passwd ftptest #admin12@#$..
echo "/sbin/false">>/etc/shells
#并将用户添加到chroot_list中 只添加用户名
vi /etc/vsftpd/chroot_list
配置防火墙
shell
#配置防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent
# 重启防火墙
firewall-cmd --reload
firewall-cmd --zone=public --list-ports
FTP配置更改
shell
vim /etc/vsftpd/vsftpd.conf
#配置config
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#ftpd_banner=Welcome to blah FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#设置本地用户登录后所在目录。
# local_root=/var/ftp/test
##全部用户被限制在主目录。
chroot_local_user=YES
##启用例外用户名单。
chroot_list_enable=NO
##指定例外用户列表文件,列表中用户不被锁定在主目录。
#chroot_list_file=/etc/vsftpd/chroot_list
##开启被动模式。
pasv_enable=YES
allow_writeable_chroot=YES
##本教程中为Linux实例的公网IP。
pasv_address=101.126.18.12
##设置被动模式下,建立数据传输可使用的端口范围的最小值。
##建议您把端口范围设置在一段比较高的范围内,例如50000~50010,有助于提高访问FTP服务器的安全性。
pasv_min_port=50000
##设置被动模式下,建立数据传输可使用的端口范围的最大值。
pasv_max_port=50010
cmds_allowed=MKD,FEAT,REST,CWD,LIST,MDTM,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
FTP配置详解
关于userlist_enable的解释https://blog.csdn.net/weixin_34411563/article/details/92101684
参数 | 默认值 | 描述 |
---|---|---|
anonymous_enable | YES | 控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。 |
write_enable | YES | 是否允许登陆用户有写权限。全局设置,默认值为YES。 |
no_anon_password | NO | 若启动此功能,则匿名登入时不会询问密码。默认值为NO。 |
ftp_username | ftp | 定义匿名登入的用户名。默认值为ftp。 |
anon_root | /var/ftp | 匿名登入时所登入的目录。默认值为/var/ftp。注意,ftp目录不能具有777权限属性。 |
anon_upload_enable | NO | 如果设为YES,则允许匿名登入者上传文件(非目录),前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。 |
anon_world_readable_only | YES | 如果设为YES,则允许匿名登入者下载可读的文件(下载到本地阅读,不能直接在FTP服务器中打开)。默认值为YES。 |
anon_mkdir_write_enable | NO | 如果设为YES,则允许匿名登入者创建目录,前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。 |
anon_other_write_enable | NO | 如果设为YES,则允许匿名登入者除了上传和创建目录外的其他操作,例如删除或重命名文件。默认值为NO。 |
chown_uploads | NO | 设置是否更改匿名用户上传文件的所有者。默认值为NO。 |
chown_username | username | 设置匿名用户上传文件的所有者名称。建议不设置为root。 |
anon_umask | 077 | 设置匿名用户上传或创建文件时的umask值。默认为077,即新创建的文件权限为700。 |
deny_email_enable | NO | 若启用此功能,则必须提供/etc/vsftpd/banner_emails文件,其中包含不允许访问的email地址。匿名登入时会要求输入email地址,如果地址在此文件中,则拒绝访问。默认值为NO。 |
banned_email_file | /etc/vsftpd/banner_emails | 包含不允许访问的email地址的文件路径。仅在deny_email_enable=YES时使用。 |
local_enable | YES | 控制是否允许本地用户登入,YES为允许,NO为不允许。默认值为YES。 |
local_root | /home/username | 本地用户登入时切换到的目录。默认为各用户的家目录。 |
local_umask | 022 | 本地用户创建文件时的umask值。默认为022。 |
file_open_mode | 0755 | 本地用户上传文件后的文件权限。与chmod使用的数值相同。默认为0666。 |
dirmessage_enable | YES | 如果启用此选项,用户首次进入目录时,系统会检查是否存在.message文件,并显示其内容(通常为欢迎信息或目录说明)。默认为开启。 |
message_file | .message | 设置目录消息文件的名称,文件中包含要显示的信息。默认为.message。 |
banner_file | /etc/vsftpd/banner | 用户登入时显示的欢迎信息或说明的文件路径。默认为无。如果欢迎信息较多,则使用此配置项。 |
ftpd_banner | Welcome to BOB's FTP server | 定义显示的欢迎信息字符串。banner_file为文件形式,而ftpd_banner为字符串形式。默认为无 |