馬哥教育網絡班22期-第13周博客作業

第13周博客作業

1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)

  1)共享名為shared,工作組為zhucke;

  2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;

  3)添加samba用戶gentoo,centos和ubuntu,密碼均為“zhucke”;

  4)此samba共享shared僅允許develop組具有寫權限,其他用戶只能以只讀方式訪問;

  5)此samba共享服務僅允許來自于10.0.0.0/16網絡的主機訪問;

實驗環境準備:

序號 角色 系統版本 IP地址
1 Server端 CentOS-7.1 192.168.5.171
2 client端(Linux) CentOS-7.1 192.168.5.172
3 client端(Windows) Windows 10 192.168.5.9

(1)安裝samba程序包并啟動

[root@CentOS7-171 ~]# yum install -y samba   #安裝samba包
[root@CentOS7-171 ~]# systemctl start smb.service   #啟動smb
[root@CentOS7-171 ~]# systemctl start nmb.service   #啟動nmb
[root@CentOS7-171 ~]# systemctl enable smb.service   #開機自啟動
[root@CentOS7-171 ~]# systemctl enable nmb.service   #開機自啟動

(2)創建需要的用戶及密碼

[root@CentOS7-171 ~]# groupadd develop   #創建develop組
[root@CentOS7-171 ~]# useradd -G develop centos   #添加centos用戶的附加組為develop組
[root@CentOS7-171 ~]# useradd -G develop gentoo   #添加gentoo用戶的附加組為develop組
[root@CentOS7-171 ~]# useradd ubuntu   #創建utuntu用戶
[root@CentOS7-171 ~]# echo "gentoo" | passwd --stdin gentoo
[root@CentOS7-171 ~]# echo "centos" | passwd --stdin centos
[root@CentOS7-171 ~]# echo "ubuntu" | passwd --stdin ubuntu

(3)為samba創建用戶及密碼

[root@CentOS7-171 ~]# smbpasswd -a centos
[root@CentOS7-171 ~]# smbpasswd -a gentoo
[root@CentOS7-171 ~]# smbpasswd -a ubuntu

(4)創建共享目錄并設定權限

[root@CentOS7-171 ~]# mkdir /data
[root@CentOS7-171 ~]# ll -d /data/
drwxr-xr-x 2 root root 6 Dec 20 11:15 /data/
[root@CentOS7-171 ~]# chmod g+w /data
[root@CentOS7-171 ~]# chown :develop /data
[root@CentOS7-171 ~]# ll -dl /data
drwxrwxr-x 2 root develop 6 Dec 20 11:15 /data

(5)修改配置文件/etc/samba/smb.conf

[root@CentOS7-171 ~]# cp /etc/samba/smb.conf{,.bak}
[root@CentOS7-171 ~]# cd /etc/samba/
[root@CentOS7-171 samba]# vim smb.conf
[global]
workgroup = zhucke
server string = Samba Server Version %v
hosts allow = 192.168.5.0/24
[shared]
comment = data
path = /data
read only = yes
write list = @develop
browseable = yes
[root@CentOS7-171 samba]# systemctl reload smb.service

(6)在192.168.5.172上登錄共享測試

[root@CentOS7-172 ~]# smbclient //192.168.5.171/shared -U centos  #用centos用戶登錄,測試是否可讀可寫
Enter centos's password: 
Domain=[ZHUCKE] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: \> ls
  .                                   D        0  Tue Dec 20 11:15:46 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
52403200 blocks of size 1024. 48251556 blocks available
smb: \> mkdir centos   #創建目錄
smb: \> ls
  .                                   D        0  Tue Dec 20 15:34:21 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
  centos                              D        0  Tue Dec 20 15:34:21 2016   #創建成功
52403200 blocks of size 1024. 48251516 blocks available
smb: \> exit
[root@CentOS7-172 ~]# smbclient //192.168.5.171/shared -U gentoo   #用戶gentoo用戶測試,是否可讀可寫
Enter gentoo's password: 
Domain=[ZHUCKE] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: \> ls
  .                                   D        0  Tue Dec 20 15:34:21 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
  centos                              D        0  Tue Dec 20 15:34:21 2016
52403200 blocks of size 1024. 48251516 blocks available
smb: \> mkdir gentoo  #創建目錄
smb: \> ls
  .                                   D        0  Tue Dec 20 15:34:43 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
  centos                              D        0  Tue Dec 20 15:34:21 2016
  gentoo                              D        0  Tue Dec 20 15:34:43 2016   #創建成功
52403200 blocks of size 1024. 48251516 blocks available
smb: \> exit
 
[root@CentOS7-172 ~]# smbclient //192.168.5.171/shared -U ubuntu   #用ubuntu用戶登錄,測試
Enter ubuntu's password: 
Domain=[ZHUCKE] OS=[Windows 6.1] Server=[Samba 4.2.3]
smb: \> ls
  .                                   D        0  Tue Dec 20 15:34:43 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
  centos                              D        0  Tue Dec 20 15:34:21 2016
  gentoo                              D        0  Tue Dec 20 15:34:43 2016
