Centos7 搭建vsftpd

1、安装vsftpd
  在线安装:yum -y install vsftpd
  离线安装:下载vsftp的rpm包,通过rpm -ivh xxx.rpm安装 2、修改/etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES xferlog_enable=YES xferlog_file=/var/log/xferlog userlist_enable=YES userlist_deny=NO tcp_wrappers=YES max_clients=300 max_per_ip=10 chroot_local_user=YES //去掉# 设置所有用户都不能离开家目录 chroot_list_enable=YES //去掉# 表示开启用户是否能登陆ftp限制 chroot_list_file=/etc/vsftpd/chroot_list //去掉# 特权用户,不受chroot_local_user=YES限制的用户 allow_writeable_chroot=YES //添加allow_writeable_chroot=YES 表示允许用户写入
cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT
//cmds_allowed控制用户的操作,只能上传,下载,重命名,不能删除文件
3、在/etc/vsftpd/chroot_list中删除需要禁止访问上级目录的用户 4、将/etc/vsftpd/user_list 文件中的用户全删除掉,将使用的ftp账号写入user_list文件中,例如 jszc
5、在/vat/ftp/ 创建目录,权限是775,属组是ftp mkdir /var/ftp/vsftpd chown -R root:ftp /var/ftp/vsftpd/ chmod 775 /var/ftp/vsftpd 6、创建jszc用户,并修改密码 useradd jszc -s /sbin/nologin -g ftp -d /var/ftp/vsftpd echo jszc.com |passwd --stdin jszc 7、测试上传、下载、删除文件。此时文件均在用户家目录下
8、systemctl restart vsftpd 重启vsftp即可

9、后续创建新用户,均采用(6、7、8)步骤,就可以共用一个ftp主目录

注:
  1、开机自启动systemctl enable vsftpd
  2、selinux设置:disable
  3、防火墙开启时,需放行21端口
    firewall-cmd --zone=public --add-port=21/tcp --permanent
    firewall-cmd --reload

-----------------------------------------------------------------------------
>>>查看防火墙状态
systemctl status firewalld
>>> 开启端口 firewall-cmd --zone=public --add-port=80/tcp --permanent  命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 >>> 重启防火墙 firewall-cmd --reload

systemctl stop firewalld.service           #停止firewall systemctl disable firewalld.service        #禁止firewall开机启动

  常用命令介绍
  firewall-cmd --state                           ##查看防火墙状态,是否是running
  firewall-cmd --reload                          ##重新载入配置,比如添加规则之后,需要执行此命令
  firewall-cmd --get-zones                       ##列出支持的zone
  firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
  firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
  firewall-cmd --add-service=ftp                 ##临时开放ftp服务
  firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
  firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
  firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
  iptables -L -n                                 ##查看规则
  man firewall-cmd                               ##查看帮助

------------------------------------------------------------------------------ 

 用户突然想新增目录和用户

新增FTP目录:mkdir /var/ftp/vsftpd/3PAR
修改FTP属组:chown -R root:ftp /var/ftp/vsftpd/3PAR
修改FTP权限:chmod -R 775 /var/ftp/vsftpd/3PAR

新增用户:useradd jszc -s /sbin/nologin -g ftp -d /var/ftp/vsftpd
添加用户密码:echo jszc.com |passwd --stdin jszc
更改用户家目录:vi /etc/passwd
添加新用户到vsftpd的用户list中:vi /etc/vsftpd/user_list
重启vsftpd服务:systemctl restart vsftpd

 

vsftp 配置文件翻译
anonymous_enable=YES 是否允许匿名登陆 local_enable=YES 允许本地登陆 write_enable=YES 启用任何形式的ftp 写入命令 local_umask=022 FTP上本本地的文件权限,默认是077,不过vsftp安装后的配置文件里默认是022 anon_upload_enable=YES 允许匿名ftp 用户上传文件 anon_mkdir_write_enable=YES 允许匿名用户 创建新的目录 dirmessage_enable=YES 激活目录消息,向远程用户发送消息,进入某个目录 xferlog_enable=YES 激活上传/下载 日志记录 connect_from_port_20=YES 确保RORT传输连接来自端口 20 chown_uploads=YES chown_username=whoever 设置 匿名用户上传文件的默认用户,不推荐使用root xferlog_file=/var/log/xferlog 日志文件路径 xferlog_std_format=YES 日志文件使用标准ftpd xferlog格式的日志文件 ,默认位置 /var/log/xferlog idle_session_timeout=600 更改超时空闲会话的默认值 data_connection_timeout=120 超时数据连接的默认值 nopriv_user=ftpsecure 创建ftp服务器 独立的用户 async_abor_enable=YES 启用 异步 ABOR 请求 ascii_upload_enable=YES 允许ASCII模式上传文件 ascii_download_enable=YES 允许ASCII模式下载文件 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 指定 chroot 参数 CHROOT就是Change Root,也就是改变程序执行时所参考的根目录位置。CHROOT可以增进系统的安全性,限制使用者能做的事 ls_recurse_enable=YES 启用 ls –R 选项 listen=NO 启用 listen 指令,vsftp 以独立模式运行侦听ipv4 套接字,该指令不能同时使用 with listen_inv6 指令 listen_ipv6=YES 监听ipv6 pam_service_name=vsftpd 虚拟用户使用PAM认证方式 userlist_enable=YES 只允许userlist 文件中的账户登陆 tcp_wrappers=YES 是否允许tcp_wrappers 管理 anon_other_write_enable=YES 允许匿名用户改名和删除文件 anon_world_readable_only=YES 匿名用户可以读文件 反之就是不能读 pasv_min_port=30000 pasv_max_port=35000 PASV模式下指定端口范围

 

用户权限严格控制请参考:

Centos7 vsftpd虚拟用户权限控制(vsftpd虚拟用户限制IP访问)

posted @ 2020-05-09 15:47  香菜哥哥  阅读(468)  评论(0编辑  收藏  举报