Bootstrap

Centos搭建FTP

FTP搭建

安装vsftpd

#安装vsftpd
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
systemctl restart vsftpd

创建测试用户

#创建测试用户
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

配置防火墙

#配置防火墙
firewall-cmd --zone=public --add-port=21/tcp --permanent 
# 重启防火墙
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

FTP配置更改

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_enableYES控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。
write_enableYES是否允许登陆用户有写权限。全局设置,默认值为YES。
no_anon_passwordNO若启动此功能,则匿名登入时不会询问密码。默认值为NO。
ftp_usernameftp定义匿名登入的用户名。默认值为ftp。
anon_root/var/ftp匿名登入时所登入的目录。默认值为/var/ftp。注意,ftp目录不能具有777权限属性。
anon_upload_enableNO如果设为YES,则允许匿名登入者上传文件(非目录),前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。
anon_world_readable_onlyYES如果设为YES,则允许匿名登入者下载可读的文件(下载到本地阅读,不能直接在FTP服务器中打开)。默认值为YES。
anon_mkdir_write_enableNO如果设为YES,则允许匿名登入者创建目录,前提是write_enable=YES,并且匿名用户必须具有对上层目录的写入权限。默认值为NO。
anon_other_write_enableNO如果设为YES,则允许匿名登入者除了上传和创建目录外的其他操作,例如删除或重命名文件。默认值为NO。
chown_uploadsNO设置是否更改匿名用户上传文件的所有者。默认值为NO。
chown_usernameusername设置匿名用户上传文件的所有者名称。建议不设置为root。
anon_umask077设置匿名用户上传或创建文件时的umask值。默认为077,即新创建的文件权限为700。
deny_email_enableNO若启用此功能,则必须提供/etc/vsftpd/banner_emails文件,其中包含不允许访问的email地址。匿名登入时会要求输入email地址,如果地址在此文件中,则拒绝访问。默认值为NO。
banned_email_file/etc/vsftpd/banner_emails包含不允许访问的email地址的文件路径。仅在deny_email_enable=YES时使用。
local_enableYES控制是否允许本地用户登入,YES为允许,NO为不允许。默认值为YES。
local_root/home/username本地用户登入时切换到的目录。默认为各用户的家目录。
local_umask022本地用户创建文件时的umask值。默认为022。
file_open_mode0755本地用户上传文件后的文件权限。与chmod使用的数值相同。默认为0666。
dirmessage_enableYES如果启用此选项,用户首次进入目录时,系统会检查是否存在.message文件,并显示其内容(通常为欢迎信息或目录说明)。默认为开启。
message_file.message设置目录消息文件的名称,文件中包含要显示的信息。默认为.message。
banner_file/etc/vsftpd/banner用户登入时显示的欢迎信息或说明的文件路径。默认为无。如果欢迎信息较多,则使用此配置项。
ftpd_bannerWelcome to BOB’s FTP server定义显示的欢迎信息字符串。banner_file为文件形式,而ftpd_banner为字符串形式。默认为无
;