vsftpd

练习:完成vsftpd配置

(1) 禁锢系统用户于家目录

[root@node3 ~]# yum -y install vsftpd
[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES       //大概在102行,启用此处的配置语句 

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): gao
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,28,138).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.
ftp> pwd
257 "/"       #禁锢成功

(2) 基于mysql进行用户认证

安装pam_mysql模块:

        a:

[root@node3 ~]# yum -y install pam_mysql  <CentOS 6上>

        b:

[root@node3 ~]# yum -y install mariadb-devel pam-devel
[root@node3 ~]# wget 10.1.0.1:/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# tar -xf pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# cd pam_mysql-0.7RC1
[root@node3 pam_mysql-0.7RC1]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
[root@node3 pam_mysql-0.7RC1]# make
[root@node3 pam_mysql-0.7RC1]# make install

修改vsftpd的配置文件:

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES      //在末尾写上此3行,并把末尾向上5-6的位置中的 pam_service_name 这行注释掉
guest_username=vuser

pam_service_name=vsftpd.mysql

建立数据库:

[root@node3 ~]# mysql
mysql> CREATE DATABASE vsftpd;
mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));
mysql> INSERT INTO vsftpd.users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu'));

mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'mageedu';
mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';
mysql> FLUSH PRIVILEGES;

vsftpd通过pam_mysql进行认证的配置文件:

[root@node3 ~]# vim /etc/pam.d/vsftpd.mysql
auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

准备匿名用户映射的系统用户账号:

[root@node3 ~]# mkdir /ftproot
[root@node3 ~]# useradd  -d /ftproot  vuser
[root@node3 ~]# mkdir /ftproot/{pub,upload}
[root@node3 ~]# setfacl -m u:vuser:rwx  /ftproot/upload

登录用户:  

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,215,37).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.

(3) 不同的虚拟用户拥有不同的权限设定

在配置(2)的基础上,配置每匿名用户有单独的权限设定

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_conf    #在末尾追加此语句

创建目录:

[root@node3 ~]# mkdir /etc/vsftpd/vusers_conf

为每用户提供配置文件:

[root@node3 ~]# /etc/vsftpd/vusers_conf/{tom,jerry}

配置权限的指令:

[root@node3 ~]# vim /etc/vsftpd/vusers_conf/tom
anon_upload_enable=YES|NO        #注意不给指令:默认为NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO
[root@node3 ~]# vim /etc/vsftpd/vusers_conf/jerry
anon_upload_enable=YES|NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO


原创文章,作者:megedugao,如若转载,请注明出处:http://www.178linux.com/51930

(0)
megedugaomegedugao
上一篇 2016-10-15
下一篇 2016-10-16

相关推荐

  • 制作kickstart文件和引导镜像

    kickstart制作: (1)通过手动编辑,莫个kickstat模板进行修改:如根目录下的anaconda-ks.cfg (2)通过图形界面制作kickstart文件,可以安装system-config-kickstart, 通过kickstart配置程序打开某个模板,如anaconda-ks.cfg,在图片界面下的修改, 基本配置:默认语音,键盘类型,时…

    2017-11-14
  • 配置HTTPS

    环境为CentOS 7.3、httpd2.4.6 一 搭建证书 CA 主机为192.168.29.3 client主机为 192.168.29.100 1 生成私钥 [root@centos7 ~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) Generating…

    2017-06-06
  • https搭建

    https             http over ssl = https 443/tcp                 ssl: v3           &nb…

    Linux干货 2016-06-28
  • 开始学习Linux的一些建议

    建议读者范围 有开发经验者。 科研人员(由其Numrical)。 动手能力强的。 只是好奇,对于Linux只是浅尝辄止的就不建议继续往下看了。 端正学习态度 Linux不等于骇客(or Cracker)。 当然众所周知很多“黑客工具”都是Linux平台上的,我帮助过很多Linux小白发现他们殊途同归都是朝着类似Aircrack-ng去的。 但他们不知道的是:…

    Linux干货 2015-02-26
  • Linux下计划任务神器-Crontab

    作为系统运维人员都清楚,在Linux下定义重复性的任务,我们一般会采用crontab来进行:crontab这个指令所设置的工作将会循环的一直进行下去!可循环的时间为分钟、小时、每日、每月、每周。 crontab计划任务: 1)常见用法:crontab命令的作用和用法如下:描述:为每个用户维护周期性的计划任务文件用法:crontab [-u 用户][-l|-r…

    Linux干货 2016-07-22
  • LVS:三种模式的原理、调度算法、及应用介绍

    LVS三种模式原理(nat/dr/tun) LVS/NAT:   如上图,客户通过virtual IP (虚拟服务的IP地址,公网地址),访问网络服务时,请求报文到达调度器,调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址VIP,改写成选定服务器的地址(RIP),报文的目标端口改写成选定服务器的相应端口,最后将修改…

    Linux干货 2016-10-30