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

相关推荐

  • shell脚本编程之一

    shell脚本编程之一 shell脚本基础 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 格式要求:首行shebang机制 #!/bin/bash #!/usr/bin/python #!/usr/bin/perl shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 常见简单的应用程序 处理文本或文件 创建shell脚本 第一步…

    Linux干货 2016-08-18
  • Linux文本搜索工具grep

    Linux文本搜索工具grep Linux文本搜索工具grep grep 基本正则表达式 egrep 扩展正则表达式 fgrep 简介 grep(全称Globally search a Regular Expression and Print,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,根据用户指定的“模式(pattern)”对目标文本进行匹…

    2016-04-05
  • 文本处理

    1 、查出分区空间使用率的最大百分比值   2、查出用户UID最大值的用户名、UID及shell类型   3、查出/tmp的权限,以数字方式显示   4、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 5、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式) 6、显示/etc/passwd文…

    Linux干货 2016-08-08
  • LNMP内网部署wiki

    需求:内部人员经常到查阅资料,考虑在内网搭建wiki站点。 实验拓扑: 实验环境:        Nginx,PHP:192.168.198.160,10.0.0.07        MySQL:10.0.0.8 软件包:  &n…

    Linux干货 2015-10-15
  • 打造自己小小的RPM包

    关于源码RPM包的安装于制作 什么是RPM与SRPM? 1     RPM: 1     SRPM: 2     SRPM的安装 2 一 .利用rpmbuild默认安装SRPM档案 2 二.配置路径与需要的软件功能模块 3  &n…

    Linux干货 2016-08-24
  • SElinux 练习

    练习 .1、安装httpd服务,改变网站的默认主目录为/website,添加SELinux文件标签规则,设置http_sys_content_t到/website及目录下所有文件,使网站可访问 mkdir    /website vim    /etc/httpd/conf/ht…

    Linux干货 2016-09-19

评论列表(1条)

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

    写的很详细,赞