营造基于虚构顾客的vsftpd服务器,创设vsftpd服务

[root@server vusers_home]#touch fush1

营造基于设想客户的vsftpd服务器,营造vsftpd服务器

安装: [[email protected] ~]# yum install -y vsftpd [[email protected] ~]# 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  ....... [[email protected] ~]# /etc/init.d/vsftpd start Starting vsftpd for vsftpd:                                [  OK  ] [[email protected] ~]# netstat -lntup|grep 21 tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      3419/vsftpd [[email protected] ~]# cd /var/ftp/pub [[email protected] pub]# ll total 0 [[email protected] pub]# cp /etc/fstab . 到浏览器测验: 上海时时乐走势图 1 上海时时乐走势图 2   #################################################################################################### 1.确立设想FTP客商的帐号数据库文件 2.成立FTP根目录及虚构客户映射的种类客商 3.创设支持虚构客商的PAM认证文件 4.在vsftpd.conf文件中丰盛援助配置 5.为各自虚构顾客组建单独的陈设文件 6.重新加载vsftpd配置 7.应用虚构FTP账户采访测量试验   进程实例: 1.起家设想FTP客户的帐号数据库文件   建构设想顾客的账户名、密码列表(通过地面文件的办法) [[email protected]~]# vi /etc/vsftpd/vusers.list

fedora

123

gentoo

456

[[email protected]~]# cd /etc/vsftpd/

[[email protected]]# db_load -T -t hash -f vusers.list   vusers.db

[[email protected]]# file vusers.db

vusers.db: Berkeley DB (Hash, version 8, native byte-order) [[email protected]]# chmod 600/etc/vsftpd/vusers.* 2.成立FTP根目录及设想客商映射的种类客商 [[email protected]~]# mkdir/var/ftproot [[email protected]~]# useradd -d /var/ftproot -s /sbin/nologin virtual [[email protected]~]# chmod 755 /var/ftproot/ 3.成立帮助虚构客户的PAM认证文件 [[email protected]~]# 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文件中足够支持配置 [[email protected]~]# 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创立单独的配备目录及文件 配置文件名与客户名同名 [[email protected]~]# mkdir/etc/vsftpd/vusers_dir/ [[email protected]~]# cd /etc/vsftpd/vusers_dir/ [[email protected]_dir]# touch fedora [[email protected]_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文件中投入设想顾客名,并不能够禁止使用对应的系统帐号     ###########################入手实例############################## [[email protected] pub]# cd /etc/vsftpd/ [[email protected] vsftpd]# vim vusers.list mike 123 john 456 [[email protected] vsftpd]# db_load -T -t hash -f vusers.list vusers.db [[email protected] vsftpd]# file vusers.db vusers.db: Berkeley DB (Hash, version 9, native byte-order) [[email protected] vsftpd]# chmod 600 ./vusers.* [[email protected] vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual             #-d 钦命客户的家目录 [[email protected] vsftpd]# chmod 755 /var/ftproot/ [[email protected] 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 [[email protected]er 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 测试: [[email protected] src]# yum install -y lftp [[email protected] src]# lftp [email protected]        Password: lftp [email protected]:~> mkdir test mkdir ok, `test' created lftp [email protected]:/> quit [[email protected] src]# cd /var/ftproot/ [[email protected] ftproot]# ll total 4 drwx------ 2 virtual virtual 4096 May 16 17:56 test     #test目录属于虚构顾客virtual    ####为不一致设想客户设置不相同的权位############# [[email protected] ftproot]# cd /etc/vsftpd/ [[email protected] vsftpd]# mkdir vusers_home [[email protected] vsftpd]# cd vusers_home/ [[email protected] vusers_home]# vi mike anon_mkdir_write_enable=YES anon_upload_enable=YES 测试: [[email protected] vusers_home]# /etc/init.d/vsftpd restart Shutting down vsftpd:                                      [  OK  ] Starting vsftpd for vsftpd:                                [  OK  ] [[email protected] vusers_home]# lftp [email protected]        Password: lftp [email protected]:~> mkdir test1 mkdir ok, `test1' created            lftp [email protected]:/> quit [[email protected] vusers_home]# ll total 4 -rw-r--r-- 1 root root 51 May 16 18:24 mike [[email protected] vusers_home]# ll /var/ftproot/ .bash_logout   .bash_profile  .bashrc        test/          test1/ [[email protected] 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 [[email protected] vusers_home]# lftp [email protected]        Password: lftp [email protected]:~> ls          ls: Login failed: 530 Login incorrect.          lftp [email protected]:~> mkdir test3 mkdir: Login failed: 530 Login incorrect.            lftp [email protected]:~> quit [[email protected] vusers_home]# cp /etc/vsftpd/ ftpusers                vsftpd_conf_migrate.sh  vusers.list user_list               vusers.db                vsftpd.conf             vusers_home/            [[email protected] vusers_home]# cp /etc/vsftpd/vusers_home/mike /etc/vsftpd/vusers_home/john [[email protected] vusers_home]# /etc/init.d/vsftpd restart Shutting down vsftpd:                                      [  OK  ] Starting vsftpd for vsftpd:                                [  OK  ] [[email protected] vusers_home]# lftp [email protected] Password: lftp [email protected]127.0.0.1:~> mkdir test4 mkdir ok, `test4' created lftp [email protected]:/> quit [[email protected] 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   接轨测验: [[email protected] 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 时,设想顾客具备写权限(上传,下载,删除,重命名) [[email protected] vusers_home]# /etc/init.d/vsftpd restart Shutting down vsftpd:                                      [  OK  ] Starting vsftpd for vsftpd:                                [  OK  ] [[email protected] vusers_home]# !l lftp [email protected] Password: lftp [email protected]:~> 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 [email protected]:~> rmdir test5        #删除 rmdir ok, `test5' removed lftp [email protected]:~> 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 [email protected]:~> cd test test/  test1/  test4/ lftp [email protected]:~> cd test4 lftp [email protected]:~/test4> put /etc/fstab    #上传 855 bytes transferred    lftp [email protected]:~/test4> ls -rw-r--r--    1 501      501           855 May 16 10:43 fstab lftp [email protected]:~/test4> get fstab -o /tmp/    #下载 855 bytes transferred lftp [email protected]:~/test4> mv fstab fftab     #重命名 rename successful lftp [email protected]:~/test4> ls -rw-r--r--    1 501      501           855 May 16 10:46 fftab        ############备注###################### 备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,设想客户和本地客户有同等的权力;
当virtual_use_local_privs=NO时,设想客商和无名氏顾客有雷同的权位,默许是NO。

