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.www58058.com/88764

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

相關推薦

  • Linux終端類型

    Linux終端類型 關鍵字:linux終端,串行終端ttySn;偽終端pty;控制終端tty;控制臺終端console 要想與Linux打交道,就必須學會使用Linux終端。所謂Linux終端,其實也就是一種控制臺,一種字符設備,通常用tty標識,它是用戶和Linux內核交互的平臺,用戶能在平臺上通過各種指令操作Linux。終端的特殊設備文件一般分為以下幾種…

    Linux干貨 2016-10-19
  • Linux之iptables原理詳解

    目錄: 一、netfilter與iptables 二、filter、nat、mangle等規則表 三、INPUT、FORWARD等規則鏈和規則 四、Linux數據包路由原理 五、iptables編寫規則  一、netfilter與iptables (1)Netfilter是由Rusty Russell提出的Linux 2.4內核防火墻框架,該框架既…

    2017-08-04
  • Linux第一周學習心得

                           LINUX入門學習心得 Shell基本命令 ### shell可執行命令分類 ### 內部命令:由shell自帶得,而且通過某命令形式提供 help 內部命令列表 enble cmd 啟用內部命…

    Linux干貨 2017-07-15
  • 文本三劍客之sed

    文本處理三劍客之sed sed 本身也是一個管線命令,是一個(流|行)編輯器! 而且 sed 還可以將數據進行取代、刪除、新增、擷取特定行等等的功能。工作模式是從源文件中一次讀取一行,存儲到sed自己的內存中進行處理,如果模式被匹配到就可以編輯并且輸出到標準輸出,如果沒有被匹配到則直接輸出到標準輸出。     sed …

    Linux干貨 2016-08-10
  • shell編程的常見實例

    1. 寫一個腳本/root/bin/argsnum.sh 用戶輸入一個文件路徑并查找文件中空白行的個數 ,如果用戶沒有輸入路徑則自動退出  實驗結果如下: 如果不輸入任何路徑程序會自動退出:實驗結果如下: 用其他方法驗證是不是有兩行空行: (個人總結): 1.   read 命令,如果用 -p 來做提示信息,則不支持\n換行,這…

    Linux干貨 2016-08-12
  • Linux http服務

                               Linux http服務   網絡服務通信基礎:   1、端口號就是進程標識,每個用戶最多只能打開1024個進程。   2、MAC地址僅…

    系統運維 2016-11-18

評論列表(1條)

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

    寫的很詳細,贊

欧美性久久久久