• centOS7.6精简版配置vsftpd服务


    • 配置过程是:先安装vsftpd服务,再修改配置文件,设置防火墙,使用客户端进行测试等。配置过程如下:
    [root@localhost ~]# rpm -qa | grep vsftpd	#查询系统中是否已有vsftpd服务
    [root@localhost ~]# yum install vsftpd		#安装vsftpd服务
    [root@localhost ~]# cd /etc/vsftpd/			#切换到vsftpd服务配置目录
    [root@localhost vsftpd]# ls
    ftpusers  user_list  vsftpd.conf  vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# cp vsftpd.conf vsftpd.bak	#备份配置文件
    [root@localhost vsftpd]# grep -v "#" vsftpd.bak > vsftpd.conf	#过滤以井号开头的行
    [root@localhost vsftpd]# vim vsftpd.conf	#编辑配置文件,修改后的内容如下:
    anonymous_enable=YES
    anon_umask=022					#新增内容:匿名用户创建文件的掩码
    anon_upload_enable=YES			#新增内容:是否允许匿名用户上传文件
    anon_mkdir_write_enable=YES		#新增内容:是否允许匿名用户创建目录
    anon_other_write_enable=YES		#新增内容:是否允许匿名用户创建文件
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES
    
    [root@localhost vsftpd]# systemctl restart vsftpd	#重启vsftpd服务
    [root@localhost vsftpd]# getsebool -a | grep ftp	#查看关于vsftpd的SELinux域限制
    ......
    ftpd_full_access --> off		#要开启这个权限,允许用户访问
    [root@localhost vsftpd]# setsebool -P ftpd_full_access=on
    #用户登录ftp服务器,默认进入的是 /var/ftp,这个目录下面还有pub目录,用户可在pub目录内创建文件操作,因此要修改这个目录的权限
    [root@localhost vsftpd]# chmod -Rf o+w /var/ftp/pub
    [root@localhost vsftpd]# iptables -I INPUT -p tcp --dport 20 -j ACCEPT
    [root@localhost vsftpd]# iptables -I INPUT -p tcp --dport 21 -j ACCEPT
    
    #下面使用windows客户端进行测试
    C:\Users\xx>ftp 192.168.0.40
    连接到 192.168.0.40。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.0.40:(none)): anonymous		#输入用户名
    331 Please specify the password.
    密码:			#直接回车
    230 Login successful.
    ftp> ls		#查看目录
    200 PORT command successful. Consider using PASV.
    150 Here comes the directory listing.
    pub
    226 Directory send OK.
    ftp: 收到 8 字节,用时 0.00秒 8000.00千字节/秒。
    ftp> mkdir mm		#不能在/var/ftp目录下创建目录
    550 Create directory operation failed.
    ftp> cd pub			#切换目录
    250 Directory successfully changed.
    ftp> mkdir mm		#创建目录
    257 "/pub/mm" created
    ftp> rename mm xx	#重命名
    350 Ready for RNTO.
    250 Rename successful.
    ftp> rmdir xx		#删除目录
    250 Remove directory operation successful.
    
    • 上面配置文件中,默认开启了本地用户登录的设置,但是root用户除外。因为root用户在ftpusers 和 user_list 这两个黑名单文件中,从这两个黑名单文件中删除root,就可以使用root用户登录。
    • 匿名用户登录ftp后对应的目录是 /var/ftp,本地用户登录ftp后对应的是用户的家目录。虚拟用户登录ftp后映射用户的家目录。
    • 虚拟用户登录ftp服务器是最安全的模式,同时虚拟用户也不能使用ssh命令。配置虚拟用户登录需要使用到可挺拔式认证模块PAM。配置过程如下:
    [root@localhost vsftpd]# pwd
    /etc/vsftpd
    [root@localhost vsftpd]# vim my_user_list	#文件名称任意,奇数行用户名,偶数行是密码
    libai
    abcd1234
    dufu
    abcd1234
    [root@localhost vsftpd]# db_load -T -t hash -f my_user_list my_user_list.db	#加密
    [root@localhost vsftpd]# chmod 600 my_user_list.db		#将权限设置小一些
    [root@localhost vsftpd]# file my_user_list.db		#查看加密后的文件类型
    my_user_list.db: Berkeley DB (Hash, version 9, native byte-order)
    [root@localhost vsftpd]# file my_user_list
    my_user_list: ASCII text
    [root@localhost vsftpd]# rm -f my_user_list		#删除未加密的文件
    
    #为虚拟用户登录创建出一个映射用户
    [root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
    [root@localhost vsftpd]# id virtual
    uid=1001(virtual) gid=1001(virtual) groups=1001(virtual)
    [root@localhost vsftpd]# chmod -Rf 755 /var/ftproot	#将虚拟用户目录权限设置大一些
    
    [root@localhost vsftpd]# vim /etc/pam.d/vsftp.vu	#在/etc/pam.d目录中建一个PAM模块
    auth required pam_userdb.so db=/etc/vsftpd/my_user_list		#文件名称后面不加后缀
    account required pam_userdb.so db=/etc/vsftpd/my_user_list
    
    [root@localhost vsftpd]# vim vsftpd.conf	#修改配置文件
    anonymous_enable=YES
    anon_umask=022
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    local_enable=YES
    guest_enable=YES				#允许虚拟用户登录
    guest_username=virtual			#虚拟用户名
    allow_writeable_chroot=YES		#chroot一种牢笼机制,限制登录用户不能使用超出范围的命令
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    user_config_dir=/etc/vsftpd/vusers_dir	#用户配置文件目录,在这里做对每个用户的权限设定
    pam_service_name=vsftp.vu		#修改为前面创建的文件
    userlist_enable=YES
    tcp_wrappers=YES
    
    [root@localhost vsftpd]# mkdir vuser_dir	#创建用户配置文件
    [root@localhost vsftpd]# cd vuser_dir/
    [root@localhost vuser_dir]# touch libai		#创建用户配置文件
    [root@localhost vuser_dir]# touch dufu
    [root@localhost vuser_dir]# vim libai	#编辑用户配置文件
    anon_upload_enable=YES			#是否可上传
    anon_mkdir_write_enable=YES		#是否可创建目录写入文件
    anon_other_write_enable=YES
    #这里暂时不编辑dufu用户的配置文件
    [root@localhost vuser_dir]# systemctl restart vsftpd	#重启服务
    
    #下面使用libai用户登录ftp服务器测试
    C:\Users\xx>ftp 192.168.0.40
    连接到 192.168.0.40。
    220 (vsFTPd 3.0.2)
    200 Always in UTF8 mode.
    用户(192.168.0.40:(none)): libai		#输入libai用户名
    331 Please specify the password.
    密码:		#输入libai用户对应的密码abcd1234
    230 Login successful.
    ftp> pwd
    257 "/"
    ftp> cd /etc	#下面的各种操作正常
    550 Failed to change directory.
    ftp> mkdir abc
    257 "/abc" created
    ftp> rename abc cba
    350 Ready for RNTO.
    250 Rename successful.
    ftp> rmdir cba
    250 Remove directory operation successful.
    ftp> quit
    221 Goodbye.
    
    #省略使用dufu用户进行登录测试
    
  • 相关阅读:
    maven项目部署到tomcat中没有classe文件的问题汇总
    Tomcat远程调试模式及利用Eclipse远程链接调试
    FastDFS 常见问题
    Linux Crontab 定时任务 命令详解
    EChart 关于图标控件的简单实用
    java 通过zxing生成二维码
    Mybatis typeAliases别名
    Mybatis 实现手机管理系统的持久化数据访问层
    Mybatis 实现传入参数是表名
    Mybatis关于like的字符串模糊处理
  • 原文地址:https://www.cnblogs.com/Micro0623/p/15648607.html
Copyright © 2020-2023  润新知