当virtual_use_local_privs=YES,write_enable=YES时,设想顾客全体写权限(上传、下载、删除、重命名)。

当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 [email protected] identified by 'redhat'; mysql> grant select on vsftpd.* to [email protected] 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、增加测验的虚构用户   依据必要加上所要求的客商,要求证实的是,这里将其密码为了安全起见应该运用PASSWOKoleosD函数加密后存款和储蓄。   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中曾经启用了以下选项[[email protected] vusers_home]# vi /etc/vsftpd/vsftpd.conf anonymous_enable=NOlocal_enable=YES write_enable=YES anon_upload_enable=NOanon_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 测试: [email protected] ~]# lftp [email protected]Password: lftp [email protected]:~> ls      drwx------    2 501      501          4096 May 16 10:47 test drwx------    2 501      501          4096 May 16 10:24 test1drwx------    2 501      501          4096 May 16 10:46 test4 lftp [email protected]:/> mkdir test3 mkdir: Access failed: 550 Permission denied. (test3)    #因为全局的anon_mkdir_write_enable=YES权限注释掉了,所以并未权限lftp [email protected]:/> quit  五、配置虚拟客户全部区别的拜访权限 # vim vsftpd.conf拉长如下选项 user_config_dir=/etc/vsftpd/vusers_home  [[email protected] vusers_home]#touch fush1[[email protected] vusers_home]#vim fush1 write_enable=YESvirtual_use_local_privs=YES            此时fush1将持有有着权限(下载,上传,重命名,创制,删除)  测量试验如下:[[email protected] vusers_home]# /etc/init.d/vsftpd restart Shutting down vsftpd:                                      [  OK  ] Starting vsftpd for vsftpd:                                [  OK  ][[email protected] vusers_home]# lftp [email protected]Password: lftp [email protected]:~> ls      drwx------    2 501      501          4096 May 16 10:47 test drwx------    2 501      501          4096 May 16 10:24 test1drwx------    2 501      501          4096 May 16 10:46 test5 lftp [email protected]:~> mkdir test4 mkdir ok, `test4' created lftp [email protected]:~> cd test4 lftp [email protected]:~/test4> put /etc/fstab 855 bytes transferred                             lftp [email protected]:~/test4> ls -rw-r--r--    1 501      501           855 May 18 06:29 fstablftp [email protected]:~/test4> get /etc/fstab -o /usr/local/src/ 855 bytes transferred lftp [email protected]:~/test4> cd .. lftp [email protected]:~> ls drwx------    2 501      501          4096 May 16 10:47 testdrwx------    2 501      501          4096 May 16 10:24 test1drwxr-xr-x    2 501      501          4096 May 18 06:29 test4drwx------    2 501      501          4096 May 16 10:46 test5 lftp [email protected]:~> mv test5 test2 rename successful lftp [email protected]:~> ls drwx------    2 501      501          4096 May 16 10:47 testdrwx------    2 501      501          4096 May 16 10:24 test1drwx------    2 501      501          4096 May 16 10:46 test2drwxr-xr-x    2 501      501          4096 May 18 06:29 test4 lftp [email protected]:~> rm -rf test2 rm ok, 2 files removed lftp [email protected]:~> ls drwx------    2 501      501          4096 May 16 10:47 testdrwx------    2 501      501          4096 May 16 10:24 test1drwxr-xr-x    2 501      501          4096 May 18 06:29 test4      **

