设为首页 收藏本站
查看: 300|回复: 0

[经验分享] linux的ftp服务

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-11 08:33:42 | 显示全部楼层 |阅读模式
注:*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文件)
系统用户访问:地址栏中输入ftp://aaa:123@192.168.200.122  直接跳到用户家目录下)
                 也可先以匿名用户的方式登录再右击---登录---输入用户名和密码,即可进入到系统用户家目录

(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] 然后回车即可跳到用户登录页面,输入用户名和密码即可登录系统用户家目录,做任何操作都可以
(或直接输入ftp://aaa:123@192.168.200.122  直接跳到用户家目录下)


(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后面加端口号



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-97202-1-1.html 上篇帖子: NFS网络文件系统+autofs自动挂载 下篇帖子: 安装远程工具Xmanager Enterprise 4 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表