马哥教育21期网络班—第13周课程+练习—-samba和vsftp-pam

  • 1、建立samba共享,共享目录为/data,要求:(描述完整的过程)

  • 1)共享名为shared,工作组为magedu;

  • 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;

  • 3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;

  • 4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;

  • 5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

安装Samba  
yum -y install samba
查看Samba配置文件
rpm -ql samba
查看Samba客户端
rpm -ql samba-client
增加组
groupadd develop
增加用户
useradd -s /sbin/nologin -G develop gentoo
echo "gentoo" | passwd --stdin gentoo
useradd -s /sbin/nologin -G develop centos
echo "centos" | passwd --stdin centos
useradd -s /sbin/nologin  ubuntu
echo "ubuntu" | passwd --stdin ubuntu
增加Samba用户和密码
smbpasswd -a centos
smbpasswd -a gentoo
smbpasswd -a ubuntu
创建共享目录,并附权限
mkdir /data
chmod g+w /data/ && chown :develop /data/
配置Samba
vim /etc/samba/smb.conf 
[global]
workgroup = magedu
server string = Samba Server Version %v
netbios name = MYSERVER
hosts allow = 192.168.159.0/24

security = user  用户工作模式
passdb backend = tdbsam
共享名,共享设置
[shared]     
comment = Just for test
path = /data
public = no
valid users = gentoo,centos,ubuntu,@develop
read list =  ubuntu
write list = @develop
writable = yes
printable = no
关闭防火墙和selinux
setenforce 0
service iptables stop
开启Samba服务
service smb start
service nmb start
smbclient //192.168.159.128/shared -U gentoo
Enter gentoo's password: 
Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-35.el6_8]
smb: \> mkdir gentoo
smb: \> ls
  .                                   D        0  Fri Jun 17 15:09:44 2016
  ..                                 DR        0  Fri Jun 17 14:45:45 2016
  gentoo                              D        0  Fri Jun 17 15:09:44 2016
51930 blocks of size 262144. 19439 blocks available
smb: \> exit
smbclient //192.168.159.128/shared -U centos
Enter centos's password: 
Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-35.el6_8]
smb: \> mkdir centos
smb: \> ls
  .                                   D        0  Fri Jun 17 15:10:11 2016
  ..                                 DR        0  Fri Jun 17 14:45:45 2016
  gentoo                              D        0  Fri Jun 17 15:09:44 2016
  centos                              D        0  Fri Jun 17 15:10:11 2016
51930 blocks of size 262144. 19439 blocks available
smb: \> exit
smbclient //192.168.159.128/shared -U ubuntu
Enter ubuntu's password: 
Domain=[MAGEDU] OS=[Unix] Server=[Samba 3.6.23-35.el6_8]
smb: \> mkdir ubuntu
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu
smb: \>
  • 2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)

  • 1)基于虚拟用户的访问形式;

  • 2)匿名用户只允许下载,不允许上传;

  • 3)禁锢所有的用户于其家目录当中;

  • 4)限制最大并发连接数为200:;

  • 5)匿名用户的最大传输速率512KB/s

  • 6)虚拟用户的账号存储在mysql数据库当中。

  • 7)数据库通过NFS进行共享。

1、设置数据库nfs共享---->MySQL提供数据文件目录
在服务器10.0.0.2安装nfs服务
设置nfs共享
service nfs start
mkdir -pv /mydata/data
将要共享的目录写到exports文件中 
vim /etc/exports
/mydata/data   10.0.0.2(rw) 
showmount -e 10.0.0.2---->查看NFS服务器端共享的文件系统
mount -t nfs  10.0.0.2:/mydata/data /mnt 
2、创建mysql用户,设置 /mydata/data 的所属主,所属组为mysql
useradd -r mysql 
chown -R mysql.mysql  /mydata/data
3、安装mysql和pam_mysql
yum -y install  mysql-server mysql-devel pam_mysql
修改mysql的配置文件,制定datadir的位置为/mydata/data
vim /etc/my.cnf
[mysqld]
datadir=/mydata/data
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/mydata/mysqld.pid
启动mysql
service mysqld start
4、创建虚拟用户账号
1、建立数据库和表并授权
mysql> create database vsftpd;
mysql> grant select on vsftpd.* to vsftpd@10.0.0.2 identified by 'www.magedu.com';
mysql> grant select on vsftpd.* to vsftpd@127.0.0.1 identified by 'www.magedu.com';
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、添加测试的虚拟用户