安装:[[email protected] ~]# yum install -y vsftpd[[email protected] ~]# rpm -ql vsftpd/etc/logrotate.d/vsftpd/etc/pam.d/v...

user_config_dir=/etc/vsftpd/vusers_dir

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

 

Starting vsftpd for vsftpd:                                [  OK  ]

user_config_dir=/etc/vsftpd/vusers_home

四、启动vsftpd服务

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

[root@server src]# lftp mike@127.0.0.1       

lftp mike@127.0.0.1:/> quit

local_enable=YES

total 0

pam_service_name=vsftpd.mysql

lftp john@127.0.0.1:~/test4> ls

•在vsftpd服务中,虚构客户帐户私下认可作为佚名顾客管理以减弱权限,因而相应的权力设置平时采纳以anon_千帆竞发的配备项。例如,在装置设想客商所上传文件的暗中同意权限掩码时应利用配备项anon_umask而不是local_umask

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

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

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

Password:

[root@filesvrvusers_dir]# vi gentoo

 

/etc/vsftpd/user_list

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

mkdir ok, `test4' created

 

充足如下两行

 

……

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

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

请保管/etc/vsftpd.conf中早就启用了以下选项

[root@server vusers_home]# !l

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

lftp john@127.0.0.1:~> mkdir test4

•在vsftpd.conf配置文件中增添guest_enable、guest_username配置项,将访谈FTP服务的保有虚构客户对应到同一系统顾客帐号virtual。并修改pam_service_name配置项,指向上一步创设的PAM配置文件/etc/pam.d/vsftpd.vu

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

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

6.再一次加载vsftpd配置

pam_service_name=vsftpd.vu

 

vsftpd.conf             vusers_home/           

 

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

rename successful

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

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

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

累加如下选项

Starting vsftpd for vsftpd:                                [  OK  ]

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

 

456

guest_username=virtual     # virtual 为设想客商映射的系统顾客,useradd -s /sbin/nologin -d /var/ftproot virtual  中所创设的

 

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

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

[root@server vusers_home]# lftp fush1@127.0.0.1

 

 

total 12

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

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

 

[root@server ftproot]# ll

3.起家接济虚构客户的PAM认证文件

lftp fush1@127.0.0.1:~> mv test5 test2

 

Starting vsftpd for vsftpd:                                [  OK  ]

Shutting down vsftpd:                                      [  OK  ]

lftp fush1@127.0.0.1:~> ls

anon_umask=022

gentoo客户能够登陆,并可以浏览、下载文件,也能够上传

855 bytes transferred                             

5.为独家设想客户创设单独的安插文件

到浏览器测量试验:

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

total 4

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

2、加多测量检验的设想顾客

mkdir ok, `test1' created           

lftp fush1@127.0.0.1:~> mkdir test4

# useradd -s /sbin/nologin -d /var/ftproot virtual      #virtual 为设想顾客映射的种类客户

lftp john@127.0.0.1:~> mkdir test3

1.白手起家pam认证所需文件

 

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

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

2.改换vsftpd的布局文件,使其适应mysql认证

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

456

未来增多

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

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

[root@filesvrvsftpd]# file vusers.db

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

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

[root@server vsftpd]# vim vusers.list

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

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

 

[root@server pub]# ll

备注:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,设想客商和本地顾客有同样的权力;
当virtual_use_local_privs=NO时,设想顾客和无名氏顾客有同等的权限,默许是NO。

