必赢手机app下载 / Blog / 必赢手机app下载 / 构建基于虚拟用户的vsftpd服务器
必赢手机app下载 2

构建基于虚拟用户的vsftpd服务器

安装:

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

[root@server ~]# rpm -ql vsftpd

/etc/logrotate.d/vsftpd

/etc/pam.d/vsftpd

/etc/rc.d/init.d/vsftpd

/etc/vsftpd

/etc/vsftpd/ftpusers

/etc/vsftpd/user_list

/etc/vsftpd/vsftpd.conf

/etc/vsftpd/vsftpd_conf_migrate.sh

/usr/sbin/vsftpd 

…….

[root@server ~]# /etc/init.d/vsftpd start

Starting vsftpd for vsftpd:                                [  OK  ]

[root@server ~]# netstat -lntup|grep 21

tcp        0      0 0.0.0.0:21                  0.0.0.0:*             
     LISTEN      3419/vsftpd

[root@server ~]# cd /var/ftp/pub

[root@server pub]# ll

total 0

[root@server pub]# cp /etc/fstab .

到浏览器测验:

必赢手机app下载 1

必赢手机app下载 2

 

####################################################################################################

1.创设虚构FTP顾客的帐号数据库文件

2.创建FTP根目录及虚构客户映射的种类客商

3.创建援助设想客商的PAM认证文件

4.在vsftpd.conf文件中丰硕援救配置

5.为独家虚构客商建设构造单独的布署文件

6.双重加载vsftpd配置

7.应用设想FTP账户访问测验

 

进度实例:

1.创设虚构FTP顾客的帐号数据库文件

  建设构造虚构客户的账户名、密码列表(通过当和姑件的秘技)

[root@filesvr~]# vi /etc/vsftpd/vusers.list

fedora

123

gentoo

456

[root@filesvr~]# cd /etc/vsftpd/

[root@filesvrvsftpd]# db_load -T -t hash -f vusers.list   vusers.db

[root@filesvrvsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 8, native byte-order)

[root@filesvrvsftpd]# chmod 600/etc/vsftpd/vusers.*

2.创办FTP根目录及虚构客商映射的连串客户

[root@filesvr~]# mkdir/var/ftproot

[root@filesvr~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@filesvr~]# chmod 755 /var/ftproot/

3.创建扶持虚构客商的PAM认证文件

[root@filesvr~]# vi /etc/pam.d/vsftpd.vu

#%PAM-1.0

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

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

4.在vsftpd.conf文件中足够球协会助配置

[root@filesvr~]# vi  /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_umask=022

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.vu

anon_upload_enable=YES   #同意无名账号有上传成效

anon_mkdir_write_enable=YES   #同意无名账号创设文件功效

anon_other_write_enable=YES  #同意无名氏账号具有删除.更名权限

dirmessage_enable=YES

……

5.为独家设想顾客建构单独的布署文件

在vsftpd.conf文件中丰盛顾客配置目录援助

user_config_dir=/etc/vsftpd/vusers_dir

为客户fedora、gentoo创设单独的陈设目录及文件

布署文件名与顾客名同名

[root@filesvr~]# mkdir/etc/vsftpd/vusers_dir/

[root@filesvr~]# cd /etc/vsftpd/vusers_dir/

[root@filesvrvusers_dir]# touch fedora

[root@filesvrvusers_dir]# vi gentoo

anon_upload_enable=YES

anon_mkdir_write_enable=YES

6.重新加载vsftpd配置

service vsftpd reload

7.接收虚构FTP账户访谈测验

各自用fedora、gentoo客户登陆FTP服务器进行下载、上传测验

fedora客户能够登入,并得以浏览、下载文件,但无计可施上传

gentoo客户能够登入,并得以浏览、下载文件,也足以上传

无名氏客商或任何系统顾客将不可能登陆

 

 

•在使用
db_load命令时,“-f”选项用于钦点顾客名/密码列表文件,“-T”选项允许非BerkeleyDB的应用程序使用从文本格式转变的DB数据文件,“-t
hash”选项钦定读取数据文件的基本格局。关于db_load命令的详实表达可参阅/usr/share/doc/db4-utils-4.3.29/utility/db_load.html文件

