N27_第十三周作业

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共享服务仅允许来自192.168.68.0/16网络的主机访问;

yum -y install samba samba-client#安装samba

vim /etc/samba/smb.conf [shared]

workgroup = magedu

hosts allow = 192.168.68.0/24

comment = shared

path = /data

write list = +develop

writable = yes

public =yes

[root@localhost ~]# groupadd develop

[root@localhost ~]# useradd ubuntu

[root@localhost ~]# useradd gentoo -G develop

[root@localhost ~]# useradd centos -G develop

[root@localhost ~]# smbpasswd -a gentoo

[root@localhost ~]# smbpasswd -a ubuntu

[root@localhost ~]# smbpasswd -a centos

[root@localhost ~]# pdbedit -L

gentoo:1001:

centos:1002:

ubuntu:1000:

 

[root@localhost ~]# setfacl -m g:develop:rwx /data/ #修改权限使得develop组的用户能有修改权限

[root@localhost ~]# getfacl /data/

getfacl: Removing leading ‘/’ from absolute path names

# file: data/

# owner: root

# group: root

user::rwx

group::r-x

group:develop:rwx

mask::rwx

other::r-x

 

 

测试

[root@localhost ~]# smbclient //192.168.68.150/shared -U gentoo

Enter SAMBA\gentoo’s password:

Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]

smb: \> ls

.                                   D        0  Sun Nov 19 20:23:22 2017

..                                 DR        0  Sun Nov 19 20:23:22 2017

 

17811456 blocks of size 1024. 16273628 blocks available

smb: \> lcd /etc

smb: \> put fstab

putting file fstab as \fstab (34.9 kb/s) (average 34.9 kb/s)

smb: \> exit

 

 

在samba server端

[root@localhost ~]# cd /data/

[root@localhost data]# ls

fstab

 

同样的在windows端输入\\smaba_server的ip\共享的目录别名

222

 

2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:描述完整过程

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

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

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

4)限制最大并发连接数200

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

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

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

 

虚拟用户登录:FTP的专有用户有两种方式实现虚拟用户,本地数据文件和数据库服务器

使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大曾强了系统的安全

 

[root@localhost centos]# yum -y install openssl-devel mariadb-server pam-devel

源码安装PAM-MYSQL

[root@localhost ~]# wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz

[root@localhost pam_mysql-0.7RC1]# ./configure –with-mysql=/usr/local/ –with-openssl –with-pam=/usr –with-pam-mods-dir=/usr/lib64/security

报错:configure: error: Cannot locate mysql client library. Please check your mysql installation.

[root@localhost pam_mysql-0.7RC1]# ln -s /usr/local/mysql /usr/lib64/mysql/

[root@localhost pam_mysql-0.7RC1]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

 

[root@localhost pam_mysql-0.7RC1]# make && make install

[root@localhost mysql]# yum -y install vsftpd #安装vsftpd

 

将虚拟用户的账号存在数据库中:

[root@localhost mysql]# systemctl start mariadb

MariaDB [(none)]> create database vsftpd;

MariaDB [(none)]> use vsftpd;

Database changed

MariaDB [vsftpd]> create table users (

-> id int auto_increment not null primary key,

-> name char(30) not null,

-> password char(48) binary not null );

MariaDB [vsftpd]> desc users;

+———-+———-+——+—–+———+—————-+

| Field    | Type     | Null | Key | Default | Extra          |

+———-+———-+——+—–+———+—————-+

| id       | int(11)  | NO   | PRI | NULL    | auto_increment |

| name     | char(30) | NO   |     | NULL    |                |

| password | char(48) | NO   |     | NULL    |                |

+———-+———-+——+—–+———+—————-+

3 rows in set (0.00 sec)

MariaDB [vsftpd]> insert into users(name,password) values (‘jerry’,password(‘123456’));

MariaDB [vsftpd]> flush privileges;

MariaDB [vsftpd]> grant select on vsftpd.* to ‘vsftpd’@’192.%.%.%’ identified by ‘magedu’;

 

 

编辑pam文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=vsftpd passwd=mageedu host=192.168.68.150 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so user=vsftpd passwd=mageedu host=192.168.68.150 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

 

 

创建系统用户

[root@localhost ~]# useradd -s /sbin/nologin -d /ftproot/ vuser

