馬哥教育網絡班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 10:32
下一篇 2016-12-26 10:58

相關推薦

  • 變量

    變量     在shell腳本中,單獨的字符或者命令只能引用一次,對于變量,我們可以多次引用,且對變量的賦值修改方便。對于一條很長的命令或者頻繁使用的路徑等,我們可以賦值給一個變量,比如獲得系統中所有用戶的uid,要輸入很長的一段命令,我們如果每次使用都輸入命令是件很麻煩的事情,如果賦值變量,那么就會很方便。設置變量userui…

    Linux干貨 2017-08-06
  • 姍姍來遲的第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@www /]# cp -r /etc/skel /home/tuser1 &&&nbsp…

    Linux干貨 2016-11-30
  • openssl關于CA證書的創建

    1、用openssl實現證書申請 先在/etc/pki/CA/目錄下創建一個index.txt的文件,作為ca證書的數據庫 在相同目錄下創建一個serial的序列號文件,并寫入01 生成ca的簽名證書用到的私鑰文件 注意:私鑰的權限時600,文件名必須是cakey.pem 生成自簽證書 這樣私有CA建立完成 申請認證: 在申請的機器上生成私鑰 生成申請文件 …

    Linux干貨 2016-09-23
  • 作業練習題匯總

    需要用到的命令補充  文件通配符                                            …

    2017-07-22
  • 第八周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;     在線的主機使用綠色顯示;     不在線的主使用紅色顯示; #!/bin/bash for i in {1..254};do if ping -c 1 -w 1 192.16…

    2017-07-03
  • N22-第五周作業

    1、顯示當前系統上root、fedora或user1用戶的默認shell;  egrep "^(root|fedora|user1)" /etc/passwd|awk -F: '{printf "%-15s:%-s\n",$1,$7}' 2…

    Linux干貨 2016-09-15

評論列表(1條)

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

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

欧美性久久久久