[root@server vusers_home]# ll

 

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

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

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

•vsftpd设想顾客供给有七个对应的系统客户帐号(该帐号无需安装密码及登陆Shell),该客商帐号的宿主目录作为有着设想顾客登陆后的协同FTP根目录

3.确立帮忙设想客商的PAM认证文件

lftp fush1@127.0.0.1:~> rm -rf test2

Password:

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

mkdir ok, `test' created

write_enable=YES

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

[root@server vusers_home]# lftp john@127.0.0.1       

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

 

fedora

anonymous_enable=NO

一、安装所急需程序

[root@server vusers_home]# vi mike

6.重新加载vsftpd配置

anon_upload_enable=YES

total 8

lftp fush1@127.0.0.1:~> ls     

 

 

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

 

Shutting down vsftpd:                                      [  OK  ]

anon_other_write_enable=YES  #同意佚名账号具备删除.更名权限

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

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

个别用fedora、gentoo顾客登入FTP服务器举行下载、上传测量试验

#%PAM-1.0

rename successful

Starting vsftpd for vsftpd:                                [  OK  ]

lftp fush1@127.0.0.1:/> quit 

mysql> use vsftpd;

测量试验如下:

安装:

virtual_use_local_privs=YES            此时fush1将富有有着权限(下载,上传,重命名,创立,删除)

4.在vsftpd.conf文件中加上援助配置

 

write_enable=YES

创设设想客户映射的种类客商及相应的目录

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

 

###########################出手实例##############################

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

上海时时乐走势图 3

第一请保管mysql服务一度司空眼惯运转。而后,按须求构建存款和储蓄设想客商的数据库就可以,这里将其创设为vsftpd数据库。

1.白手起家设想FTP顾客的帐号数据库文件

anon_mkdir_write_enable=YES

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

 

Shutting down vsftpd:                                      [  OK  ]

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

  建设构造虚构客商的账户名、密码列表(通过地面文件的点子)

 );

guest_enable=YES

lftp john@127.0.0.1:~> cd test4

•如若须求禁止使用或许仅同意一些设想顾客帐号,一样能够使用/etc/vsftpd/user_list列表文件,具体方法请参见2.2.3小节中的例2.13。必要注意的是,在/etc/vsftpd/ftpusers文件中加入设想客户名,并不能够禁止使用对应的系统帐号

2.成立FTP根目录及虚构客户映射的系统客户

lftp john@127.0.0.1:/> quit

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

lftp fush1@127.0.0.1:~> cd test4

total 4

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

lftp mike@127.0.0.1:~> mkdir test

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

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

Shutting down vsftpd:                                      [  OK  ]

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

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

Password:

五、配置设想顾客具有不相同的访谈权限

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚构客商只好下载文件和开创文件夹,无任何权限。

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

/usr/sbin/vsftpd 

.......

1.预备数据库及有关表

 

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

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

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

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

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

anonymous_enable=NO

/etc/logrotate.d/vsftpd

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

lftp john@127.0.0.1:~> ls

write_enable=YES

local_enable=YES

write_enable=YES

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

123

user_list               vusers.db               

mkdir: Login failed: 530 Login incorrect.           

[root@server vsftpd]# file vusers.db

5.为独家虚构客商创设独立的布局文件

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

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

anon_mkdir_write_enable=YES

 id int AUTO_INCREMENT NOT NULL,

lftp john@127.0.0.1:~> quit

 

Starting vsftpd for vsftpd:                                [  OK  ]

在vsftpd.conf文件中增进客商配置目录援助

ftpusers                vsftpd_conf_migrate.sh  vusers.list

 

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

/etc/vsftpd/vsftpd.conf

mysql> flush privileges;

guest_enable=YES

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

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

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

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

测试:

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

guest_enable=YES

password char(48) binary NOT NULL,

lftp fush1@127.0.0.1:~> ls

 

 

 

 

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

lftp fush1@127.0.0.1:/> mkdir test3

[root@server vsftpd]# mkdir vusers_home

# service vsftpd start

lftp mike@127.0.0.1:/> quit

guest_username=virtual

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

drwx------ 2 virtual virtual 4096 May 16 17:56 test     #test目录属于设想顾客virtual 

 

anon_umask=022

二、创造虚构客户账号

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

测试:

anon_upload_enable=YES

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

anon_other_write_enable=YES时,虚构顾客只好下载、删除和重命名文件,无别的权限。

[root@server vusers_home]# lftp john@127.0.0.1

# chmod go rx /var/ftproot

john

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

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

mike

 

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

dirmessage_enable=YES

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

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

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

上海时时乐走势图 4

 

lftp fush1@127.0.0.1:~> ls

lftp fush1@127.0.0.1:~> ls     

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

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

test/  test1/  test4/

2.开立FTP根目录及虚构客户映射的类别客户

mysql> create table users (

pam_service_name=vsftpd.vu

7.行使设想FTP账户访问测验

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

lftp john@127.0.0.1:~/test4> ls

/etc/vsftpd

 

anon_mkdir_write_enable=YES

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

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

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

.bash_logout   .bash_profile  .bashrc        test/          test1/

123

ls: Login failed: 530 Login incorrect.         

[root@server vsftpd]# cd vusers_home/

Password:

gentoo

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

•就算无需为fedora顾客加多额外权限设置,可是也要树立一个空配置文件

[root@server ~]# rpm -ql vsftpd

测试:

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚构客商不可能浏览目录,只可以上传文件,无其余权限。

# vim vsftpd.conf

chroot_local_user=YES

继续测量试验:

/etc/pam.d/vsftpd

guest_username=virtual

 

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

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

# netstat -tnlp |grep :21

经超过实际例:

瞩目:由于mysql的设置方式分化,pam_mysql.so基于unix sock连接mysql服务器时恐怕会出标题,此时,提出授权一个可长途连接的mysql并拜见vsftpd数据库的顾客。

fedora客商能够登入,并得以浏览、下载文件,但力不能及上传

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

[root@server vusers_home]# lftp mike@127.0.0.1       

/etc/vsftpd/vsftpd_conf_migrate.sh

anon_upload_enable=YES

•将帐号文件的权能设置为600,能够有效增进安全性

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

•PAM配置文件(名称能够活动定义)首要用来为顺序提供顾客认证调控,vsftpd服务使用的暗中认可PAM配置文件为/etc/pam.d/vsftpd,能够参照该文件的格式建设构造新的PAM配置文件,用于设想客商认证调节

lftp john@127.0.0.1:~> ls         

/etc/vsftpd/ftpusers

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

Password:

 

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

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

anon_mkdir_write_enable=YES   #允许无名账号成立文件作用

三、配置vsftpd

855 bytes transferred

Password:

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

####为差别虚构客商设置区别的权限#############

无名客商或别的系统客户将不可能登入

安顿文件名与客商名同名

rmdir ok, `test5' removed

