Linux学习作业---第十八周(8.24-8.30)

一、实现基于MYSQL验证的vsftpd虚拟用户访问
1、编译工具安装

 yum install -y cmake gcc-c++ gcc bison libmcrypt openssl openssl-devel ncurses ncurses-devel perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-GD

2、安装mariadb数据库

yum –y install mariadb-server
systemctl start mariadb

3、创建ftp虚拟账户表

mysql -uroot -p (默认为空)
mysql> create database vsftpd;  #创建vsftpd数据库
mysql> grant all  privileges on vsftpd.* to vsftpd@'%' identified by 'vsftpd'; #创建数据库账户密码
mysql> create table user   #创建用户表
            (
                id int unsigned auto_increment primary key,
                name char(50) binary not null,
                password char(50) binary not null
            );
mysql> insert into user(name,password) values ('ftp1',password('ftp1'));  #创建虚拟用户
mysql> insert into user(name,password) values ('ftp2',password('ftp2'));

4、安装pam_mysql-0.7RC1

yum -y install mariadb-devel pam-devel
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-pam-mods-dir=/lib64/security
make && make install

5、创建ftp账户

useradd -r -s /sbin/nologin -d /data/ftpdata vuser   #创建vuser操作系统账户
mkdir -p /data/ftpdata/{public,upload}
chmod 555 /data/ftpdata/          #去掉vuser ftp根目录写权限
setfacl -m u:vuser:rwx /data/ftpdata/upload/     #单独给予upload文件目录写的权限

6、创建pam vsftpd.mysql文件

 vi /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=vsftpd host=172.16.31.7 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=vsftpd host=172.16.31.7 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2  #填写数据库连接信息

7、修改vsftpd配置文件

vi /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql       #(修改pam引用配置文件)
userlist_enable=YES                           #默认
tcp_wrappers=YES                             #默认
guest_enable=YES                                #开启虚拟用户
guest_username=vuser                      #所有虚拟用户都映射成vuser账户
user_config_dir=/etc/vsftpd/vusers.d/    #每个虚拟用户独立配置文件

8、单独配置虚拟用户

mkdir -p /etc/vsftpd/vusers.d/
vi /etc/vsftpd/vusers.d/ftp1    #创建ftp1用户配置文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES    #允许上传

9、验证


image.png
image.png

ftp1用户可以上传


image.png

image.png

ftp2用户无法上传
二、通过NFS实现服务器/www共享访问
1、创建共享目录

mkdir -p /www
chmod 755 /www

2、安装nfs服务

yum install -y nfs-utils rpcbind

3、修改nfs配置文件

vi /etc/exports

/www 172.16.31.65(rw,sync,all_squash,anonuid=501,anongid=501)

#rw  可读写
#sync  同步至内存
#all_squash  全部匿名方式登陆
#n匿名账户ID及组501

4、创建匿名账户

groupadd -g 501 nfsuser
useradd  -g nfsuser -u 501 nfsuser -s /sbin/nologin
chown -R nfsuser:nfsuser /www

5、启动nfs并刷新配置

systemctl start rpcbind && systemctl start nfs-server
exportfs -r

6、客户端安装

yum install -y nfs-utils

7、挂载nfs盘

mkdir -p /data/www
mount -t nfs 172.16.31.7:/www /data/www

三、配置samba共享,实现/www目录共享
1、创建共享目录

mkdir -p /www

2、安装samba服务

yum install samba –y

3、创建共享账户

groupadd sambauser
useradd sambauser -g sambauser -s /sbin/nologin
chown -R sambauser:sambauser /www

4、将用户添加进samba用户中并设置密码

smbpasswd -a sambauser

5、修改samba配置文件

vi /etc/samba/smb.conf
最后添加
[www]
        comment = www   #描述
        path = /www      #共享目录
        public = no         #隐藏共享目录
        browseable = no
        printable = no     
        valid users = sambauser        #添加sambauser权限
        write list = sambauser            #sambauser可写权限

6、启动samba服务

systemctl start smb nmb

7、测试
\172.16.31.7\www


image.png

四、使用rsync+inotify实现/www目录实时同步
服务端:172.16.23.243
客户端:172.16.31.7
需求:
客户端 /data/www 目录中的所有文件及目录同步至服务端/data/backup目录中
1、服务端和客户端都安装rsyncd

yum -y install rsync

