安装配置vsftpd服务器

一、初始练习

先查看一下有没有安装该软件包

[root@bainuo ~]# rpm -qa |grep vsftpd

没有的话yum安装一下

[root@bainuo ~]# yum install vsftpd -y

[root@bainuo ~]# service vsftpd start     //启动服务
为 vsftpd 启动 vsftpd:                                    [确定]
[root@bainuo ~]# chkconfig vsftpd on      //设置开机启动

ftp默认发布目录/var/ftp/pub/

直接访问ftp://192.168.1.20测试一下


可以在该目录下新建一个文件试试,没有的话刷新一下页面就行


初始状态下该ftp是允许匿名访问的,也没有上传权限


接下来测试使用用户名密码的方式来访问


编辑vsftpd的配置文件

[root@bainuo pub]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=YES  //将YES改为NO,禁止匿名访问


在文件末尾添加

chroot_local_user=YES  //禁止用户离开主目录

附上一些其他选项,可以根据自己的需求来设置

listen_port=5021 ;命令通道端口,默认为21
listen_data_port=5020 ;数据通道端口,默认为20
pasv_enable=YES ;允许被动模式
pasv_min_port=10000 ;被动模式使用端口范围
pasv_max_port=10010
local_max_rate=200000 ;用户宽带限制
chroot_local_user=YES ;禁用户离开主目录
listen_address=192.168.0.21 ;让他监听ip:192.168.0.21
注:在添加过程中请不要加上”;”


保存文件然后退出,重启一下vsftpd服务,再重新登录ftp://192.168.1.20,弹出了用户名密码框


接下来添加一个ftp用户,只允许通过ftp访问,不能登录系统

[root@bainuo pub]# useradd -s /sbin/nologin -d /var/ftp/pub/marry marry
-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/var/ftp/pub/marry,useradd默认是自动为用户创建主目录的,

所以无须提前创建该目录


在/var/ftp/pub目录下ll查看

[root@bainuo pub]# ll
总用量 8
drwx------ 3 marry marry 4096 8月  21 10:11 marry
-rw-r--r-- 1 root  root     4 8月  21 09:46 test.txt


VsFTPd相关的配置详解
1.匿名用户相关设置
anonymous_enable=YES ,将YES改为NO, 禁止匿名用户登陆
#non_mkdir_write_enable=YES ,将#注释去掉,允许匿名用户创建目录
#non_upload_enalbe=YES ,将#去掉,允许匿名用户上传
anon_world_readable_only=YES ,允许匿名用户下载,默认是禁止的,这个可以自行添加。
Anon_other_write_enable=YES ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NO
no_anon_password=NO ,将其设为YES,匿名用户不会查询用户密码直接登陆。
ftp_username=ftp ,匿名用户登陆系统的账号默认为ftp,此项最好不要改,否则设置不当会给系统的安全带来威胁。
2.FTP服务端口的指定
listen_port=8021 ,指定命令通道为8021,默认为21
listen_data_port=8020 ,指定数据通道为8020,默认为20
3.上传模式的设置
pasv_enable=YES ,是否允使用被动模式,默认是允许的。
pasv_min_port=10000 ,指定使用被动模式时打开端口的最小值
pasv_max_port=10004 ,指定使用被动模式时打开端口的最大值。
4.Vsftp服务器指定IP地址
listen_address=192.168.0.21 ,指定FTP,IP地址
注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsfpd文件,就要将该文件中的disable设置为yes,方可。
5. 锁定用户,禁止用户离开用户主目录
chroot_local_user=YES ,将其设为YES,就锁定在用户主目录,设为NO,可以切换
将指定用户设置为锁定用户主目录:
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
将其改为如下:
chroot_list_enable=NO
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
将上面保存,再做如下操作:
#touch /etc/vsftpd/vsftpd.chroot_list
#vi /etc/vsftpd/vsftpd.chroot_list ,在该文件中加入用户名单,如:
netseek_com
6.FTP服务器的流量控制
max_clients=100 ;允许的最大连接数,定义为100,默认为0,表没有限制
max_per_ip=5 ;每个IP允许的连接数,0表没有限制,需要运行于独立模式方可
anon_max_rate=50000 ;匿名用户最大带宽,单位为bps
local_max_rate=200000 ;系统用户最大带宽
如何对指定用户进行流量限制呢?
#vi /etc/vsftpd/vsftpd.conf,添加一行:
user_config_dir=/etc/vsftpd/userconf
#touch /etc/vsftpd/userconf/netseek_com 为netseek_com这个用户建立一个netseek_com文件
#vi /etc/vsftpd/userconf/netseek_com 添加以下内容
local_max_rate=100000
保存重启服务即可.
7.定制欢迎信息
目录说明设置
#vi /etc/vsftpd/vsftpd.conf
#dirmessage_enable=YES,前的#去掉。
然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中,就OK。

