马哥教育N48-第十八周作业

1、实现基于MYSQL验证的vsftpd虚拟用户访问
环境:
一台安装vsftpd(192.168.37.7),一台安装mariiadb-server(192.168.37.17)

在192.168.37.17上yum方式安装mariadb-server:
yum install mariadb-server -y
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation #安全初始化脚本

在192.168.37.7上编译安装pam_mysql:
安装相关软件包:
yum install pam-devel gcc-c++
wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz #下载pam_mysql软件包
tar zxvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
make && make install

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

mysql> CREATE DATABASE vsftpd;
mysql> SHOW DATABASES;
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@‘192.168.37.%’ IDENTIFIED BY ‘密码’;
mysql> USE vsftpd;
Mysql> SHOW TABLES;
mysql> CREATE TABLE users (
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
);
mysql>DESC users;

测试链接
mysql -uvsftpd -h mysqlserver -p密码
mysql> SHOW DATABASES;

添加虚拟用户
mysql> DESC users;
mysql> INSERT INTO users(name,password) values(‘wang’,password(‘密码’));
mysql> INSERT INTO users(name,password) values(‘mage’,password(‘密码’));
mysql> SELECT * FROM users;

FTP服务器
在FTP服务器上配置vsftpd服务
vim /etc/pam.d/vsftpd.mysql
添加如下两行

auth required pam_mysql.so user=vsftpd passwd=密码host=192.168.45.129 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=密码 host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密

安装vsftp
yum install vsftpd

创建用户
useradd -d /data/ftproot -s /sbin/nologin vuser
chmod 555 /data/ftproot
mkdir /data/ftproot/upload
setfacl -m u:vuser:rwx /data/ftproot/upload

修改配置文件
vim /etc/vsftpd/vsftpd.conf

pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers.d/
启动vsftpd服务

systemctl start vsftpd
systemctl enable vsftpd

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

mkdir /etc/vsftpd/vusers.d/
vim /etc/vsftpd/vusers.d/ftpuser1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
vim /etc/vsftpd/vusers.d/ftpuser2

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
登录后默认目录
local_root=/data/ftproot2
配置ftpuser2目录

mkdir /data/ftproot2
chmod 555 /data/ftproot2
mkdir /data/ftproot2/upload
setfacl -m u:vuser:rwx /data/ftproot2/upload

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

实验环境:
系统:centos 7.6
NFS服务器192.168.37.7 客户机192.168.37.17

1.在192.168.6.129安装nfs-utils
yum install -y nfs-utils

2.配置nfs共享/www目录

[root@Centos7 /]# vim /etc/exports
/www 192.168.37.17(rw,root_squash,all_squash)
备注:以上配置表示把/www 目录只共享给192.168.37.17主机,并且以只读/压榨所有用户权限方式共享

3.启动nfs-server 服务
[root@Centos7 /]# systemctl start rpcbind nfs-server
在这里插入图片描述
备注:centos 7上启动会一起将rpcbind 服务一起启动起来,在centos6上需要手动启动rpcbind

4.利用showmount -e 192.168.37.7 查看共享目录
在这里插入图片描述
5.将192.168.37.7/www 共享目录挂载在192.168.37.17客户机的/mnt目录下
在这里插入图片描述
测试:
当前因为nfs服务端没有授权nfsnobody用户对/www目录读写执行权限
在这里插入图片描述
6.在192.168.37.7nfs服务端上授权nfsnobody对/www目录有读写执行权限
setfacl -m u:nfsnobody:rwx /www

7.在客户机进行测试,是否可以创建复制文件夹
在这里插入图片描述
3、配置samba共享,实现/www目录共享
#在samba服务器上安装samba包
yum -y install samba
#创建samba用户和组
groupadd -r admins
useradd -s /sbin/nologin -G admins wang
smbpasswd -a wang
useradd -s /sbin/nologin mage
smbpasswd -a mage

#创建samba共享目录,并设置SElinux
mkdir /testdir/smbshare
chgrp admins /testdir/smbshare
chmod 2775 /testdir/smbshare

#samba服务器配置
vim /etc/samba/smb.conf
…省略…
[share]
path = /www
write list = @admins

systemctl enable --now smb nmb

#samba客户端访问
yum -y install cifs-utils

#用wang用户挂载smb共享并访问
mkdir /mnt/wang
mount -o username=wang //smbserver/share /mnt/wang
echo “Hello wang” >/mnt/wang/wangfile.txt

#用mage用户挂载smb共享并访问
mkdir /mnt/mage
mount -o username=mage //smbserver/share /mnt/mage
touch /mnt/mage/magefile.txt

4、使用rsync+inotify实现/www目录实时同步
rsync服务器
配置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
hosts allow = 192.168.37.0/24
[backup]
path = /www/
comment = backup
read only = no
auth users = rsyncuser
secrets file = /etc/rsync.pass

生成验证文件:
echo “rsyncuser:123456” > /etc/rsync.pass
chmod 600 /etc/rsync.pass
mkdir /www

inotify服务器
安装inotify
yum install inotify-tools

配置密码文件:
echo “123” > /etc/rsync.pass
chmod 600 /etc/rsync.pass

创建同步脚本:

vim /script/inotify_rsync.sh
#!/bin/bash
SRC=’/www/’
DEST=‘rsyncuser@rsync服务器IP::www’
inotifywait -mrq --timefmt ‘%Y-%m-%d %H:%M’ --format ‘%T %w %f’ -
e create,delete,moved_to,close_write,attrib S R C ∣ w h i l e r e a d D A T E T I M E D I R F I L E ; d o F I L E P A T H = {SRC} |while read DATE TIME DIR FILE;do FILEPATH= SRCwhilereadDATETIMEDIRFILE;doFILEPATH={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

rsync服务器监控变化
watch -nl ls -l /www

5、使用iptable实现: 放行telnet, ftp, web服务,放行samba服务,其他端口服务全部拒绝
iptables -A INPUT -p tcp -m multiport --dports 80,443,20,21,23,139,445 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 137,138 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#永久保存策略
yum install iptables-services
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables.service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值