根据需要添加所需要的用户,需要说明的是,这里将其密码为了安全起见应该使用PASSWORD函数加密后存储。
mysql> insert into users(name,password) values('magedu1',password('magedu'));
mysql> insert into users(name,password) values('magedu2',password('magedu'));
三、配置vsftpd
1.建立pam认证所需文件
vi /etc/pam.d/vsftpd.mysql
添加如下两行
auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
修改ftp配置
/etc/vsftpd/vsftpd.conf
添加配置
guest_enable=YES
guest_username=vuser
修改配置
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
pam_service_name=vsftpd.mysql
max_clients=200
anon_max_rate=512

重启ftp 服务
service vsftpd restart
在10.0.0.2服务器上测试
[root@localhost vusers_config]# ftp 10.0.0.2
Connected to 10.0.0.2 (10.0.0.2).
220 (vsFTPd 2.2.2)
Name (10.0.0.2:root): magedu1
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,0,0,2,114,1).
150 Here comes the directory listing.
drwx------    2 500      500          4096 Sep 16 15:45 cd
226 Directory send OK.
ftp> mkdir ccd 
257 "/ccd" created
ftp> exit
221 Goodbye.

[root@localhost vusers_config]# ftp 10.0.0.2
Connected to 10.0.0.2 (10.0.0.2).
220 (vsFTPd 2.2.2)
Name (10.0.0.2:root): magedu2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir cd 
550 Permission denied.

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

(0)
N21_ DominicN21_ Dominic
上一篇 2016-10-24
下一篇 2016-10-24

相关推荐

  • Linux如何进行分区和目录管理

    第七周作业   1、创建一个10G分区,并格式为ext4文件系统: 1、要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包括acl; ~]# mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1 2、挂载至/data/mydata目录,要求挂载时禁止程序自动运行,县不更新…

    2017-09-18
  • 第二周博客作业

      '经过了两周的学习,对Linux有了更深的认识,学习到了很多的新知识,在此进行总结。一、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示。答:Linux常用的文件管理类命令主要有以下几个:  cp,mv,rm,mkdir,rmdir,install,touch;  cp命令:  作用是拷贝文件或文件夹,其用法为:  cp […

    Linux干货 2016-12-12
  • N26-第十二周

    1、请描述一次完整的http请求处理过程;        1、建立或处理链接:接收请求或拒绝请求        2、接收请求:接收来自于网络的请求报文中对某资源的一次请求的过程;接收请求的方式通常是并发访问响应模型        3、处理请…

    2017-05-14
  • 自制Linux

    1. 分区出来两个区 fdisk /dev/sdb     2. 创建文件系统   [root@localhost ~]# mkfs.ext4 /dev/sdb1  [root@localhost ~]# mkfs.ext4 /dev/sdb2 3.…

    Linux干货 2016-09-16
  • 文件处理命令作业题

    练习题    1.找出ifconfig命令结果中的本机的所有ipv4地址4    2.查出分区空间使用率的最大百分比值    3.查找用户UID最大值的用户名、UID及shell类型    4.查出/tmp的权限。以数字方式显示    5.统计当前链接本机的每…

    Linux干货 2016-08-08
  • rsync3.0 (初稿 逐步完善)

    实验环境为 centos 7.2 系统   CentOS Linux release 7.2.1511 (Core)   主机  ip               10.1.250.19 客…

    Linux干货 2016-06-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-24 23:11

    思路很清楚,排版也很好,请加油