ftp虚拟账号登陆

配置使用虚拟用户登录的FTP服务器,可以避免使用操作系统帐号作为FTP用户带来的一些安全问题,也便于通过数据库或其它程序来进行管理。

废话不多说,这里记录下ftp虚拟账号登陆的部署过程及其中遇到的问题:

yum安装vsftpd

[[email protected] ~]#yum install -y vsftpd

[[email protected] ~]#yum install -y db4

线上安装后的环境记录

[[email protected]_web vsftpd]# pwd

/etc/vsftpd

设置登陆ftp的虚拟账号文件

[[email protected]_web vsftpd]# cat vuser_passwd.txt

hqsbcms

[email protected]

将账号文本写入数据库

[[email protected]_web vsftpd]#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

[[email protected]_web vsftpd]# ls

chroot_list  user_list    vsftpd.conf.bak  vuser_passwd.db

ftpusers     vsftpd.conf  vsftpd_conf_migrate.sh  vuser_conf       vuser_passwd.txt

[[email protected]_web vsftpd]# cat vsftpd.conf|grep -v "^#"

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

userlist_file=/etc/vsftpd/user_list

guest_enable=YES

guest_username=ftp

user_config_dir=/etc/vsftp/vuser_conf

[[email protected]_web vsftpd]# cat chroot_list

hqsbcms

[[email protected]_web vsftpd]# cat vuser_conf/hqsbcms

local_root=/hqsb/ftp/

write_enable=YES

anon_umask=022

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

[[email protected]_web vsftpd]# cat /etc/pam.d/vsftpd

#%PAM-1.0

#session    optional     pam_keyinit.so    force revoke

#auth       required   pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#auth       required   pam_shells.so

#auth       include      password-auth

#account    include       password-auth

#session    required     pam_loginuid.so

#session    include        password-auth

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

[[email protected]_web vsftpd]# ll -d /hqsb

drwxrwxrwx 5 ftp ftp 4096 Jun 11 17:01 /hqsb

[[email protected]_web vsftpd]# ll -d /hqsb/ftp

drwxrwxrwx 2 ftp ftp 4096 Jun 15 12:10 /hqsb/ftp

[[email protected]_web vsftpd]#/etc/init.d/vsftpd start

上面部署好之后,使用虚拟账号hqsbcms登录(即使在系统上不存在的账号,/etc/passwd里没有的,借助于宿主账号 ftp)

 

但是发现了一个严重问题:

就是登录后,发现还是登陆到ftp的默认目录/var/ftp/下面了

原因:

ftp的shell类型是/sbin/nologin,意思是ftp登陆的时候就只能限制到它的家目录/var/ftp里面了!!

[[email protected]_web vsftpd]# cat /etc/passwd|grep ftp

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

解决办法:

把宿主账号改成nobody!

[[email protected]_web vsftpd]# cat vsftpd.conf|grep -v "^#"

.....

guest_username=nobody    【由ftp改为nobody

.....

重启vsftpd服务

[[email protected]_web vsftpd]#/etc/init.d/vsftpd restart

把nobody的家目录改成/hqsb/ftp

[[email protected]_web vsftpd]# usermod -d /hqsb/ftp nobody

[[email protected]_web vsftpd]# cat /etc/passwd|grep nobody

nobody:x:99:99:Nobody:/hqsb/ftp:/sbin/nologin

修改ftp目录权限

[[email protected]_web vsftpd]# chown -R nobody.nobody /hqsb/ftp

[[email protected]_web vsftpd]# chmod -R 777 /hqsb/ftp

这样修改后,就可以使用虚拟账号hqsb登陆ftp后,就可以正常进去/hsqb/ftp目录下了

时间: 2024-10-10 15:55:32

ftp虚拟账号登陆的相关文章

centos6.5 最小化安装FTP虚拟账号配置

客户机:192.168.0.106 服务端:192.168.0.108(xiaohua108) 一.安装vsftp软件 1.服务端安装直接使用yum安装yum -y install vsftpd 2.客户端安装yum -y install lftp 二.创建虚拟账号 1.创建用户文本文件,添加用户,格式为一行用户一行密码 [[email protected] ~]# vim /etc/vsftpd/vsftpd_user.txt 此文件需要创建 xiaohua  #用户名 此用户名需要与下文创建

