1、实现基于MYSQL验证的vsftpd虚拟用户访问
<自己虚拟机上pam_mysql总是报错,这里贴一下配置,据说是pam模块bug,使用yum方式安装一样报错>
资源准备:
linux虚拟机或者物理机云服务器一台
pam_mysql源码包:[pam_mysql下载](http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz)
1》先查询是否有pam——mysql模块,如果没有,先去安装
安装pam_mysql、mysq的client端(pam_mysql依赖)
a、解压源码包:
tar xzf pam_mysql-0.7RC1.tar.gz #具体版本去官网查询下载
b、进入源码包:
cd pam_mysql-0.7RC1
c、安装依赖:例如gcc gcc-c++ mysql/mariadb mysql-devel/mariadb-devel等
yum install gcc gcc-c++ mariadb mariadb-devel -y
d、编译:
./configure --prefix=/usr/local/pam_mysql --with-pam-mods-dir=/usr/lib64/security && make -j `内核数`
编译的时候一定要注意加上这个参数**《--with-pam-mods-dir=path》**,不然会报错‘configure: error: Your system doesn't appear to be configured to use PAM. Perhaps you need to specify the correct location where the PAM modules reside.
e、安装 :
make
2》安装vsftpd
yum install vstfpd -y
3》配置
a、配置基于用户访问,检测服务是否正常准备另一台虚拟机做客户端检测
vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
b、配置pam
vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=vsftpd
host=10.0.0.17 db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd
passwd=vsftpd host=10.0.0.17
db=vsftpd table=users usercolumn=name
passwdcolumn=password crypt=2
2、通过NFS实现服务器/www共享访问。
-
在centos上先安装nfs: yum install nfs-utils rpcbind -y
-
配置共享目录(10.0.0.19):
-
创建目录:mkdir /www
-
setfacle -m u:user:rw /www
-
配置文件:vim /etc/exports
-
/www 10.0.0.0/24(ro)
-
启动nfs 和 rpcbind
-
systemctl start nfs rpcbind
-
客户端验证:
-
在 10.0.0.18上安装nfs-utils
-
yum install -y nfs-utinls
-
showmount -e 10.0.0.19
-
查看共享目录
-
挂载本地
-
mount -t nfs 10.0.0.19:/www /data/nfs
3、配置samba共享,实现/www目录共享
服务端安装samba服务以及依赖
yum install -y samba
配置:
vim /etc/samba/smb.conf
[sambatset]
comment = sambatest
path = /www
public = yes
writable = yes
保存退出
先按esc回到命令模式; :wq
创建samba用户
useradd -s /sbin/nologin sambauser1
smbpasswd -a sambauser1 #按照提示输入两次密码
启动samba
systemctl start smb
客户端验证
安装客户端以及其他工具(10.0.0.18)
yum install -y samba-client cifs-utils -y
smbclient -L 10.0.0.19 -U sambauser1%abc
挂载
mount -t cifs -o user=sambauser1,password=abc //10.0.0.19/sambatset //data/nfs
4、使用rsync+inotify实现/www目录实时同步
服务端准备:
安装服务以及依赖
yum nstall -y inotify-utils -rsync -y
inotifywait -mrq /data --timefmt “%F %H:%M” --format “%T %w%f event: %;e” -e create,delete,moved_to,close_write,attrib #持续后台监控特定事件 create,delete,moved_to,close_write,attrib
配置 rsync 服务器端的配置文件
vim /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 0
ignroe errors
exclude = lost+found/
log file = /var/log/rsycnd.log
pid file = /var/run/rsycnd.pid
lock flie = /var/run/rsycnd.lock
reverse lookup = no
host allow = 10.0.0.10/24
[backup]
path = /backup/
comment = backup
read only = no
auth users =
secrets file = /etc/rsync.pass
服务器端生成验证文件
echo "a:a" > /etc/rsync.pass chmod 600 /etc/rsync.pass
服务器端准备目录
mkdir /backup
服务器端启动rsync服务
rsync --daemon
可加入/etc/rc.d/rc.local实现开机启动
systemctl start rsyncd CentOS 7
客户端配置密码文件
echo "magedu" > /etc/rsync.pass chmod 600 /etc/rsync.pass
客户端测试同步数据
rsync -avz --password-file=/etc/rsync.pass /data/ a@10.0.0.18::backup
5、使用iptable实现: 放行telnet, ftp, web服务,放行samba服务,其他端口服务全部拒绝
iptables -A INPUT -p tcp -m multiport --sports 23,21,80,139 -j ACCEPT
iptables -A INPUT -j REJECT