855 bytes transferred   

virtual_use_local_privs=YES       当有write_enable=YES;virtual_use_local_privs=YES 时,设想顾客具备写权限(上传,下载,删除,重命名)

local_enable=YES

•此步骤实际上是可选的,如若无需为各自客商设置独立的选项,则没有须求此步骤

[root@server vusers_home]#vim fush1

基于须要足够所急需的顾客,须求表达的是,这里将其密码为了安全起见应该利用PASSWO奔驰M级D函数加密后存款和储蓄。

 primary key(id)

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

anon_mkdir_write_enable=NO

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

Password:

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

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

7.施用设想FTP账户访谈测量检验

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

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

# chkconfig vsftpd on

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

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

lftp fush1@127.0.0.1:~/test4> ls

lftp john@127.0.0.1:~> ls         

1、安装mysql和pam_mysql

[root@filesvrvusers_dir]# touch fedora

mkdir ok, `test4' created

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

当virtual_use_local_privs=YES,write_enable=YES时,虚拟客商具有写权限(上传、下载、删除、重命名)。

 

855 bytes transferred

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

 

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

mysql> create database vsftpd;

write_enable=YES

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

lftp mike@127.0.0.1:~> mkdir test1

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

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

 name char(20) binary NOT NULL,

lftp john@127.0.0.1:~> cd test

查看端口开启状态

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

4.在vsftpd.conf文件中增进帮衬配置

 oot@server ~]# lftp fush1@127.0.0.1

 

为顾客fedora、gentoo建设构造单独的布局目录及文件

 

rm ok, 2 files removed

1.成立设想FTP顾客的帐号数据库文件

 

anonymous_enable=NO

 

service vsftpd reload

lftp john@127.0.0.1

anon_upload_enable=NO

本文由上海时时乐走势图发布于上海时时乐走势图,转载请注明出处:营造基于虚构顾客的vsftpd服务器,创设vsftpd服务

您可能还会对下面的文章感兴趣: