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

相关推荐

  • 谈shell命令的神奇组合以及对脚本的影响

    shell命令是我们与机器交互的基本沟通翻译官。我们要告诉计算机的很多事情都由它来翻译,而shell的神奇之处就在于支持命令联合使用,现在我就来讲讲基本的命令组合引用。1.管道应用:命令 | 命令  ,前面的命令的结果可以直接作为后面命令的输出,省却了一个变量做存储。2.文本段落提取;我们可以用 组合命令 通常为 cat 某文件 | (head -…

    Linux干货 2017-04-02
  • linux再次入门

               时隔一年,重新拾起Linux,从头开始再学一遍            现在来总结一下曾经可能听说过但是我以前绝对不会的命令(尴尬脸) 克隆窗口:右键单击点克隆窗口(真是…

    2017-07-15
  • UEFI与GPT(7.3课上作业)

    一、UEFI:统一可扩展固件接口 1、什么是UEFI         统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)是一种PC系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。UEFI负责加电自…

    Linux干货 2016-07-12
  • net25-第17周作业

    1、结合图形描述LVS的工作原理; lvs-nat模型,相当于多目标的dnat,通过将请求报文中的目标地址和目标端口修改为调度出的rs的rip和port来实现转发,整个请求如下: cip -> vip -> vs(nat转换) -> rip  请求 rip -> dip(默认网关) -> vs(nat转换) ->…

    Linux干货 2017-05-15
  • 权限管理和字符匹配示例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 cp -r /etc/skel /home/tuser1 chmod -R 700 tuser1 2、编辑/etc/group文件,添加组hadoop hadoop:x:999 3、手动编辑/etc/passwd文件新增一行,…

    2017-12-25
  • ansible基础应用

    ansible基础 一、运维主要工作 ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansible特性 (1)模块化:调用特定的模块,完成特定任务; (2)基于python语言实现,由paramiko,PYYAML和JINJa2三个关键模块组成 (3)部署简单:agentless…

    Linux干货 2017-01-04

评论列表(1条)

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

    写的很详细,赞