马哥教育N36第十三周作业

1、实现rsyslog将日志记录到mysql并通过loganalyzer展示
准备 rsyslog 用的主机(192.168.30.108)
# 系统默认安装有rsyslog服务
rpm -q rsyslog
rsyslog-8.24.0-34.el7.x86_64
# 安装日志保存到mysql数据库对应的软件包
yum -y install rsyslog-mysql
rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
# 将对应的sql脚本发送到mysql服务器上
scp /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql 192.168.30.106:/root
# 修改rsyslog配置文件
vim /etc/rsyslog.conf 
$ModLoad ommysql           # 加载模块
*.info;mail.none;authpriv.none;cron.none        :ommysql:192.168.30.17,Syslog,log,centos

配置rsyslog将日志保存到mysql中,需要设置rsyslog.conf

#### MODULES ####
$ModLoad ommysql
#### RULES ####
facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
准备 mysql 服务器(192.168.30.106)
yum install -y mariadb-server
systemctl start mariadb
mysql < /root/mysql-createDB.sql
# 创建日志保存用的数据库帐号
mysql > GRANT ALL ON Syslog.* TO 'log'@'192.168.30.%' IDENTIFIED BY 'centos';
mysql > select user,host,password from mysql.user;
+------+----------------+-------------------------------------------+
| user | host           | password                                  |
+------+----------------+-------------------------------------------+
| root | localhost      |                                           |
| root | mysql          |                                           |
| root | 127.0.0.1      |                                           |
| root | ::1            |                                           |
|      | localhost      |                                           |
|      | mysql          |                                           |
| log  | 192.168.30.%   | *128977E278358FF80A246B5046F51043A2B1FCED |
+------+----------------+-------------------------------------------+
准备 loganalyzer 主机(192.168.30.117)
yum -y install httpd php php-mysql php-gd

