|
注:*FTP服务是文件传输协议,端口号为21,一般使用被动传输,用于文件的存取或远程传输,不能远程调用,适合所有的操作系统,可跨网段访问 *专业的ftp客户端软件:FlashFXP *ftp的传输是明文的,可被鲨鱼捕获软件捕获到传输内容,不安全,应该加密 *ftp的配置文件最好先做一个副本,有可能一个空格就导致服务崩了 *设置允许系统用户登录ftp服务器时最好将其禁锢在自己的家目录下,这样比较安全 *修改共享文件权限的操作步骤: <1>查看目录/文件的系统权限(所属主、组) <2>查看配置文件 <3>调整上下文、bool值 <4>防火墙规则 虚拟用户不能使用磁盘配额,所有用户访问同一个目录,不同用户对同一个目录有不同权限(使用了虚拟用户就不能使用匿名用户了) 服务器端:rhel6.3(192.168.200.122) 客户端:Windows (一)匿名用户的访问 (1)只允许匿名用户访问ftp: [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# id ftp uid=14(ftp) gid=50(ftp) 组=50(ftp) [iyunv@localhost ~]# grep ftp /etc/passwd # ftp匿名用户的家目录 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] [iyunv@localhost ~]# lsof -i:21 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vsftpd 3056 root 3u IPv4 23808 0t0 TCP *:ftp (LISTEN) 注:此时在Windows客户端的地址栏中输入[url=]ftp://192.168.200.122[/url] 然后回车即可进到服务器的ftp目录下(有个pub文件),但是默认匿名用户只能下载不能上传或删除等操作
(2)关闭匿名用户访问: [iyunv@localhost ~]# grep ftp /etc/passwd # ftp匿名用户的家目录 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [iyunv@localhost aaa]# mv /var/ftp/ /var/ftp.bak #不允许匿名用户访问(只要没有家目录即可) 【或者编辑配置文件不允许匿名用户登录:vim /etc/vsftpd/vsftpd.conf 内容:anonymous_enable=NO】
(3)使匿名用户访问,并具有上传,删除,建立等权限(也可单独的具有某一权限) [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# id ftp uid=14(ftp) gid=50(ftp) 组=50(ftp) [iyunv@localhost ~]# grep ftp /etc/passwd ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [iyunv@localhost ~]# ll -d /var/ftp/pub/ #查看目录系统权限 drwxr-xr-x. 2 root root 4096 2月 4 09:54 /var/ftp/pub/ [iyunv@localhost ~]# chown ftp:ftp /var/ftp/pub/ [iyunv@localhost ~]# ll -d /var/ftp/pub/ drwxr-xr-x. 2 ftp ftp 4096 2月 4 09:54 /var/ftp/pub/ [iyunv@localhost ~]# man vsftpd.conf #查看ftp配置文件的帮助手册 [iyunv@localhost ~]# vim /etc/vsftpd/vsftpd.conf #编辑配置文件 anonymous_enable=YES #开启匿名用户访问 local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=YES #27行,去掉#,此为开启上传权限 anon_mkdir_write_enable=YES #31行,去掉#,此为可以建立,写权限 anon_other_write_enable=YES #在31行下面添加 (注:此句为可删除或重命名文件,如果只想让匿名用户具有上传和下载权限,只写上面和 下面的即可,此句不用写了,如果不行的话就把这句也加上) anon_umask=022 #在31行下面添加的 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES [iyunv@localhost ~]# getsebool -a | grep ftp #查看匿名用户的写权限的bool值 allow_ftpd_anon_write --> off [iyunv@localhost ~]# setsebool -P allow_ftpd_anon_write on [iyunv@localhost ~]# ll -Z /var/ftp/pub/ #查看上下文 -rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 111.sh [iyunv@localhost ~]# man ftpd_selinux #查看ftp上下文和bool值的帮助 [iyunv@localhost ~]# chcon -R -t public_content_rw_t /var/ftp/pub/ #修改上下文 【[iyunv@localhost ~]# semanage fcontext -a -t public_content_rw_t /var/ftp/pub/ 注:使用此命令改上下文需安装semanage的包,可查看selinux文档】 [iyunv@localhost ~]# ll -Z /var/ftp/pub/ -rw-r--r--. root root unconfined_u:object_r:public_content_rw_t:s0 111.sh [iyunv@localhost ~]# /etc/init.d/vsftpd restart #重启服务 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定]
(二)系统用户的访问:(重点) (1)允许匿名用户和系统用户同时访问 [iyunv@localhost pub]# useradd aaa #新建系统用户 [iyunv@localhost pub]# passwd aaa [iyunv@localhost pub]# useradd bbb [iyunv@localhost pub]# passwd bbb [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# id ftp uid=14(ftp) gid=50(ftp) 组=50(ftp) [iyunv@localhost ~]# grep ftp /etc/passwd ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [iyunv@localhost pub]# getsebool -a | grep ftp #设置bool值 ftp_home_dir --> off [iyunv@localhost pub]# setsebool -P ftp_home_dir on [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] [iyunv@localhost ~]# lsof -i:21 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vsftpd 3056 root 3u IPv4 23808 0t0 TCP *:ftp (LISTEN) 注:匿名用户访问:地址栏中输入[url=]ftp://192.168.200.122[/url] 然后回车即可进到服务器的ftp目录下(有一个pub文件) 也可先以匿名用户的方式登录再右击---登录---输入用户名和密码,即可进入到系统用户家目录
(2)只允许系统用户访问ftp(不允许匿名用户访问) [iyunv@localhost pub]# useradd aaa #新建系统用户 [iyunv@localhost pub]# passwd aaa [iyunv@localhost pub]# useradd bbb [iyunv@localhost pub]# passwd bbb [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# id ftp uid=14(ftp) gid=50(ftp) 组=50(ftp) 关闭匿名用户访问: [iyunv@localhost ~]# grep ftp /etc/passwd # ftp匿名用户的家目录 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin [iyunv@localhost aaa]# mv /var/ftp/ /var/ftp.bak #不允许匿名用户访问(只要没有家目录即可) 【或者编辑配置文件不允许匿名用户登录:vim /etc/vsftpd/vsftpd.conf 内容:anonymous_enable=NO】 [iyunv@localhost pub]# getsebool -a | grep ftp #设置bool值 ftp_home_dir --> off [iyunv@localhost pub]# setsebool -P ftp_home_dir on [iyunv@localhost ~]# /etc/init.d/vsftpd restart #重启服务 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] [iyunv@localhost ~]# lsof -i:21 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vsftpd 3056 root 3u IPv4 23808 0t0 TCP *:ftp (LISTEN) 注:此时在Windows客户端的地址栏中输入[url=]ftp://192.168.200.122[/url] 然后回车即可跳到用户登录页面,输入用户名和密码即可登录系统用户家目录,做任何操作都可以
(3)禁锢系统用户家目录(使用ftp客户端工具时只能看到自己的家目录,别人的看不到,一般要做此操作,否则容易泄露系统信息) 先做(2)或(3)的设置,再做以下操作: [iyunv@localhost ~]# vim /etc/vsftpd/vsftpd.conf 98行:chroot_local_user=YES #开启chroot,禁锢家目录 [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时再使用ftp客户端工具FlashFXP,以系统用户访问时只能看到自己家目录下的东西,不能再看到其他内容了
(4)不允许某个系统用户登录ftp家目录(加入黑名单) 先做(2)或(3)的设置,再做以下操作: [iyunv@localhost ~]# vim /etc/vsftpd/ftpusers 在最下面添加:aaa 【或[iyunv@localhost ~]# vim /etc/vsftpd/user_list # user_list文件默认为黑名单 在最下面添加:aaa】 [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时用ftpuser或user_list中的系统用户登录ftp服务器不能登陆了,不在里面的用户则可以登录
(5)若公司有500用户,但只允许7个用户访问ftp,剩下的不可以访问,可以批量建用户,然后将允许访问的用户加入到白名单里,也可将不允许访问的用户加入黑名单,一般选择人数较少的一方来设置 法一:只设置白名单(一般允许访问的用户较少时用): 先做(2)或(3)的设置,再做以下操作: [iyunv@localhost ~]# vim /etc/vsftpd/user_list 在最下面添加允许访问的用户名:aaa [iyunv@localhost ~]# vim /etc/vsftpd/vsftpd.conf 在最后添加:userlist_enable=YES Userlist_deny=NO #名单外的不允许访问(若为YES则变为黑名单了) [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时再使用ftp客户端工具FlashFXP,只有以user_list中的系统用户访问时才允许访问,不在里面的用户不允许访问 法二:只设置黑名单(一般不允许访问的用户较少时用) 先做(2)或(3)的设置,再做以下操作: [iyunv@localhost ~]# vim /etc/vsftpd/ftpusers 在最下面添加不允许访问的用户:aaa 【或[iyunv@localhost ~]# vim /etc/vsftpd/user_list # user_list文件默认为黑名单 在最下面添加不允许访问的用户:aaa】 [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时用ftpuser或user_list中的系统用户登录ftp服务器不能登陆了,不在里面的用户则可以登录
(6)限制系统用户使用磁盘资源(家目录的磁盘配额) 注:只能对系统用户配置,因为其有UID和PID,虚拟用户没有ID,匿名用户只有PID (磁盘资源的限制不仅仅局限于ftp服务,其他服务例如samba服务也可以) [iyunv@localhost 桌面]# rpm -qa | grep quota #安装quota软件包 quota-3.17-16.el6.x86_64 [iyunv@localhost 桌面]# vim /etc/fstab #开启home的quota项(因为用户家目录为home) /dev/mapper/junxi-home /home ext4 defaults,usrquota,grpquota 1 2 [iyunv@localhost ~]# mount | grep /dev/mapper/junxi-home /dev/mapper/junxi-home on /home type ext4 (rw) [iyunv@localhost 桌面]# mount -o remount /home #重新挂载目标分区 [iyunv@localhost ~]# mount | grep /dev/mapper/junxi-home /dev/mapper/junxi-home on /home type ext4 (rw,usrquota,grpquota) [iyunv@localhost 桌面]# quotacheck -cmfug /home #在目的分区创建配额文件 [iyunv@localhost ~]# ls /home #此时home下多了两个文件 aaa aquota.group aquota.user bbb lost+found [iyunv@localhost 桌面]# edquota -u aaa #编辑aaa用户配额项 Disk quotas for user aaa (uid 500): Filesystem blocks soft hard inodes soft hard /dev/mapper/junxi-home 20 60 70 21 0 0 已用大小 软限制 硬限制 已用节点 软限制 硬限制 (注:如果磁盘有空间但是i节点没有了,也不能上传了,为0时为不限制) [iyunv@localhost 桌面]# quotaon /home #开启配额项 [iyunv@localhost 桌面]# quota aaa #查看aaa用户的磁盘配额 [iyunv@localhost 桌面]# edquota –t #设置超过软限制有效期(默认为7天) Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/mapper/junxi-home 7days 7days [iyunv@localhost 桌面]# quotaoff –a #关闭所有配额项 [iyunv@localhost 桌面]# quotaon –a #开启所有配额项 注:此时客户端使用aaa用户登录,上传大于70K的文件就不能上传了
(7)限制个别系统用户的下载速度,客户端最大连接数 先做(2)或(3)的设置,再做以下操作: [iyunv@localhost 桌面]# vim /etc/vsftpd/vsftpd.conf #建立系统用户分割目录 在最后添加:user_config_dir=/etc/vsftpd 注:最好是写此目录,否则还需改上下文 [iyunv@localhost 桌面]# echo local_max_rate=8192 >> /etc/vsftpd/aaa #向系统用户配件中写入限制下载的速度 [iyunv@localhost 桌面]# echo max_client=1 >> /etc/vsftpd/aaa #限制客户端连接数 [iyunv@localhost 桌面]# chmod a+x /etc/vsftpd/aaa #给执行权限 [iyunv@localhost 桌面]# setsebool -P ftp_home_dir on #开启ftp的home的bool值 [iyunv@localhost 桌面]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] 注:此时使用ftp客户端工具FlashFXP分别登录系统用户aaa和bbb的家目录,下载一个文件,可以比较出下载速度的差别
【配置匿名用户的:vi /etc/vsftpd/vsftpd.conf listen=yes (独立的VSFTPD服务器)* max_clients=200 (同时允许200个客户连入) max_per_ip=4 (每个IP最多允许4个进程)】
(8)高级权限:不同系统用户不同的权限(cmds_allowed) Eg:aaa用户只许上传,不许下载和删除: [iyunv@localhost 桌面]# vim /etc/vsftpd/vsftpd.conf #添加系统用户的分割目录 在最后添加:user_config_dir=/etc/vsftpd 注:最好是写此目录,否则还需改上下文 [iyunv@localhost 桌面]# vim /etc/vsftpd/aaa #编辑系统用户配件 write_enable=YES cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT file_open_mode=0444 [iyunv@localhost 桌面]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] 注:此时aaa用户连接上ftp服务器,只能上传不能下载和删除了,如果上传中断,想再次上传,应将文件改名后再传,但bbb用户登录操作则没有限制
(9)vsftpd TLS 加密传输(匿名,非匿名均可设置) [iyunv@localhost ~]# yum install -y openssl* #装openssl包 [iyunv@localhost ~]# cd /etc/vsftpd/ #要在此路径下生成加密,否则要改上下文 [iyunv@localhost vsftpd]# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout vsftpd.pem -out vsftpd.pem #生成加密文件 【国家,全称,城市,部门,域名,邮箱】 [iyunv@localhost vsftpd]# ls ftpusers privkey.pem user_list vsftpd.conf vsftpd_conf_migrate.sh vsftpd.pem [iyunv@localhost vsftpd]# cat vsftpd.pem [iyunv@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf #对哪些用户加密 在最后面添加以下内容: ssl_enable=YES #启用 SSL,默认为no allow_anon_ssl=YES #允许匿名用户使用SSL,默认为no force_local_data_ssl=YES # 非匿名用户传输数据时加密,默认为yes force_local_logins_ssl=YES #非匿名用户登陆时加密,默认为yes force_anon_logins_ssl=YES #匿名用户登录时加密,默认为no force_anon_data_ssl=YES #匿名用户数据传输时加密,默认为no ssl_tlsv1=YES #激活tls v1加密,默认yes ssl_sslv2=NO #不激活sslv2加密,默认no ssl_sslv3=NO #不激活sslv3加密,默认no rsa_cert_file=/etc/vsftpd/vsftpd.pem #rsa证书的位置
[iyunv@localhost vsftpd]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时在本地访问ftp服务器访问不了了,只能用专业的客户端工具FlashFXP才能访问,而且使用抓包工具捕获到的信息都是加密过的了。 系统用户访问:点击小电脑---快速连接---连接类型:FTP使用明确SSL(TLS)---地址域:192.168.200.122---用户名:aaa---密码:123---连接---接受并保存(或者接受一次) 匿名用户访问:点击小电脑---快速连接---连接类型:FTP使用明确SSL(TLS)---地址域:192.168.200.122---连接---接受并保存(或者接受一次) 若不对匿名用户加密,则在配件中去掉匿名用户的两行即可,此时匿名用户可在本地登录了
(三)扩展:虚拟用户的访问 (1)设置虚拟用户访问ftp服务器(权限类似系统用户或匿名用户,依据配件设置决定) [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO #关闭匿名用户访问(因为虚拟与匿名冲突) guest_enable=YES #开启虚拟用户 guest_username=vtest #虚拟用户名为vtest(随便) virtual_use_local_privs=YES #此句决定虚拟用户拥有怎样的权限 注:6.3以前的版本(包括6.3):当该参数激活(yes)时,虚拟用户与本地用户相同的权限;当此参数关闭(no)时,虚拟用户使用与匿名用户相同的权限;默认此参数是关闭的(NO) 6.3以后的版本(不包括6.3):默认此参数是激活的(YSE),即虚拟与本地相同权限 (但是我实验中6.6与6.3一样,没区别,自己工作中注意就可以了) [iyunv@localhost ~]#mkdir /etc/vsftpd/vuser #在/etc/vsftpd目录中创建vuser 文件 [iyunv@localhost ~]# vim /etc/vsftpd/vuser #在vuser中建立虚拟用户名与密码 vuser1 #(格式必须如此) 123 vuser2 123 vuser3 123 [iyunv@localhost ~]# rpm -qa | grep db4 db4-utils-4.7.25-17.el6.x86_64 db4-4.7.25-17.el6.x86_64 [iyunv@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db #把vuser文件内容生成用户身份识别数据库文件.db 【[iyunv@localhost ~]#chmod 600 /etc/vsftpd/vuser.db #改权限(也可不改)】 [iyunv@localhost ~]# vim /etc/pam.d/vsftpd #修改用户的认证方式 将原来的注释掉,在最后添加以下两行: auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser [iyunv@localhost ~]# useradd -s /sbin/nologin vtest #建立匿名用户映射vtest系统用户身份 [iyunv@localhost ~]# touch /home/vtest/vtest #虚拟用户访问目录为/home/vtest(建一个测试文件vtest,证明登上去了) [iyunv@localhost ~]# chmod a+rx /home/vtest/ -Rf #给匿名用户登录权限,这样才能登录 [iyunv@localhost ~]# getsebool -a | grep ftp ftp_home_dir --> off ftpd_connect_db --> off [iyunv@localhost ~]# setsebool -P ftpd_connect_db on #开启虚拟用户库bool值 [iyunv@localhost ~]# setsebool -P ftp_home_dir on #开启ftp家目录bool值 [iyunv@localhost ~]# /etc/init.d/vsftpd restart #重启服务 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时客户端在地址栏输入 ftp://192.168.200.122然后回车,会出现用户登录界面,输入设置的虚拟用户名和密码,即可登录,这时会看到vtest文件。若果前面配件中写的YES,则可以在里面做任意的操作(与本地用户权限相同),若为NO,则只能下载,不能做其他操作(与匿名用户默认权限相同)
(2)所有用户访问同一目录却有不同的权限 例:vuser1不能下载、能上传但又不能删除,vuser2能下载并建立文件等 [iyunv@localhost ~]# rpm -qa | grep vsftpd [iyunv@localhost ~]# yum search vsftpd vsftpd.x86_64 : Very Secure Ftp Daemon [iyunv@localhost ~]# yum install vsftpd.x86_64 –y #安装vsftpd软件包 [iyunv@localhost ~]# vim /etc/vsftpd/vsftpd.conf 改:anonymous_enable=NO #关闭匿名用户访问(因为虚拟与匿名冲突) 添加:guest_enable=YES #开启虚拟用户 guest_username=vtest #虚拟用户名为vtest(随便) virtual_use_local_privs=NO #虚拟用户权限与匿名用户权限相同 user_config_dir=/etc/vsftpd #添加用户配置目录支持 [iyunv@localhost ~]#mkdir /etc/vsftpd/vuser #在/etc/vsftpd目录中创建vuser 文件 [iyunv@localhost ~]# vim /etc/vsftpd/vuser #在vuser中建立虚拟用户名与密码 vuser1 #(格式必须如此) 123 vuser2 123 vuser3 123 [iyunv@localhost ~]# rpm -qa | grep db4 db4-utils-4.7.25-17.el6.x86_64 db4-4.7.25-17.el6.x86_64 [iyunv@localhost ~]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db #把vuser文件内容生成用户身份识别数据库文件.db 【[iyunv@localhost ~]#chmod 600 /etc/vsftpd/vuser.db #改权限(也可不改)】 [iyunv@localhost ~]# vim /etc/pam.d/vsftpd #修改用户的认证方式 将原来的注释掉,在最后添加以下两行: auth required pam_userdb.so db=/etc/vsftpd/vuser account required pam_userdb.so db=/etc/vsftpd/vuser [iyunv@localhost ~]# useradd -s /sbin/nologin vtest #建立匿名用户映射vtest系统用户身份 [iyunv@localhost ~]# touch /home/vtest/vtest #虚拟用户访问目录为/home/vtest(建一个测试文件vtest,证明登上去了) [iyunv@localhost ~]# chmod a+rx /home/vtest/ -Rf #给匿名用户登录权限,这样才能登录 [iyunv@localhost ~]# getsebool -a | grep ftp ftp_home_dir --> off ftpd_connect_db --> off [iyunv@localhost ~]# setsebool -P ftpd_connect_db on #开启虚拟用户库bool值 [iyunv@localhost ~]# setsebool -P ftp_home_dir on #开启ftp家目录bool值 [iyunv@localhost ~]# mkdir /etc/vsftpd/vuser1 #建立vuser1的配置文件,与用户名同名 [iyunv@localhost ~]# vim /etc/vsftpd/ vuser1 # vuser1不能下载、能上传但又不能删除 write_enable=YES cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RNFR,RNTO,SIZE,ST OR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT file_open_mode=0444 [iyunv@localhost ~]# mkdir /etc/vsftpd/vuser2 ##建立vuser2的配置文件,与用户名同名 [iyunv@localhost ~]# vim /etc/vsftpd/ vuser2 #vuser2能下载并建立文件等 anon_upload_enable=YES anon_mkdir_write_enable=YES [iyunv@localhost ~]# /etc/init.d/vsftpd restart 关闭 vsftpd: [确定] 为 vsftpd 启动 vsftpd: [确定] 注:此时客户端在地址栏输入 ftp://192.168.200.122然后回车,会出现用户登录界面,输入vuser1和密码这时会看到vtest文件,此时vuser1不能下载、能上传但又不能删除;使用vuser2登录时,能下载并建立文件等
(四)ftp的端口操作: (1)修改ftp的被动连接的端口号范围 [iyunv@localhost 桌面]# vim /etc/vsftpd/vsftpd.conf 在最后添加: pasv_enable=YES #设置是否允许pasv模式(默认为YES) pasv_max_port=10004 #被动模式使用的最大端口 pasv_min_port=10000 #pasv使用的最小端口 [iyunv@localhost 桌面]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] [iyunv@localhost 桌面]# iptables -I INPUT ! -s 192.168.200.0/24 -p tcp -m multiport --dport 21:10000,10004 -j DROP #除200段的ip其他均不能访问端口为21,10000,10002,10003,10004
(2)修改ftp的访问端口号 [iyunv@localhost 桌面]# vim /etc/vsftpd/vsftpd.conf 在最后listen=YES下面添加:listen_port=端口号 [iyunv@localhost 桌面]# /etc/init.d/vsftpd restart 关闭 vsftpd: [失败] 为 vsftpd 启动 vsftpd: [确定] 注:此时访问ftp需在ip后面加端口号
|