2、服务端修改rsync配置文件

vi /etc/rsyncd.conf
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          #不反向解析
[backup]                            #创建backup实例
path = /data/backup/         #备份的目录
comment = backup 
read only = no        
auth users = rsyncuser     #同步rsync账户
secrets file = /etc/rsync.pass       #密码保存的文件

3、创建rsync同步账户及密码

vi /etc/rsync.pass
rsyncuser:123456   #用户:密码

4、客户端添加rsyncuser的密码

vi /etc/rsync.pass
123456

5、测试rsync

服务端
启动rsync进程
rsync --daemon
chmod 600 /etc/rsync.pass(客户端和服务端都要执行)
客户端
[root@ftptest data]# rsync -avz --password-file=/etc/rsync.pass /data/www/ rsyncuser@172.16.23.243::backup
sending incremental file list
./
f1.txt
f4.txt
f5.txt

sent 221 bytes  received 76 bytes  594.00 bytes/sec
total size is 0  speedup is 0.00

服务端

[root@mwh backup]# ll
总用量 0
-rw-r--r-- 1 root root 0 8月  30 12:05 f1.txt
-rw-r--r-- 1 root root 0 8月  30 14:02 f4.txt
-rw-r--r-- 1 root root 0 8月  30 14:05 f5.txt
成功同步

6、客户端安装inotify

yum install inotify-tools

7、定义同步脚本

vi /data/rsyncwww.sh
#!/bin/sh
SRC=/data/www/
DEST=rsyncuser@172.16.23.243::backup
inotifywait -mrq -e modify,create,move,delete,attrib $SRC |while read events   #-m 持续监控 -r 递归 -q 不记录 -e 定义操作
    do
        rsync -az --delete --password-file=/etc/rsync.pass $SRC $DEST  #--delete 删除backup中源文件不存在的文件
        echo "[`date "+%Y-%m-%d %H:%M:%S"`]  $events" >> /var/log/sync.log
    done

8、执行脚本测试

chmod +x /data/rsyncwww.sh
./rsyncwww.sh
客户端
[root@ftptest www]# touch f{1..10}.txt
[root@ftptest www]# ll
总用量 0
-rw-r--r-- 1 root root 0 8月  30 14:20 f10.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f1.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f2.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f3.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f4.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f5.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f6.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f7.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f8.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f9.txt
服务端
[root@mwh backup]# ll
总用量 0
-rw-r--r-- 1 root root 0 8月  30 14:20 f10.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f1.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f2.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f3.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f4.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f5.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f6.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f7.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f8.txt
-rw-r--r-- 1 root root 0 8月  30 14:20 f9.txt
查看日志

[root@ftptest www]# tail -20 /var/log/sync.log
[2020-08-30 14:20:35]  /data/www/ CREATE f1.txt
[2020-08-30 14:20:35]  /data/www/ ATTRIB f1.txt
[2020-08-30 14:20:35]  /data/www/ CREATE f2.txt
[2020-08-30 14:20:35]  /data/www/ ATTRIB f2.txt
[2020-08-30 14:20:35]  /data/www/ CREATE f3.txt
[2020-08-30 14:20:36]  /data/www/ ATTRIB f3.txt
[2020-08-30 14:20:36]  /data/www/ CREATE f4.txt
[2020-08-30 14:20:36]  /data/www/ ATTRIB f4.txt
[2020-08-30 14:20:36]  /data/www/ CREATE f5.txt
[2020-08-30 14:20:36]  /data/www/ ATTRIB f5.txt
[2020-08-30 14:20:36]  /data/www/ CREATE f6.txt
[2020-08-30 14:20:36]  /data/www/ ATTRIB f6.txt
[2020-08-30 14:20:36]  /data/www/ CREATE f7.txt
[2020-08-30 14:20:37]  /data/www/ ATTRIB f7.txt
[2020-08-30 14:20:37]  /data/www/ CREATE f8.txt
[2020-08-30 14:20:37]  /data/www/ ATTRIB f8.txt
[2020-08-30 14:20:37]  /data/www/ CREATE f9.txt
[2020-08-30 14:20:37]  /data/www/ ATTRIB f9.txt
[2020-08-30 14:20:37]  /data/www/ CREATE f10.txt
[2020-08-30 14:20:37]  /data/www/ ATTRIB f10.txt
同步成功

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

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