•将帐号文件的权位设置为600,能够使得提升安全性

•vsftpd虚构客商必要有八个对应的系统客商帐号(该帐号没有必要安装密码及登录Shell卡塔尔,该客户帐号的宿主目录作为有着虚拟客商登入后的一路FTP根目录

•PAM配置文件(名称能够活动定义卡塔尔国首要用来为顺序提供客户认证调整,vsftpd服务应用的暗许PAM配置文件为/etc/pam.d/vsftpd,能够参见该文件的格式创设新的PAM配置文件,用于设想客户认证调整

•在vsftpd.conf配置文件中增加guest_enable、guest_username配置项,将访问FTP服务的有所虚拟客商对应到同生龙活虎系统客户帐号virtual。并改正pam_service_name配置项,指向上一步建立的PAM配置文件/etc/pam.d/vsftpd.vu

•在vsftpd服务中,设想用户帐户默许作为无名氏客户管理以减少权限,因而相应的权柄设置日常选用以anon_始发的配备项。举例,在设置虚构客户所上传文件的私下认可权限掩码时应使用配备项anon_umask而不是local_umask

•此步骤实际上是可选的,即使无需为各自客户设置独立的选项,则无需此步骤

•尽管没有必要为fedora客商加多额外权限设置,可是也要创设二个空配置文件

•即使急需禁止使用或许仅允许大器晚成部分伪造客商帐号,相符能够接收/etc/vsftpd/user_list列表文件,具体方法请参照他事他说加以考查2.2.3小节中的例2.13。需求注意的是,在/etc/vsftpd/ftpusers文件中插足虚构客户名,并不可能禁止使用对应的系统帐号

 

 

###########################入手实例##############################

[root@server pub]# cd /etc/vsftpd/

[root@server vsftpd]# vim vusers.list

mike

123

john

456

[root@server vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@server vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash, version 9, native byte-order)

[root@server vsftpd]# chmod 600 ./vusers.*

[root@server vsftpd]# useradd -d /var/ftproot -s /sbin/nologin
virtual             #-d 内定顾客的家目录

[root@server vsftpd]# chmod 755 /var/ftproot/

[root@server vsftpd]# vi /etc/pam.d/vsftpd.vu

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

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

[root@server vsftpd]# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_umask=022

guest_enable=YES

guest_username=virtual

pam_service_name=vsftpd.vu

测试:

[root@server src]# yum install -y lftp

[root@server src]# lftp mike@127.0.0.1       

Password:

lftp mike@127.0.0.1:~> mkdir test

mkdir ok, `test’ created

lftp mike@127.0.0.1:/> quit

[root@server src]# cd /var/ftproot/

[root@server ftproot]# ll

total 4

drwx—— 2 virtual virtual 4096 May 16 17:56 test    
#test目录归属设想客户virtual 

 

####为分裂设想客商安装不一致的权能#############

[root@server ftproot]# cd /etc/vsftpd/

[root@server vsftpd]# mkdir vusers_home

[root@server vsftpd]# cd vusers_home/

[root@server vusers_home]# vi mike

anon_mkdir_write_enable=YES

anon_upload_enable=YES

测试:

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp mike@127.0.0.1       

Password:

lftp mike@127.0.0.1:~> mkdir test1

mkdir ok, `test1′ created           

lftp mike@127.0.0.1:/> quit

[root@server vusers_home]# ll

total 4

-rw-r–r– 1 root root 51 May 16 18:24 mike

[root@server vusers_home]# ll /var/ftproot/

.bash_logout   .bash_profile  .bashrc        test/          test1/

[root@server vusers_home]# ll /var/ftproot/

total 8

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

[root@server vusers_home]# lftp john@127.0.0.1       

Password:

lftp john@127.0.0.1:~> ls         

ls: Login failed: 530 Login incorrect.         

lftp john@127.0.0.1:~> mkdir test3

mkdir: Login failed: 530 Login incorrect.           

lftp john@127.0.0.1:~> quit

[root@server vusers_home]# cp /etc/vsftpd/

ftpusers                vsftpd_conf_migrate.sh  vusers.list

user_list               vusers.db               

vsftpd.conf             vusers_home/           

[root@server vusers_home]# cp /etc/vsftpd/vusers_home/mike
/etc/vsftpd/vusers_home/john

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp john@127.0.0.1

Password:

lftp john@127.0.0.1:~> mkdir test4

mkdir ok, `test4′ created

lftp john@127.0.0.1:/> quit

[root@server vusers_home]# ll /var/ftproot/

total 12

drwx—— 2 virtual virtual 4096 May 16 17:56 test

drwx—— 2 virtual virtual 4096 May 16 18:24 test1

drwx—— 2 virtual virtual 4096 May 16 18:29 test4

 

后续测量检验:

[root@server vusers_home]# vi /etc/vsftpd/vusers_home/john

anon_mkdir_write_enable=YES

anon_upload_enable=YES

write_enable=YES

virtual_use_local_privs=YES      
当有write_enable=YES;virtual_use_local_privs=YES
时,虚构顾客全体写权限(上传,下载,删除,重命名卡塔 尔(阿拉伯语:قطر‎

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# !l

lftp john@127.0.0.1

Password:

lftp john@127.0.0.1:~> ls         

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:29 test4

drwx——    2 501      501          4096 May 16 10:34 test5

lftp john@127.0.0.1:~> rmdir test5        #删除

rmdir ok, `test5′ removed

lftp john@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 09:56 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:29 test4

lftp john@127.0.0.1:~> cd test

test/  test1/  test4/

lftp john@127.0.0.1:~> cd test4

lftp john@127.0.0.1:~/test4> put /etc/fstab    #上传

855 bytes transferred   

lftp john@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 16 10:43 fstab

lftp john@127.0.0.1:~/test4> get fstab -o /tmp/    #下载

855 bytes transferred

lftp john@127.0.0.1:~/test4> mv fstab fftab     #重命名

rename successful

lftp john@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 16 10:46 fftab 

 

 

 

############备注######################

备注:virtual_use_必赢手机app下载,local_privs参数
当virtual_use_local_privs=YES时,设想顾客和本地客商有意气风发致的权杖;
当virtual_use_local_privs=NO时,设想顾客和无名氏客商有相像的权位,暗中认可是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟客户具有写权限(上传、下载、删除、重命名卡塔 尔(英语:State of Qatar)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,设想顾客不能够浏览目录,只好上传文件,无任何权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚构客户只可以下载文件,无其余权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,设想顾客只好上传和下载文件,无别的权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,设想顾客只可以下载文件和开创文件夹,无此外权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚构顾客只可以下载、删除和重命名文件,无任何权限。

 

 

 

 

 #######################################用mysql+pam+vsftpd###############################

 

风度翩翩、安装所急需程序

 

1、安装mysql和pam_mysql

 

# yum -y install  mysql-server mysql-devel pam_mysql

注意:pam_mysql由epel源提供。(yum  install -y epel-release)

二、创造虚构客户账号

 

1.希图数据库及有关表

 

第大器晚成请确定保障mysql服务业已司空眼惯运行。而后,按必要创设存款和储蓄设想客商的数据库就可以,这里将其创造为vsftpd数据库。

 

mysql> create database vsftpd;

 

mysql> grant select on vsftpd.* to vsftpd@localhost identified by
‘redhat’;

mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by
‘redhat’;

mysql> flush privileges;

 

mysql> use vsftpd;

mysql> create table users (

 id int AUTO_INCREMENT NOT NULL,

 name char(20) binary NOT NULL,

password char(48) binary NOT NULL,

 primary key(id)

 );

 

2、增加测量检验的伪造顾客

 

听他们说须求丰盛所急需的客商,须求表明的是,这里将其密码为了安全起见应该利用PASSWO讴歌MDXD函数加密后存储。

 

mysql> insert into users(name,password)
values(‘fush1’,password(‘asdfg’));

mysql> insert into users(name,password)
values(‘fush2’,password(‘asdfg’));

三、配置vsftpd

 

1.确立pam认证所需文件

 

#vi /etc/pam.d/vsftpd.mysql

增添如下两行

auth required /lib64/security/pam_mysql.so user=vsftpd passwd=redhat
host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

account required /lib64/security/pam_mysql.so user=vsftpd
passwd=redhat host=localhost db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2

 

##请检查
ll 
/lib64/security/pam_mysql.so  
该文件是还是不是留存,不设有查看pam_mysql 是还是不是安装成功!**

 

 

在乎:由于mysql的安装形式区别,pam_mysql.so基于unix
sock连接mysql服务器时大概会出题目,当时,提出授权四个可长途连接的mysql并拜会vsftpd数据库的客商。

 

2.订正vsftpd的配置文件,使其适应mysql认证

 

创建虚构顾客映射的系统客商及相应的目录

# useradd -s /sbin/nologin -d /var/ftproot virtual      #virtual
为假造顾客映射的类别客商

# chmod go+rx /var/ftproot

请确定保证/etc/vsftpd.conf中已经启用了以下选项

[root@server vusers_home]# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

而后增加

guest_enable=YES

guest_username=virtual     # virtual
为伪造客商映射的种类客户,useradd -s /sbin/nologin -d /var/ftproot
virtual  中所创立的

并确保pam_service_name选项的值如下所示

pam_service_name=vsftpd.mysql

四、启动vsftpd服务

 

# service vsftpd start

# chkconfig vsftpd on

 

查看端口开启状态

 

# netstat -tnlp |grep :21

tcp        0      0 0.0.0.0:21              0.0.0.0:*             
 LISTEN      23286/vsftpd

测试:

 oot@server ~]# lftp fush1@127.0.0.1

Password:

lftp fush1@127.0.0.1:~> ls     

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test4

lftp fush1@127.0.0.1:/> mkdir test3

mkdir: Access failed: 550 Permission denied. (test3)  
 #因为全局的anon_mkdir_write_enable=YES权限注释掉了,所以未有权力

lftp fush1@127.0.0.1:/> quit 

五、配置虚构顾客全体分歧的寻访权限

# vim vsftpd.conf

增添如下选项

user_config_dir=/etc/vsftpd/vusers_home

 

[root@server vusers_home]#touch fush1

[root@server vusers_home]#vim fush1

write_enable=YES

virtual_use_local_privs=YES          
 当时fush1将全数具备权力(下载,上传,重命名,创造,删除卡塔尔

 

测量试验如下:

[root@server vusers_home]# /etc/init.d/vsftpd restart

Shutting down vsftpd:                                      [  OK 
]

Starting vsftpd for vsftpd:                                [  OK 
]

[root@server vusers_home]# lftp fush1@127.0.0.1

Password:

lftp fush1@127.0.0.1:~> ls     

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test5

lftp fush1@127.0.0.1:~> mkdir test4

mkdir ok, `test4′ created

lftp fush1@127.0.0.1:~> cd test4

lftp fush1@127.0.0.1:~/test4> put /etc/fstab

855 bytes transferred                             

lftp fush1@127.0.0.1:~/test4> ls

-rw-r–r–    1 501      501           855 May 18 06:29 fstab

lftp fush1@127.0.0.1:~/test4> get /etc/fstab -o /usr/local/src/

855 bytes transferred

lftp fush1@127.0.0.1:~/test4> cd ..

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

drwx——    2 501      501          4096 May 16 10:46 test5

lftp fush1@127.0.0.1:~> mv test5 test2

rename successful

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwx——    2 501      501          4096 May 16 10:46 test2

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

lftp fush1@127.0.0.1:~> rm -rf test2

rm ok, 2 files removed

lftp fush1@127.0.0.1:~> ls

drwx——    2 501      501          4096 May 16 10:47 test

drwx——    2 501      501          4096 May 16 10:24 test1

drwxr-xr-x    2 501      501          4096 May 18 06:29 test4

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图