浅析Linux中vsftpd服务配置(匿名,用户,虚拟用户)
vsftpd概述
vsftpd是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux、BSD、Solaris、HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的FTP服务器所不支持的特征。
特点
非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高
小巧轻快,安全易用。
ftp、sftp、vsftp、vsftpd这四个的区别
ftp是FileTransferProtocol的缩写,文件传输协议,用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。
sftp是SSHFileTransferProtocol的缩写,安全文件传输协议;
vsftp是一个基于GPL发布的类Unix系统上使用的ftp服务器软件,它的全称是VerySecureFTP从此名称可以看出来,编制者的初衷是代码的安全;
vsftpd是verysecureFTPdaemon的缩写,安全性是它的一个最大的特点。vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux、BSD、Solaris、HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件;
一,匿名用户登录ftp(文件在/var/ftp)
1,安装vsftpd服务
[root@localhost~]#yuminstallvsftpd-y##安装服务 [root@localhost~]#cd/etc/vsftpd/##此目录是配置文件目录 [root@localhostvsftpd]#ls ftpusersuser_listvsftpd.confvsftpd_conf_migrate.sh [root@localhostvsftpd]#systemctlstartvsftpd##开启vsftpd服务 [root@localhostvsftpd]#systemctlstopfirewalld.service##关闭防火墙 [root@localhostvsftpd]#setenforce0##关闭增强功能 [root@localhostvsftpd]#ls/var/ftp/##切换到ftp目录下 pub [root@localhostvsftpd]#echo"thisistest">/var/ftp/test.txt##添加一个文本文件
2,用测试机cmd访问vsftpd服务(cmd连接ftp)并下载文件
C:\Users\xy007>ftp192.168.13.140##访问ftp服务 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):ftp##匿名访问 331Pleasespecifythepassword. 密码: ##密码无回车 230Loginsuccessful. ftp>pwd##查看当前路径 257"/"##ftp服务的根目录 ftp>ls-a##查看目录中的内容 200PORTcommandsuccessful.ConsiderusingPASV. 150Herecomesthedirectorylisting. . .. pub test.txt##服务器中的文件 226DirectorysendOK. ftp:收到25字节,用时0.00秒25000.00千字节/秒。 ftp>gettest.txt##下载文件到本地(在哪个磁盘的访问就下载到哪里,可以切换磁盘来下载e:) 200PORTcommandsuccessful.ConsiderusingPASV. 150OpeningBINARYmodedataconnectionfortest.txt(13bytes). 226Transfercomplete. ftp:收到13字节,用时0.00秒13000.00千字节/秒。 ftp>puttest1.txt##在c盘中创建一个test1.txt然后上传到Linux中 200PORTcommandsuccessful.ConsiderusingPASV. 550Permissiondenied.##此时是权限受限的 Linux中vsftpd服务配置(匿名,用户,虚拟用户)
3,修改vsftpd配置文件将匿名访问开启最大权限
[root@localhostftp]#cd/etc/vsftpd/ [root@localhostvsftpd]#vimvsftpd.conf ##在配置文件中查找开启下列选项 anonymous_enable=YES##开启匿名用户 local_enable=YES##本地用户 write_enable=YES##写入权限 local_umask=022##本地用户反掩码 anon_upload_enable=YES##上传权限开启 anon_mkdir_write_enable=YES##开启创建目录并且能够写入 anon_other_write_enable=YES##添加一个other的重命名和删除的权限 [root@localhostvsftpd]#systemctlrestartvsftpd##重启服务 [root@localhostvsftpd]#cd/var/ftp/##切换到ftp目录下 [root@localhostftp]#ls pubtest.txt [root@localhostftp]#ls-l 总用量4 drwxr-xr-x.2rootroot610月312018pub -rw-r--r--.1rootroot1311月519:14test.txt [root@localhostftp]#chmod777pub##将pub目录权限给最大,注意不能直接给ftp权限最大
4,用测试机cmd访问ftp并上传本地文件到Linux上
C:\Users\xy007>ftp192.168.13.140##访问ftp服务 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):ftp 331Pleasespecifythepassword. 密码: 230Loginsuccessful. ftp>cdpub/##切换到pub目录下 250Directorysuccessfullychanged. ftp>puttest1.txt##上传文件 200PORTcommandsuccessful.ConsiderusingPASV. 150Oktosenddata. 226Transfercomplete. ftp:发送13字节,用时0.03秒0.41千字节/秒。 ftp>by##退出 221Goodbye. ##你也可以使用delete删除文件
5,查看上传的文件
[root@localhostftp]#cd/var/ftp/pub##切换到pub目录下 [root@localhostpub]#ls##查看上传的文件 test1.txt
二,利用本地用户登录ftp(文件在家目录)
防止本地用户访问系统目录,限制仅访问用户家目录
1,创建系统用户
[root@localhostpub]#useraddzhangsan##创建用户并设置用户密码 [root@localhostpub]#passwdzhangsan [root@localhostpub]#useraddlisi##创建用户并设置用户密码 [root@localhostpub]#passwdlisi
2,测试机上cmd使用用户登录ftp
C:\Users\xy007>ftp192.168.13.140##登录ftp服务 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):zhangsan##使用本地用户 331Pleasespecifythepassword. 密码: 230Loginsuccessful. ftp>ls/##查看用户/下的目录文件,直接到系统根目录下 200PORTcommandsuccessful.ConsiderusingPASV. 150Herecomesthedirectorylisting. /bin /boot /dev /etc /home /lib /lib64 /media /mnt /opt /proc /root /run /sbin /srv /sys /tmp /usr /var 226DirectorysendOK. ftp:收到126字节,用时0.02秒7.88千字节/秒。
3,防止本地用户访问系统目录,限制仅访问用户家目录
[root@localhostpub]#vim/etc/vsftpd/vsftpd.conf##修改配置文件 chroot_local_user=YES##开启限制本地访问系统目录模块 allow_writeable_chroot=YES##添加写的权限 [root@localhostpub]#systemctlrestartvsftpd##重启服务
4,测试机cmd访问
C:\Users\xy007>ftp192.168.13.140##访问ftp 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):zhangsan##用户zhangsan 331Pleasespecifythepassword. 密码: 230Loginsuccessful. ftp>cd/##切换到系统根目录 250Directorysuccessfullychanged. ftp>ls##查看发现还是在用户的家目录中,访问不到系统的其他目录了,增强了安全性 200PORTcommandsuccessful.ConsiderusingPASV. 150Herecomesthedirectorylisting. 226DirectorysendOK. 设置允许,拒绝指定用户访问ftp 1,设置user-list(默认拒绝),允许或者拒绝特定用户登录ftp [root@localhostpub]#cd/etc/vsftpd/##切换到vsftpd配置文件目录 [root@localhostvsftpd]#vimvsftpd.conf userlist_enable=YES##确认user-list开启 [root@localhostvsftpd]#ls ftpusersuser_listvsftpd.confvsftpd_conf_migrate.sh [root@localhostvsftpd]#echo"zhangsan">>user-list##将zhangsan用户添加到列表中 [root@localhostvsftpd]#systemctlrestartvsftpd##重启服务 2,用测试机cmd测试 C:\Users\xy007>ftp192.168.13.140 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):zhangsan##使用zhangsan登录 530Permissiondenied. 登录失败。##直接拒绝登录 ftp>
3,设置列表为仅允许
[root@localhostftp]#cd/etc/vsftpd/ [root@localhostvsftpd]#vimvsftpd.conf##配置vsftpd配置文件 userlist_enable=YES userlist_deny=NO##添加列表允许 [root@localhostvsftpd]#systemctlrestartvsftpd##重启服务
4,测试机cmd测试
C:\Users\xy007>ftp192.168.13.140 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):zhangsan##用zhangsan去登录 331Pleasespecifythepassword. 密码: 230Loginsuccessful.##登录成功 ftp>by 221Goodbye. C:\Users\xy007>ftp192.168.13.140 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):lisi##用lisi去登录 530Permissiondenied. 登录失败。##登录失败
三,建立虚拟用户账户使用ftp(文件在系统用户vuser家目录)
1,创建虚拟用户文件
[root@localhostvsftpd]#cd/etc/vsftpd/##切换到配置文件目录下 [root@localhostvsftpd]#vimvuser##创建虚拟用户文件 lisa##奇数行为用户名 123123##偶数行为密码 tom 123123
2,转换数据库文件,设置安全权限
[root@localhostvsftpd]#db_load-T-thash-fvuservuser.db##将vuser转换成数据库文件 ##T转换,t类型,f指定文件 [root@localhostvsftpd]#chmod600vuser##安全起见,不让别人看到,设置权限 [root@localhostvsftpd]#chmod600vuser.db
3,编辑pam认证模块支持虚拟用户登录
[root@localhostvsftpd]#useradd-d/opt/vuser-s/sbin/nologinvuser ##创建系统用户,指定家目录,不能登录 [root@localhostvsftpd]#vim/etc/pam.d/vsftpd.vu##编译pam认证模块 authrequiredpam_userdb.sodb=/etc/vsftpd/vuser##识别转换过的数据库文件 accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser##连接的密码服务
4,开启虚拟用户,使用pam模块认证登录
[root@localhostvsftpd]#vimvsftpd.conf##修改配置文件 ##大G到末行 #pam_service_name=vsftpd##注释 ##添加下面三行内容 guest_enable=YES##开启来宾用户访问 guest_username=vuser##使用vuser用户名 pam_service_name=vsftpd.vu##pam模块 [root@localhostvsftpd]#systemctlrestartvsftpd##重启服务
5,测试机cmd测试
C:\Users\xy007>ftp192.168.13.140 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):tom##使用虚拟用户tom登录 331Pleasespecifythepassword. 密码: 230Loginsuccessful. ftp>puttest1.txt##上传一个文件 200PORTcommandsuccessful.ConsiderusingPASV. 150Oktosenddata. 226Transfercomplete. ftp:发送13字节,用时0.00秒13000.00千字节/秒。 ##查看文件的权限为600 [root@localhostvsftpd]#ls-l/opt/vuser/ 总用量4 -rw-------.1vuservuser1311月522:51test1.txt
6,单独用户配置,指定上传文件的权限644
[root@localhostvsftpd]#vimvsftpd.conf ##大G末行添加 user_config_dir=/etc/vsftpd/vu_dir##单独用户配置文件夹 [root@localhostvsftpd]#mkdirvu_dir##创建文件夹 [root@localhostvsftpd]#cdvu_dir/ [root@localhostvu_dir]#vimlisa##在配置文件夹里创建用户配置文件 anon_umask=022##指定上传文件的权限 [root@localhostvu_dir]#systemctlrestartvsftpd##重启服务
7,测试机cmd使用lisa用户登录,查看上传文件权限
C:\Users\xy007>ftp192.168.13.140 连接到192.168.13.140。 220(vsFTPd3.0.2) 200AlwaysinUTF8mode. 用户(192.168.13.140:(none)):lisa##使用lisa登录 331Pleasespecifythepassword. 密码: 230Loginsuccessful. ftp>put111.txt##上传文件 200PORTcommandsuccessful.ConsiderusingPASV. 150Oktosenddata. 226Transfercomplete. ftp:发送13字节,用时0.00秒13000.00千字节/秒。 [root@localhostvu_dir]#ls-l/opt/vuser/##查看上传文件的权限 总用量8 -rw-r--r--.1vuservuser1311月522:58111.txt##lisa上传文件权限644 -rw-------.1vuservuser1311月522:51test1.txt##tom上传文件权限600
总结
以上所述是小编给大家介绍的Linux中vsftpd服务配置(匿名,用户,虚拟用户),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。