52403200 blocks of size 1024. 48251516 blocks available
smb: \> mkdir ubuntu   #創建目錄
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ubuntu   #提示不能創建
smb: \> ls
  .                                   D        0  Tue Dec 20 15:34:43 2016
  ..                                 DR        0  Tue Dec 20 11:15:46 2016
  centos                              D        0  Tue Dec 20 15:34:21 2016
  gentoo                              D        0  Tue Dec 20 15:34:43 2016
52403200 blocks of size 1024. 48251548 blocks available
smb: \> exit

2、搭建一套文件vsftp文件共享服務,共享目錄為/ftproot,要求:(描述完整的過程)

  1)基于虛擬用戶的訪問形式;

  2)匿名用戶只允許下載,不允許上傳;

  3)禁錮所有的用戶于其家目錄當中;

  4)限制最大并發連接數為200:;

  5)匿名用戶的最大傳輸速率512KB/s

  6)虛擬用戶的賬號存儲在mysql數據庫當中。

  7)數據庫通過NFS進行共享。

實驗環境準備:

序號 角色 系統版本 IP地址
1 nfs服務器 CentOS-7.1 192.168.5.171
2 vsftp服務器 CentOS-7.1 192.168.5.172
3 mariadb服務器 CentOS-7.1 192.168.5.172

(1)下載epel源

[root@CentOS7.1-172 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

(2)安裝所需要的程序包

yum -y groupinstall "Development Tools" "Server Platform Development"
yum -y install vsftpd pam-devel mariadb-server mariadb-devel openssl-devel
systemctl start mariadb.service   #啟動mariadb服務
systemctl enable mariadb.service   #設置開機自啟動mariadb

一、通過NFS服務器共享數據庫

  1、在192.168.5.171上配置nfs服務,設置共享目錄為/data;

[root@CentOS7.1-171 ~]# mkdir /data
[root@CentOS7.1-171 ~]# groupadd -g 27 mysql
[root@CentOS7.1-171 ~]# useradd -g mysql -u 27 -s /sbin/nologin -M mysql
[root@CentOS7.1-171 ~]# chown -R mysql.mysql /data/
[root@CentOS7.1-171 ~]# vim /etc/exports
/data 192.168.5.0/24(rw,no_root_squash)
[root@CentOS7.1-171 ~]# systemctl start nfs.service

  2、在192.168.5.172服務器上安裝mariadb,創建目錄/mydatae用來掛載nfs共享目錄

[root@CentOS7.1-172 html]# mkdir /mydata
[root@CentOS7.1-172 html]# chown -R mysql.mysql /mydata/
[root@CentOS7.1-172 html]# mount -t nfs 192.168.5.171:/data /mydata/
[root@CentOS7.1-172 html]# df -h /mydata
Filesystem           Size  Used Avail Use% Mounted on
192.168.5.171:/data   50G  4.0G   47G   8% /mydata
[root@CentOS7.1-172 ~]# vim /etc/fstab  #設置開機自動掛載
192.168.5.171:/data                       /mydata                 nfs     defaults        0 0
[root@CentOS7.1-172 html]# cp /etc/my.cnf{,.bak}
[root@CentOS7.1-172 html]# vim /etc/my.cnf
datadir=/var/lib/mysql修改為datadir=/mydata
[root@CentOS7.1-172 html]# systemctl restart mariadb.service

  3、在192.168.5.172上創建數據庫及表

[root@CentOS7.1-172 html]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE vsftpd;   #創建vsftpd數據庫
Query OK, 1 row affected (0.02 sec)
MariaDB [(none)]> use vsftpd;   #進入vsftpd數據庫
Database changed
MariaDB [vsftpd]> CREATE TABLE users (                     #在vsftpd數據庫中創建表
    -> id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
    -> name char(30) NOT NULL,
    -> password char(48) binary NOT NULL );
Query OK, 0 rows affected (0.02 sec)
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.01 sec)
MariaDB [vsftpd]> INSERT INTO users(name,password) VALUES ('tom',password('zhucke'));
Query OK, 1 row affected (0.01 sec)
MariaDB [vsftpd]> INSERT INTO users(name,password) VALUES ('jerry',password('zhucke.com'));
Query OK, 1 row affected (0.00 sec)
MariaDB [vsftpd]> GRANT select ON vsftpd.* TO vsftpd@localhost IDENTIFIED BY 'zhucke';
Query OK, 0 rows affected (0.06 sec)
MariaDB [vsftpd]> GRANT select ON vsftpd.* TO vsftpd@127.0.0.1 IDENTIFIED BY 'zhucke.com';
MariaDB [vsftpd]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

  4、編譯安裝pam_mysql包

