杨立峰 2020-08-18
yum install vsftpd -y
vi /etc/vsftpd/vsftpd.conf [ pub]# egrep -v "#|^$" /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES #启动服务 service vsftpd start #创建用户 useradd -s /sbin/nologin backup passwd backup #设置密码 touch /etc/vsftpd/chroot_list
yum install db4 db4-utils #进行认证首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包 #更改配置文件 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_list_enable=YES #开启限制在家目录内 chroot_list_file=/etc/vsftpd/chroot_list #限制名单文件路径 listen=YES # 开启监听 pam_service_name=vsftpd # 使用pam认证模块 userlist_enable=YES # 禁止用户登录名单 tcp_wrappers=YES guest_enable=YES #开启虚拟用户 guest_username=ftp #指定虚拟用户映射到本地的用户//指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了 这里的用户也可以用//useradd vsftpuser -s /sbin/nologin -M自行创建 user_config_dir=/etc/vsftpd/vuser_conf #指定虚拟用户自定义配置文件路径 #创建用户密码本 vim /etc/vsftpd/vuser_passwd.txt backup #user 123456 #passwd #生成虚拟用户认证的db文件 db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db vim /etc/pam.d/vsftpd #全部注释,添加以下两行 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd #创建虚拟用户配置文件 mkdir /etc/vsftpd/vuser_conf #vsftpd.conf 里面指定的路径 vim /etc/vsftpd/vuser_conf/backup #这里文件名必须要和之前创建的vuser_passwd.txt中虚拟用户名一一对应 local_root=/databak/data #指定他的主目录 write_enable=YES #开启写 anon_umask=022 #匿名umask码 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES #创建虚拟用户的指定用户主目录(上传目录) mkdir /databak/data -p chmod 755 /databak #最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置757权限 chmod 757 /databak/data service vsftpd restart
#!/bin/bash #author:vaedit #date:2017/11/14 read -p "请输出用户名" name read -p "请输入密码" password echo -e ‘\033[32;40;1m开始安装\033[0m‘ yum install vsftpd db4 db4-utils -y useradd -s /sbin/nologin ftpuser mv /etc/vsftpd/vsftpd.conf{,.bak} #创建配置文件 cat>/etc/vsftpd/vsftpd.conf <<EOF anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES userlist_enable=YES chroot_list_enable=YES chroot_local_user=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd tcp_wrappers=YES guest_enable=YES guest_username=ftpuser user_config_dir=/etc/vsftpd/vuser_conf virtual_use_local_privs=YES EOF touch /etc/vsftpd/chroot_list #创建账户密码文件 cat>/etc/vsftpd/vuser_passwd.txt<<EOF $name $password EOF db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db chmod 700 /etc/vsftpd/vuser_passwd.db cat>/etc/pam.d/vsftpd<<EOF auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd EOF #创建虚拟用户配置文件 mkdir /etc/vsftpd/vuser_conf -p cat>/etc/vsftpd/vuser_conf/$name<<EOF local_root=/data/ftp_$name write_enable=YES anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOF mkdir /data/ftp_$name -p chown ftpuser.ftpuser /data/ftp_$name -R setenforce 0 service vsftpd start ps -ef|grep vsftpd netstat -ntulp|grep ":21"
#chroot控制 1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。 2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。 3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。 4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。 #访问控制 对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下: userlist_enable=YES // 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。 userlist_deny=YES // 决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。
yum install ncftp -y #源码安装: tar zxvf ncftp-3.2.3-src.tar.gz cd ncftp-3.2.3/ ./configure --prefix=/usr/local/ncftp make && make install #参数 -u:指定登录FTP服务器时使用的用户名; -p:指定登录FTP服务器时使用的密码; -P:如果FTP服务器没有使用默认的TCP协议的21端口,则使用此选项指定FTP服务器的端口号。 -m:在传之前尝试在目录位置创建目录(用于传目录的情况) -E: 使用主动模式 -R:递规传子目录 #用法 #将本地/root/ssf 文件拷贝到远程ftp的根目录 ncftpput -u backup -p 123456 192.168.246.128 . /root/ssf #常用操作命令 lls: 列出本地当前目录文件; lmkdir : 本地建立目录; lrename: 本地文件改名; lpwd: 显示当前本地路径; lchmod: 改变本地文件权限; lpage: 显示本地文件内容; lrm: 删除本地文件; lrmdir: 删除本地目录。