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 20:47
下一篇 2017-11-21 08:59

相关推荐

  • Mariadb数据库复制系列(五):基于SSL的复制

       实验五:基于SSL的主从复制功能的实现 在mysql服务器之间复制数据,默认情况下都是基于明文的,在有些场景中,明文传输会造成严重的数据安全隐患,因此,需要对mysql服务器之间的复制时的传输进行加密,传输加密方式可以基于SSL的会话进行 1、实验环境 2、私有CA的搭建 3、在主节点node72上生成证书签署请求、发送到私有CA服务器 4、在从节点n…

    Linux干货 2016-11-24
  • linux基础命令1

    内容包含:文件管理、重定向和管道、用户组和权限管理、文本处理工具

    Linux干货 2017-11-19
  • N25期第八周作业

    1.请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别 主要功能: 网桥是一个局域网与另一个局域网之间建立连接的桥梁,属于数据链路层的一种设备。 集线器是可以将一些机器连接起来组成一个局域网的设备。 二层交换机是工作于OSI模型的第2层(数据链路层)的设备,作用和集线器类似。 三层交换机就是具有部分路由器功能的二层交换机。 路由器是互联…

    Linux干货 2017-03-08
  • 永远不要让自己停下

    曾几何时,我还是刚出象牙塔的小男孩。想想现在,经过4年的洗礼,我不再是小男孩了。可是,我却发现自己变得越来越懒,守着那丁点的知识。 我早已坐吃山空而不自知,早已落后于时代的趋势而不自知。时代需要一个勤奋而专注的我,需要一个不懈怠的我。 如果,我不继续前进,等待我的只有堕落。逆水行舟不进则退,不逼自己一把,永远不知道自己的潜力有多大。 我希望说,再见,懈怠而懒…

    Linux干货 2016-10-07
  • java基础与环境

    java 简述 java基础 jvm java环境搭建 简述 什么是java? java是一门面向对象的编程语言,具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点,特别是可移植性,java所有的代码都需要在一个特定的虚拟环境中实现,所以可移植性方面非常好,一次编译,永久使用。 java可以做到什么? Java可以编写桌面…

    2016-06-24
  • TCP 的那些事儿(上)

       TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另…

    Linux干货 2015-04-01

评论列表(1条)

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

    写的很详细,赞