[root@localhost ~]# chown vuser:vuser /ftproot/

[root@localhost ~]# ll -d /ftproot/

drwxr-xr-x. 2 vuser vuser 6 Nov 19 22:01 /ftproot/

 

配置/etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.mysql

anon_upload_enable=NO #不允许匿名用户上传文件

anonymous_enable=YES#允许匿名用户访问

chroot_local_user=YES #禁锢所有用户于其家目录当中

max_clients=200#限制最大并发连接数200

anon_max_rate=512000#匿名用户的最大传输速率512KB

guest_enable=YES #允许来宾账号登录

guest_username=vuser#指定来宾账户名

 

然后重启vsftpd

systemctl restart vsftpd

 

 

 

 

测试:

[root@localhost ~]# ftp 192.168.68.150

发现报错:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

网上解决方法:在vsftpd.conf中添加allow_writeable_chroot=YES

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

 

[root@localhost ~]# ftp 192.168.68.150

Connected to 192.168.68.150 (192.168.68.150).

220 (vsFTPd 3.0.2)

Name (192.168.68.150:root): tom

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> lcd /root

Local directory now /root

ftp> put fstab

local: fstab remote: fstab

227 Entering Passive Mode (192,168,68,150,166,213).

550 Permission denied.   #不能上传

ftp> get fstab

local: fstab remote: fstab

227 Entering Passive Mode (192,168,68,150,224,175).

150 Opening BINARY mode data connection for fstab (465 bytes).

226 Transfer complete.

465 bytes received in 0.000479 secs (970.77 Kbytes/sec)  #能够下载

ftp> exit

221 Goodbye.

 

将/ftproot基于nfs共享

[root@localhost centos]# yum -y install nfs-utils

[root@localhost centos]# mkdir /ftproot

[root@localhost centos]# vim /etc/exports

/ftproot 192.168.0.0/16(rw,sync)

Ro 该主机对该共享目录有只读权限

Rw 该主机对该共享目录有读写权限

Root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
No_root_squash 客户机用root访问该共享文件夹时,不映射root用户
All_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
Anonuid 将客户机上的用户映射成指定的本地用户ID的用户
Anongid 将客户机上的用户映射成属于指定的本地用户组ID
Sync 资料同步写入到内存与硬盘中
Async 资料会先暂存于内存中,而非直接写入硬盘
Insecure 允许从这台机器过来的非授权访问

[root@localhost centos]# exportfs -r#使其生效

[root@localhost pam.d]# systemctl start nfs

检查:[root@localhost ~]# showmount -e 192.168.68.150

Export list for 192.168.68.150:

/ftproot 192.168.0.0/16

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88764

(0)
N27_flypigN27_flypig
上一篇 2017-11-20
下一篇 2017-11-21

相关推荐

  • 初识MySQL(一)

        数据库(DATABASES)      数据库是一个单位或是一个应用领域的通用数据处理系统,存储有企业和事业部门、团体和个人的有关数据的集合,该集合中数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不…

    Linux干货 2015-08-24
  • N22-第6周作业-冥界之王

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    [root@CentOS6 /]# cp /etc/rc.d/rc.sysinit /tmp…

    Linux干货 2016-09-19
  • PXE原理详解及实践

    一、PXE简介 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由支持通过网络启动操作系统,再启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol…

    Linux干货 2017-01-10
  • N26-第一周作业

    1、计算机主要由硬件部分和软件部分组成。     硬件部分:         (1)、CPU:包括运算器、控制器、寄存器、缓存。CPU的核心部件是运算器和控制器,它的功能主要是解释计算机指令以及处理计算机软件中的数据。         (2…

    Linux干货 2016-12-27
  • 第三周作业

    博客具体内容请移步博客园: http://www.cnblogs.com/ITOps/p/6204549.html

    Linux干货 2016-12-20
  • 磁盘管理

    linux的哲学思想:一切皆文件; 设备类型: 块(block):随机访问,交换数据单位是“块”; 字符(character):线性访问,数据交换单位是“字符”; 设备文件:FHS /dev     设备文件:关联至设备驱动程序;设备的访问入口;       &nbsp…

    Linux干货 2016-08-30

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-08 16:28

    写的很详细,赞