第十八周

1、实现基于MYSQL验证的vsftpd虚拟用户访问

node-2:FTP服务器

node-1:数据库服务器

需要的软件包:mariadb,vsftp,pam_mysql

在node-1上面安装mariadb数据库:

    yum –y install mariadb-server

启动服务,设为开机启动:

     systemctl start mariadb.service

    systemctl enable mariadb

在node-2上面安装vsftpd,pam_mysql

安装相应开发包组

yum -y groupinstall "Development Tools"

按安装连接数据库软件,vsftpd服务

yum -y install mariadb-devel pam-devel vsftpd

下载pam_mysql-0.7RC1.tar.gz

解压pam_mysql

tar xvf pam_mysql-0.7RC1.tar.gz

开始编译安装pam-mysql

    cd pam_mysql-0.7RC1/

    ./configure --with-pam-mods-dir=/lib64/security 

    make

    make install

在数据库服务器上创建虚拟用户账号

创建vsftp相关数据表:

在node-1上测试数据库连接

创建虚拟用户账号:

在FTP服务器上配置vsftpd服务:

vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=vsftpd passwd=vsftp host=192.168.10.3 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so user=vsftpd passwd=vsftp host=192.168.10.3 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

建立虚拟用户映射的系统用户及对应的目录

useradd -s /sbin/nologin -d /var/ftproot vuser

chmod 555 /var/ftproot                                         centos7 需除去ftp根目录的写权限

mkdir /var/ftproot/{upload,pub}

setfacl –m u:vuser:rwx /var/ftproot/upload

确保/etc/vsftp/vsftpd.conf中已经启用了以下选项

anonymous_enable=YES

添加下面两项

guest_enable=YES

guest_username=vuser

修改下面一项,原系统用户无法登录

pam_service_name=vsftpd.mysql

启动vsftpd服务:

[root@node-1 ftproot]# systemctl start vsftpd

[root@node-1 ftproot]# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

在FTP服务器上配置虚拟用户具有不同的访问权限

配置vsftpd为虚拟用户使用配置文件目录

vim /etc/vsftpd/vsftpd.conf

添加如下选项

user_config_dir=/etc/vsftpd/vusers_config

创建所需要目录,并为虚拟用户提供配置文件

mkdir /etc/vsftpd/vusers_config/

cd /etc/vsftpd/vusers_config/

touch test linux

配置虚拟用户的访问权限

vim /etc/vsftpd/vusers_config/test

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/ftproot                         登录目录改变至指定的目录

使用node-3测试

2、通过NFS实现服务器/www共享访问。

两台centos7主机:

nfs服务器:192.168.10.3

客户端:192.168.10.4

服务器端安装nfs软件:

[root@nfs-server ~]# yum install -y nfs-utils

在NFS 服务器上建立用于NFS 文件共享的目录,配置足够权限保证其他人能正常使用:

[root@nfs-server ~]# mkdir /www

[root@nfs-server ~]# chmod 777 /www

[root@nfs-server ~]# ll -d /www

drwxrwxrwx 2 root root 6 Apr 27 16:09 /www

[root@nfs-server ~]# echo "This is test." >/www/test

[root@nfs-server ~]# cat /www/test

This is test.

修改NFS 服务程序的配置文件,默认配置文件为/etc/exports,该文件内容为空

[root@nfs-server ~]# vim /etc/exports

/www 192.168.10.*(rw,sync,root_squash)

注意:IP和后面的权限中间没有空格

参数说明:

ro: 只读

rw: 读写

root_squash: 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的匿名用户

no_root_squash: 当NFS 客户端以root 管理员访问时,映射为NFS 服务器的root 管理员

all_squash: 无论NFS 客户端使用什么账户访问,均映射为NFS 服务器的匿名用户

sync: 同时将数据写入到内存与硬盘中,保证不丢失数据

async优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

启动NFS 服务,还需要顺带重启rpcbind 服务程序

[root@nfs-server ~]# systemctl start nfs-server

[root@nfs-server ~]# systemctl restart rpcbind

客户端查看nfs服务器共享目录:

[root@node-2 ~]# showmount -e 192.168.10.3

Export list for 192.168.10.3:

/www 192.168.10.*

客户端挂载nfs共享目录:

[root@node-2 ~]# mount -t nfs 192.168.10.3:/www /mnt

[root@node-2 ~]# df

Filesystem        1K-blocks    Used Available Use% Mounted on

devtmpfs            229048      0    229048  0% /dev

tmpfs                239832      0    239832  0% /dev/shm

tmpfs                239832    5672    234160  3% /run

tmpfs                239832      0    239832  0% /sys/fs/cgroup