[root@CentOS7.1-172 tools]# tar xf pam_mysql-0.7RC1.tar.gz
[root@CentOS7.1-172 tools]# cd pam_mysql-0.7RC1/
[root@CentOS7.1-172 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
[root@CentOS7.1-172 pam_mysql-0.7RC1]# make && make install
[root@CentOS7.1-172 pam_mysql-0.7RC1]# ls /lib64/security/pam_mysql.so 
/lib64/security/pam_mysql.so

  5、建立pam認證需要的文件

[root@CentOS7.1-172 pam_mysql-0.7RC1]# cd /etc/pam.d/
[root@CentOS7.1-172 pam.d]# vim vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=zhucke host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=zhucke host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

  6、建立虛擬用戶映射的系統用戶及對應目錄

[root@CentOS7.1-172 pam.d]# useradd -s /sbin/nologin -d /ftproot/ vuser
[root@CentOS7.1-172 pam.d]# ll -d /ftproot/
drwxr-xr-x 3 vuser vuser 74 Dec 14 21:05 /ftproot/
[root@CentOS7.1-172 pam.d]# chmod go+rx /ftproot/
[root@CentOS7.1-172 pam.d]# ll -d /ftproot/
drwxr-xr-x 3 vuser vuser 74 Dec 14 21:05 /ftproot/
[root@CentOS7.1-172 pam.d]# mkdir /ftproot/{pub,upload}

  7、修改配置文件/etc/vsftpd/vsftpd.conf

[root@CentOS7.1-172 pam.d]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@CentOS7.1-172 pam.d]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO  #匿名用戶禁止上傳
anon_mkdir_write_enable=NO  #匿名用戶禁止創建目錄
max_clients=200   #最大并發數
anon_max_rate=512   #匿名用戶最大傳輸速率
chroot_local_user=YES   #將用戶禁錮在自己的家目錄中
添加以下選項
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.mysql  #指明使用/etc/pam.d/vsftpd.mysql來認證 
user_config_dir=/etc/vsftpd/vusers.conf.d/   #指明虛擬用戶的配置文件
[root@CentOS7.1-172 pam.d]# cd /etc/vsftpd/
[root@CentOS7.1-172 vsftpd]# mkdir vusers.conf.d
[root@CentOS7.1-172 vsftpd]# vim tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@CentOS7.1-172 vsftpd]# vim jerry
anon_upload_enable=NO
[root@CentOS7.1-172 vsftpd]# systemctl restart vsftpd.service

   8、測試

[root@CentOS7.1-171 ~]# ftp 192.168.5.172
Connected to 192.168.5.172 (192.168.5.172).
220 (vsFTPd 3.0.2)
Name (192.168.5.172:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> cd /etc
550 Failed to change directory.
ftp> ls
227 Entering Passive Mode (192,168,5,172,67,115).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Dec 14 15:08 pub
drwxr-xr-x    2 0        0               6 Dec 14 15:08 upload
226 Directory send OK.

原創文章,作者:zhuckee,如若轉載,請注明出處:http://www.www58058.com/64288

(0)
zhuckeezhuckee
上一篇 2016-12-26
下一篇 2016-12-26

相關推薦

  • 搭建簡單的ftp和http

    搭建簡單的ftp和http 我們主要嘗試光盤和編譯兩種方式安裝 ftp 首先我們先安裝ftp ftp可以用來做文件傳輸,也可以搭建ftp作為我我們的網絡yum源 首先我們要先把鏡像連接到我們的Linux中 進入/etc/yum.repos.d/創建一個.repo結尾的文件,在里面配置自己的yum源 [base] baseurl=file:///misc/cd…

    2017-06-15
  • linux文件系統分類

    1、linux文件系統分配策略: 塊分配(blockallocation)和擴展分配(extentallocation): 塊分配:磁盤上的文件塊根據需要分配給文件,避免了存儲空間的浪費。但當文件擴充時,會造成文件中文件塊的不連續,從而導致過多的磁盤尋道時間。 每一次文件擴展時,塊分配算法就需要寫入文件塊的結構信息,也就是meta-dada。meta-dat…

    Linux干貨 2017-05-02
  • ?Linux 硬連接與軟連接的區別

        Linux 硬連接與軟連接的區別                        &…

    Linux干貨 2016-10-25
  • TCP連接的狀態詳解以及故障排查

    我們通過了解TCP各個狀態,可以排除和定位網絡或系統故障時大有幫助。(總結網絡上的內容) 1、TCP狀態 linux查看tcp的狀態命令: 1)、netstat -nat  查看TCP各個狀態的數量 2)、lsof  -i:port  可以檢測到打開套接字的狀況 3)、 &nbs…

    Linux干貨 2015-04-03
  • 第十六周

    1、源碼編譯安裝LNMP架構環境;  安裝必要的包組和依賴的包 yum groupinstall “Development Tools” “Development Libraries”  yum install wget openssl-devel ncurses-devel cmake p…

    Linux干貨 2017-08-15
  • linux文件查找工具 — find

    簡述:   linux中find命令是一種強大的實時查找工具,它通過用戶給出的路徑,在該路徑下的文件系統中進行文件查找。因此在遍歷一個較大的文件系統時會比較花費時間,而且find命令占用資源也是比較大的,所以它的工作特點是,查找的速度略慢,但是可以實現精確查找和實時查找。由于用戶權限的問題,可能只搜索用戶具備讀取和執行權限的目錄。由于fi…

    Linux干貨 2016-08-18

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-01-04 16:10

    寫的很好,可以作為展示作業來展示了,繼續加油

欧美性久久久久