# 准备loganalyzer 应用数据
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.7.tar.gz
tar xf loganalyzer-4.1.7.tar.gz
cp -a loganalyzer-4.1.7/src/* /var/www/html/
cd /var/www/html/loganalyzer
touch config.php
chmod 666 config.php

# 应为php包硬件带有php相关的配置文件了,所以这里不用其他设置。如果是php-fpm 包,这里还是需要手动配置的
systemctl start httpd

# 配置loganalyzer
http://192.168.30.117/install.php
2、实现基于mysql验证的vsftpd虚拟用户,用户为user1、user2
安装对应的软件包
  • FTP 服务器
yum -y install vsftp
# centos7 上安装pam_mysql 需要编译安装
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 --with-mysql=/usr --with-pam=/usr
make
make install
# 安装完成后
ll /lib64/security/pam_mysql.*
-rwxr-xr-x 1 root root    882 May 15 15:48 /lib64/security/pam_mysql.la
-rwxr-xr-x 1 root root 141752 May 15 15:48 /lib64/security/pam_mysql.so
  • MySQL服务器
yum -y install mariadb-server
systemctl start mariadb
在数据库上创建虚拟用户帐号
  • 创建数据库和用户
mysql > create database vsftpd;
mysql > grant select  on vsftpd.* to vsftp@'192.168.30.%' identified by 'centos';

  • 准备数据表
mysql> USE 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>DESC user;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name     | char(50)         | NO   |     | NULL    |                |
| password | char(50)         | NO   |     | NULL    |                |
+----------+------------------+------+-----+---------+----------------+
  • 添加虚拟用户
mysql> Iinsert into user(name,password) values ('mike',password('test'));
mysql> insert into user(name,password) values ('bean',password('test'));
mysql> select * from user;
+----+------+-------------------------------------------+
| id | name | password                                  |
+----+------+-------------------------------------------+
|  1 | mike | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
|  2 | bean | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
+----+------+-------------------------------------------+
配置vsftpd服务
  • 创建pam认证文件
vim /etc/pam.d/vsftpd.mysql
auth required pam_mysql.so user=vsftp passwd=test host=mysqlserver db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftp passwd=test host=mysqlserver db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2
  • 建立映射FTP帐号的系统帐号,并修改vsftpd的配置文件
useradd -r -s /sbin/nologin -d /data/ftproot vuser
cd /data/
mkdir ftproot/{pub,upload} -pv
chmod 555 ftproot/        # 去掉ftp用户的根写权限
setfacl -m u:vuser:rwx ftproot/upload/

# 修改配置文件
vim /etc/pam.d/vsftpd.mysql 
auth required pam_mysql.so user=vsftp passwd=centos host=192.168.30.106 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftp passwd=centos host=192.168.30.106 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=2

vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
 
启动服务,并测试
  • 启动服务
systemctl start vsftpd
  • 测试
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\jlee>ftp 192.168.30.117
连接到 192.168.30.117。
220 (vsFTPd 3.0.2)
用户(192.168.30.117:(none)): bean
331 Please specify the password.
密码:
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
pub
upload
226 Directory send OK.
ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。
ftp>
3、实现网络防火墙
  • 放行telnet, ftp, web服务
  • 放行samba服务
  • 放行dns服务(查询和区域传送)
构建测试环境

三台主机全部使用仅主机模式,并关闭对应的dhcp设置

  • 客户机(192.168.30.100)
# 临时的配置
ip a a 192.168.30.100/24 dev ens33
ip rounte add default via 192.168.30.1 dev ens33
# 写入文件
nmcli conn add con-name default type ethernet autoconnect yes ip4 192.168.30.100/24 gw4 192.168.30.1 ifname ens33
  • 网络防火墙(192.168.30.1和10.0.0.1)
ip a a 192.168.30.1/24 dev ens33
ip a a 10.0.0.1/8 dev ens37
# 写入文件
nmcli conn add con-name eth0 type ethernet autoconnect yes ip4 192.168.30.1/24 ifname ens33
nmcli conn add con-name eth1 type ethernet autoconnect yes ip4 10.0.0.1/8 ifname ens37

# 启用路由转发功能
echo 1 > /etc/sys/net/ipv4/ip_forward
# 或者
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p

  • 服务器(10.0.0.100)
ip a a 10.0.0.100/8 dev ens33
ip rounte add default via 10.0.0.1 dev ens33
# 写入文件
nmcli conn add con-name default type ethernet autoconnect yes ip4 10.0.0.100/8 gw4 10.0.0.1 ifname ens33
在防火墙配置

-首先确认系统的默认防火墙服务是关闭的

iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 209 packets, 18373 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 26 packets, 2184 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 49 packets, 8409 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  • 先拒绝所有转发,随便测试
iptables -A FORWARD -j REJECT
  • 开通dns端口
iptables -I FORWARD -p tcp --dport 53 -j ACCEPT
iptables -I FORWARD -p udp --dport 53 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 开通samba端口
iptables -I FORWARD 2 -p tcp -m multiport --dports 139,445 -j ACCEPT
iptables -I FORWARD 2 -p udp -m multiport --dports 139,445 -j ACCEPT

  • 开通被动模式的FTP端口
iptables -I FORWARD 2 -p tcp --dport 21 -j ACCEPT

# centos7上需要加载 nf_conntrack_ftp 的模块
modprobe nf_conntrack_ftp
# 这个模块是vsftpd包带的,将服务器上的这三个文件复制防火墙主机对应的位置
locate nf_conntrack_ftp
/usr/include/linux/netfilter/nf_conntrack_ftp.h
/usr/lib/modules/3.10.0-957.el7.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz
/usr/src/kernels/3.10.0-957.el7.x86_64/include/linux/netfilter/nf_conntrack_ftp.h
/usr/src/kernels/3.10.0-957.el7.x86_64/include/uapi/linux/netfilter/nf_conntrack_ftp.h
  • 开通 httpd、ssh、telnet 端口
iptables -I FORWARD 2 -p tcp -m multiport --dports 22,23,80 -j ACCEPT
最终防火墙规则
iptables -vnL --line-numbers
Chain INPUT (policy ACCEPT 17 packets, 1544 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1       55  4198 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2        3   180 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            multiport dports 21:23,80,139,445
3        2   116 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:53
4        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT 11 packets, 2920 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
4、在Linux上搭建SMB服务,实现windows访问该服务
服务器上安装samba软件包
yum -y install samba
=======================================================================================
 Package                    Arch           Version                  Repository    Size
=======================================================================================
Installing:
 samba                      x86_64         4.8.3-4.el7              base         680 k
Installing for dependencies:
 cups-libs                  x86_64         1:1.6.3-35.el7           base         357 k
 libldb                     x86_64         1.3.4-1.el7              base         137 k
 libtalloc                  x86_64         2.1.13-1.el7             base          32 k
 libtdb                     x86_64         1.3.15-1.el7             base          48 k
 libtevent                  x86_64         0.9.36-1.el7             base          36 k
 libwbclient                x86_64         4.8.3-4.el7              base         109 k
 pytalloc                   x86_64         2.1.13-1.el7             base          17 k
 samba-client-libs          x86_64         4.8.3-4.el7              base         4.8 M
 samba-common               noarch         4.8.3-4.el7              base         206 k
 samba-common-libs          x86_64         4.8.3-4.el7              base         164 k
 samba-common-tools         x86_64         4.8.3-4.el7              base         448 k
 samba-libs                 x86_64         4.8.3-4.el7              base         276 k

Transaction Summary
=======================================================================================
Install  1 Package (+12 Dependent packages)
创建samba用户和组
groupadd -r admins
useradd -s /sbin/nologin -G admins lee
useradd -s /sbin/nologin share

创建samba的共享目录
mkdir /data/smbshare
chgrp admins /data/smbshare
chmod 2775 /data/smbshare
配置samba服务器
vim /etc/samba/smb.conf
[share]
path = /data/smbshare
write list = @admins
启动服务和添加用户密码,最后测试
  • 开启服务
systemctl enable smb;systemctl start smb

# smbpasswd工具用来管理samba的用户的,包括添加用户、修改用户密码、删除用户等
smbpasswd -a lee
smbpasswd -a share
  • 连接samba服务器非常慢
# 检查 /etc/host 文件中主机名是否在本机的ip中
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7.auto.com
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
5、在server01上搭建NFS服务,在client01上挂载并实现写入的数据共享
安装nfs软件包并启动服务
yum -y install nfs-utils
systemctl enable nfs-server;systemctl start nfs-server
创建漫游的帐号和家目录
useradd -d /data/david -m -u 2000 david
useradd -d /data/jimy -m -u 2001 jimy
编辑nfs服务器的exports文件
vim /etc/exports
/data/david     192.168.30.0/24(rw)
/data/jimy      192.168.30.0/24(rw)

exportfs -r
# 查看共享
exportfs -v
/data/david     192.168.30.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/data/jimy      192.168.30.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
客服端安装nfs包
yum -y install nfs-utils autofs
# 创建对应的漫游帐号,否则显示和权限都有问题
useradd -u 2000 -M david
useradd -u 2001 -M jimy

# 查看挂载
showmount -e 192.168.30.117
使用autofs自动挂载
  • 绝对路径法,不会影响本地目录结构
vim /etc/auto.master
/-      /etc/auto.nfs

vim /etc/auto.nfs
/home/jimy      192.168.30.117:/data/jimy
/home/david     192.168.30.117:/data/david

systemctl start autofs
  • 相对路径法,本地其他用户的家目录将被隐藏
vim /etc/auto.master
/home      /etc/auto.nfs

vim /etc/auto.nfs
jimy      192.168.30.117:/data/jimy
david     192.168.30.117:/data/david

systemctl start autofs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值