/dev/sda5          52403200 1386476  51016724  3% /

/dev/sda2          41922560  32992  41889568  1% /data

/dev/sda1          1038336  144384    893952  14% /boot

tmpfs                47968      0    47968  0% /run/user/0

192.168.10.3:/www  52403200 1386432  51016768  3% /mnt

客户端验证:

[root@node-2 mnt]# touch aaa.txt

[root@node-2 mnt]# ls

aaa.txt  test


3、配置samba共享,实现/www目录共享

服务器端安装samba服务:

    [root@samba ~]# yum install -y samba

创建用于访问共享资源的账户信息,Samba 服务程序的数据库要求账户必须在当前系统中已经存在。

[root@samba ~]# useradd test

[root@samba ~]# id test

uid=1001(test) gid=1001(test) groups=1001(test)

[root@samba ~]# pdbedit -a -u test

new password:

retype new password:

创建用于共享资源的文件目录

[root@samba ~]# mkdir /www

[root@samba ~]# chown -R test.test /www

[root@samba ~]# ll -d /www

drwxr-xr-x 2 test test 6 Apr 27 17:12 /www

在Samba 服务程序的主配置文件中写入共享信息

[data]

comment = Test Dir

path = /www

public = no

writable = yes

valid users=test

启动samba服务:

[root@samba ~]# systemctl start smb nmb

客户端安装:cifs-utils

[root@node-2 ~]# yum -y install cifs-utils

创建挂载目录

[root@node-2 ~]# mkdir /mnt/test

挂载samba共享目录:

[root@node-2 ~]# mount -o username=test //192.168.10.3/data /mnt/test/

Password for test@//192.168.10.3/data:  ******

[root@node-2 ~]# df

Filesystem          1K-blocks    Used Available Use% Mounted on

devtmpfs              229048      0    229048  0% /dev

tmpfs                  239832      0    239832  0% /dev/shm

tmpfs                  239832    5648    234184  3% /run

tmpfs                  239832      0    239832  0% /sys/fs/cgroup

/dev/sda5            52403200 1407808  50995392  3% /

/dev/sda2            41922560  32992  41889568  1% /data

/dev/sda1            1038336  144384    893952  14% /boot

tmpfs                  47968      0    47968  0% /run/user/0

//192.168.10.3/data  52403200 1413892  50989308  3% /mnt/test

[root@node-2 ~]# cd /mnt/test/

[root@node-2 test]# ls

[root@node-2 test]# touch a.txt

[root@node-2 test]# ls

a.txt

4、使用rsync+inotify实现/www目录实时同步

两台centos7主机:

node-1:服务器

node-2:客户端

服务器端安装软件:rsync+inotify

  [root@node-1 ~]# yum install inotify-tools rsync

配置 rsync 服务器端的配置文件

uid = root

gid = root

use chroot = no

max connections = 0

ignore errors

exclude = lost+found/

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

reverse lookup = no

hosts allow = 192.168.10.0/24

[backup]

path = /www/

comment = backup

read only = no

auth users = rsyncuser

secrets file = /etc/rsync.pass

在服务器端生成验证文件

[root@node-1 ~]# echo "rsyncuser:123456" > /etc/rsync.pass

[root@node-1 ~]# chmod 600 /etc/rsync.pass

启动rsyncd服务:

[root@node-1 ~]# systemctl start rsyncd

客户端配置密码文件

[root@node-2 ~]# echo "123456" > /etc/rsync.pass

[root@node-2 ~]# chmod 600 /etc/rsync.pass

创建需要备份的目录:

[root@node-2 www]# mkdir /www

[root@node-2 www]# touch test.txt

[root@node-2 www]# rsync -avz --password-file=/etc/rsync.pass /www/ rsyncuser@192.168.10.3::backup

sending incremental file list

./

test.txt

sent 106 bytes  received 38 bytes  288.00 bytes/sec

total size is 0  speedup is 0.00

服务器端验证:

[root@node-1 ~]# cd /data

[root@node-1 data]# ls

test.txt

客户端创建inotify_rsync.sh脚本

#!/bin/bash

SRC='/www/'

DEST='rsyncuser@192.168.10.3::backup'

inotifywait -mrq --timefmt '%Y-%m-%d %H:%M' --format '%T %w %f' -e create,delete,moved_to,close_write,attrib ${SRC} |while read DATE TIME DIR FILE;do

FILEPATH=${DIR}${FILE}

rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST && echo "At ${TIME} on ${DATE}, file $FILEPATH was backuped up via rsync" >> /var/log/changelist.log

done

5、使用iptable实现: 放行telnet, ftp, web服务,放行samba服务,其他端口服务全部拒绝

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容