系统欢迎消息设置
ftpd_banner=Welcome to ftp.netseek.com , Yeah!!!
系统欢迎消息文件设置
banner_file=/etc/vsftpd/welcome 与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件.



如果发现登录时输入用户名密码后需要很长时间才能显示ftp内容的话,那是因为dns解析的原因

需要编辑vsftpd.conf,添加如下内容

reverse_lookup_enable=NO


重启服务,再试试是不是快多了。



二、进阶练习

同一目录多用户不同权限的测试

把前面创建的marry帐号作为本地虚拟账号

/var/ftp/pub/marry为主目录



建立虚拟用户数据库

[root@bainuo ~]# cd /etc/vsftpd/
[root@bainuo vsftpd]# vi login.txt
输入内容如下:

xiaoming
123456
xiaohong
123456
guanli
123456

注:奇数行为用户名,偶数行为密码。

[root@bainuo vsftpd]# db_load -T -t hash -f /etc/vsftpd/login.txt /etc/vsftpd/vsftpd_login.db   //从login.txt生成数据库
[root@bainuo vsftpd]# chmod 600 vsftpd_login.db  //安全起见,修改数据库权限
生成数据库文件之后建议删除或移走login.txt。

db_load的选项解释

选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。

如果指定了选项-T,那么一定要追跟子选项-t

子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。

-f
参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码



建立基于vsftpd_login的PAM授权文件

[root@bainuo pam.d]# vi /etc/pam.d/vsftpd.vu
编辑文件内容如下:

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login


建立用来存放用户权限配置文件的目录

[root@bainuo vsftpd]# mkdir /etc/vsftpd/virtual

并在该文件夹下依次建立与login.txt对应的帐号名称相同的文件

[root@bainuo virtual]# vi xiaoming
编辑内容如下,xiaoming只允许下载

anon_world_readable_only=NO
local_root=/var/ftp/pub/marry


[root@bainuo virtual]# vi xiaohong
编辑内容如下,xiaohong允许建立、上传,不允许删除、修改

anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/var/ftp/pub/marry


[root@bainuo virtual]# vi guanli
编辑内容如下,管理拥有所有权限

anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/var/ftp/pub/marry

备注:

write_enable=yes  #此设定是下面几个设定的基础

anon_world_readable_only=YES  #只允许下载文件

anon_upload_enable=YES    #可以上传文件

anon_mkdir_write_enable=YES  #可以建立目录,但不能改名和删除

anon_other_write_enable=YES  #可以改名和删除



编辑vsftpd.conf文件,添加或修改如下内容
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/virtual
guest_enable=YES
guest_username=marry

登录各个帐号测试权限是否如期。


当然,后期肯定会牵涉到用户的维护,比如增加删除用户,比如修改密码等:

先试试增加用户

直接新建一个login.txt,照前输入用户名密码,再导入到数据库即可


修改用户密码呢

同样,只需新建一个login.txt,输入用户名和新的密码,再导入到数据库即可


那么删除用户呢

暂时没找到好的方法,但可以删除该账户的配置文件,也可以阻止他登录ftp


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值