ftp主动/被动模式+虚拟账号配置

FTP基础 FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口).通常21端口是命令端口,20端口是数据端口.当混入主动/被动模式的概念时,数据端口就有可能不是20了 FTP的主动模式    主动模式下,FTP客户端从任意的非特殊的端口(N > 1023)连入到FTP服务器的命令端口--21端口.然后客户端在N+1(N+1 >= 1024)端口监听,并且通过N+1(N+1 >= 1024)端口发送命令

vsftpd使用虚拟账号功能以及设置相关权限

我们登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous. 本地用户登录:使用系统用户登录,在/etc/passwd中. 虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器. FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全. 例:FTP虚拟账号 公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关的

实验记录:vsftp整合mysql-pam管理虚拟账号

为了提高系统的安全性,我们采用虚拟用户而非系统(匿名)用户的形式访问FTP.整体思路是通过开启vsftp中的虚拟账户功能并调用新的pam认证模块,然后再修改pam模块使得可以通过mysql验证用户的合法性.以下为实验过程. 第一步装包: yum install -y vsftpd mysql-server mysql-devel pam-devel yum groupinstall -y Development tools tar -xf pam_mysql-0.7RC1.tar.gz -C /

配置vsftp虚拟用户登陆的上传下载

为了系统的安全,创建vsftp虚拟用户,其本身在Linux系统中存在一个映射账号,该账号不允许登录系统,其它虚拟账号通过数据库映射到该账号. 紧接着上次的实验,进行vsftp虚拟用户的配置.网址如下 http://blog.51cto.com/13760226/2140963 实验环境:linux6.5.虚拟win7/10 `vim /etc/vsftp` //进入vsftp目录 `vim vuser` //创建文本 `db_load -T -t hash -f vuser vuser.db`

Linux 下 FTP虚拟用户的使用配置

Linux下FTP虚拟用户的使用配置 Linux的FTP服务支持3种用户: 1.匿名帐户 2.本地帐户 3.虚拟用户 为什么要使用虚拟用户: 匿名帐户可以很好的保证FTP服务器的安全性,但是,对匿名用户的权限管理不够灵活.如果想对访问FTP的帐户给予更多的权限,就可以用本地帐户来实现.但是,本地帐户默认情况下是可以登陆Linux系统的,这样对Linux系统来说是一个安全隐患.那么怎么能在灵活的赋予FTP用户权限的前提下,保证FTP服务器乃至整个Linux系统的安全呢?使用虚拟用户就是一种解决办法

使用linux FTP虚拟用户搭建FTP服务器

最近接触一个项目,客户需要搭建一台FTP服务器.具体要求是:系统采用red hat 6.4 64位操作系统:创建20个ftp用户,这些用户拥有自己独立的工作目录,并且有上传.下载.删除等权限:创建一个ftp管理用户,这个用户拥有管理以上20个ftp用户目录的权限. 仔细一看要求单单使用本地用户设置属组和文件目录权限控制的方法很难实现以上要求,于是想到使用ftp虚拟用户,而且ftp虚拟用户安全性高,不能登录系统,只能访问ftp服务器. 下面开始在自己的虚拟机环境中根据客户的要求搭建ftp服务器.

Linux FTP虚拟用户创建

(1)cd /etc/vsftpd/(2)vim vuser.list创建用户zhaosi和liwu 密码均为redhat(奇数行为帐户名,偶数行为密码)(3)db_load -T -t hash -f vuser.list vuser.db(4)file vuser.db(5)chmod 600 vuser.db(6)rm -f vuser.list(7)设置/var/ftproot/为本地用户家目录(8)chmod -Rf 755 /var/ftproot/赋予家目录权限(9)vim /et

Linux下FTP虚拟账户配置

参考模版/usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS) 1.创建虚拟账户 [[email protected] ~]#yum install db4-utils [[email protected] ~]#vim /etc/vsftpd/vlogin tomcat #账户名称 123456 #密码 jerry #账户名称 654321 #密码 [[email protected] ~]#db_load -T -t hash -f /etc/v