网络运维与网络安全 学习笔记 第三十五天
今日目标
su用户切换、sudo命令提权、部署动态Web应用
数据库安全加固、Web安全加固
网络监控基础、配置zabbix主控机、配置zabbix被控机
管理监控项、监控结果分析
su用户切换
su机制介绍及用法
Linux安全基线
指的是使Linux各项配置都符合安全要求的基本标准
账号/密码:口令复杂度/wheel组
SSH登录控制:禁root/改端口/密码/密钥验证··
root@svr203\~\]# vim /etc/ssh/sshd_configPermitRootLogin no
//此行中的yes改no,可以禁止root远程登录
\[root@svr203\~\]# systemctl restart sshd
//重启远程服务
**su机制介绍**
Substitute User,切换/替换用户
root切换为任何可登录的用户,无需密码
普通用户切换至其他用户时,需要验证目标用户的登录密码
不指定目标用户时,默认切换为root
**su基本用法**
切换到新用户的登录环境
执行su -用户名进入新的用户环境
执行exit返回原来的用户
\[root@svr203\~\]# su - student
//切换为student,其中--表示登录
... ...
\[student@svr203 \~\]$ pwd
//以student身份执行任务
/home/student
\[student@svr203 \~\]$ exit
//退出切换环境
注销
\[root@svr203\~\]#
//已返回到原来的环境
#### su控制及跟踪
**禁止滥用su切换权限**
通常情况下,任何用户都被允许使用su切换
openEuler中已启用wheel组限制
除了root以外,只有加入wheel组的用户才被允许使用su切换
其他人使用su切换时,会提示拒绝权限
\[root@svr203\~\]# vim /etc/pam.d/su... .-
auth requiredpam_wheel.so use_uid
//删除此行开头的#注释符号
\[student@svr203\~\]$ su -
密码:
su:拒绝权限
**su操作日志**
安全日志/var/log/secure 文件
记录了用户登录、切换相关的事件消息
查找su-l关键词,可以找到与使用su切换用户相关的消息
\[root@svr203\~\]# less /var/log/secure
Apr 2510:34:15svr203 su: pam_unix(su-l:session): session opened for user studentby root(uid=0)
Apr 25 i0:34:26svr203 su: pam_succeed_if(su-l:auth): requirement "uid\>= 1000"not met by user "root"
Apr2510:38:07svr203 su: pam_unix(su-l:session): session closed for user student
### sudo命令提权
#### sudo授权及使用
**sudo机制介绍**
Super doing,执行管理员授权的命令
允许授权用户代替管理员(或其他用户)来完成预先授权的命令
授权用户、授权命令需要提前配置
通过sudo执行命令时,只验证自己的密码(5分钟内不重复验证)
**配置sudo授权**
使用visudo专用工具
用户名本机可用主机名列表=(用户身份)授权命令列表
不指定用户身份时,缺省为root
\[root@svr203\~\]# visudo
...
%wheelALL =(ALL) ALL
//允许wheel组用户使用任何命令(行首加#号可取消)
zx ALL= /usr/bin/nmcli,/usr/ bin/nmtui
//允许用户zx使用nmcli、nmtui管理网络
zy ALL=ALL//允许用户zy使用所有命令
**sudo基本用法**
查看自己的sudo授权
sudo -l
\[zy@svr203\~\]$ sudo -l
我们信任您已经从系统管理员那里了解了日常注意事项。总结起来无外乎这三点:
#1)尊重别人的隐私。
#2)输入前要先考虑(后果和风险)。
#3)权力越大,责任越大。
\[sudo\] zy的密码://初次使用时,验证用户zy的密码(5分钟内不再验证)用户zy可以在svr203上运行以下命令:
(root)ALL
执行管理员已允许提权的命令
sudo命令行
\[zy@svr203\~\]$ mkdir /zydir//正常使用,无权在/下创建子目录
mkdir:无法创建目录"/zydir":权限不够
\[zy@svr203 \~\]$ sudo mkdir /zydir //sudo方式使用,成功在/下创建子目录
\[zy @svr203\~\]$ ls -ld /zydir
drwxr-Xr-x. 2 root root 64月25 11:20/zydir
#### sudo日志跟踪
**sudo操作日志**
日志审计功能默认不开启
如果需要,可以手动打开sudo操作日志
\[root@svr203\~\]# visudo
...
Defaults logfile=/var/log/sudo
//添加此行,要求记录sudo操作
\[root@svr203\~\]# cat /var/log/sudo//使用过sudo后,会记录在这个文件中
Apr2511:34:52:zy:TTY=pts/1; PWD=/home/zy; USER=root ; COMMAND=list
Apr 25 11:34:59:zy: TTY=pts/1; PWD=/home/zy; USER=root ;
COMMAND=/bin/touch/zyfile
### 部署动态Web应用
#### 部署DZ论坛代码
**论坛系统概述**
Forum,网络论坛
指的是Internet上的一种电子信息服务系统
提供一块公共电子白板,每个用户都可以在上面发布信息、提出看法
也称为BBS,Bulletin Board System
关于Discuz!论坛/社区系统
腾讯旗下北京康盛公司Comsenz出品
使用PHP语言编写,支持MySQL等多种数据库
免费提供源代码,用于学习、测试;商业站点需购买授权许可
**确认LAMP环境**
LAMP平台要确保已正常运行
主要是httpd、mariadb服务,必要时可以重启一下
\[root@svr203 \~\]# systemctl restart httpd mariadb
//重启web和数据库
若无特别需要,建议停用防火墙、停用SELinux保护
\[root@svr203\~\]# systemctl disable firewalld --now
//停用防火墙
\[root@svr203 \~\]# setenforce 0
//停用SELinux
**部署Discuz!论坛代码**
下载 Discuz!论坛程序包,部署为网站目录
将upload目录上传到Web服务器(比如,作为bbs 网页子目录)
\[root@svr203\~\]# ls /var/www/html/bbs/
//确认结果
admin.php configfavicon.ico index.php misc.php search.php
api connect.php forum.php install plugin.php source
... ...
**访问Discuz!安装页面**
从浏览器访问http://服务器地址/bbs/,可看到安装页面
#### 安装DZ论坛系统
**搞定目录权限**
1.使用chown将相关目录的所有者改为apache
2.特别提示:还需要关闭SELinux保护机制
**正确设置数据库连接、管理员密码**
MariaDB数据库的默认管理员为root,密码为空
**成功安装后,页面底部会出现相应提示**
### 数据库安全加固
#### 数据库服务配置
**LAMP+Discuz!环境部署**
网站+数据库"速成版"环境
1.安装httpd、mariadb-server、php、php-mysql
2.启用httpd 服务、mariadb服务
3.基于上述LAMP默认环境部署Discuz_X3.4_SC_UTF8.zip 论坛系统
――其实,互联网中相当一部分网站就是类似这种的"默认"环境
**mysql_secure_installation**
默认设置很方便,也很不安全
需要为MariaDB/MySQL的test库、空密码等默认设置填坑
注意:生产环境建议运行此脚本,并仔细完成所有安全优化操作
\[root@svr203 \~\]# mysql_secure_installation
**Web前台连数据库**
指定前端系统如何连接数据库
服务器地址、数据库用户名、连接密码、数据库名
最好改用非root用户(需提前授权)
\[root@svr203\~\]# vim /var/www/html/bbs/config/config_global.php
... ...
$_config\['db'\]\['1'\]\['dbhost'\]='localhost';
//数据库服务器地址
$_config\[db'\]1\]\[dbuser'\] ='root';
//数据库用户名
$_config\['db'\]1\]\[dbpw'\]='pwd@1234";
//数据库密码
$_config\['db\]1\]\['dbname'\]='ultrax';
//数据库名称
**Web后台连数据库**
指定后端系统如何连接数据库
可以与前端使用同一套数据库用户名/密码
也可以另外准备一套账号
\[root@svr203\~\]# vim /var/www/html/bbs/config/config_ucenter.php
... ...
define('UC_DBHOST', ' localhost');
//数据库服务器地址
define('UC_DBUSER',' root');
//数据库用户名
define('UC_DBPW", 'pwd@1234');
//数据库密码
define('UC_DBNAME, ' ultrax');
//数据库名称
**控制配置文件的权限**
默认所有人有r读权限,非必要、应去除\[
\[root@svr203 bbs\]# chmod o-r config/config_global.php
\[root@svr203 bbs\]# chmod o-r config/config_ucenter.php
\[root@svr203 bbs\]# ls -lh config/config_global.php
-rw-r-----. 1 apache apache 4.8K 6月15 14:49 config/config_global.php
-rw-r-----. 1 apache apache 540 6月1515:24 config/config_ucenter.php
### Web安全加固
#### Web配置调整
**httpd.conf常规优化**
**理解常规配置**
DocumentRoot:设置本网站的网页根目录
Listen:设置在本机监听Web服务的IP地址及端口
DirectoryIndex:设置访问网站目录时的默认网页文件名
ServerName:设置本网站注册的DNS名称(即完整域名)
\[root@svr203\~\]# vim /etc/httpd/conf/httpd.conf
... ...
DocumentRoot "/var/www/html"
Listen 80
Directorylndex index.html...
//上述内容是默认配置
**隐藏版本信息**
通过浏览器/扫描工具很容易获取Web服务端的软件版本信息
通过隐藏版本细节,可以提高侦察难度
\[root@svr203\~\]# vim /etc/httpd/conf.d/sec1.conf
//新建一个配置文件
ServerTokens Prod
//HTTP响应只显示产品名(默认为Full,显示全部)
ServerSignature off
//服务器信息不显示签名
...
\[root@svr203\~\]# systemctl restart httpd
//重启服务
\[root@svr203\~\]# nmap -sV -p 80 localhost
//使用nmap扫描本机,只显示Apache httpd
**保护网页目录**
默认配置的httpd允许自动列出目录下所有资源
针对目录启用"Options -Indexes"可以关闭目录浏览功能
\[root@svr203\~\]# vim /etc/httpd/conf.d/sec2.conf
\
网卡出站流量net.if.out[ens33]
监控结果分析
使用仪表板
监测→仪表板,用于集中展现监控指标、报告问题
仪表板展示的数据块可以编辑
查看监控图形
监测→主机→xx→图形,查看主机的监控结果
修复中文显示
root@svr203 \~ \]# yum -y install wqy-zenhei-fonts//安装中文字体(文泉驿-正黑) \[root@svr203 \~ \]# cp /usr/share/fonts/wqy-zenhei/wqy-zenhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf//替换掉默认字体cp:是否覆盖"/usr/share/zabbix/assets/fonts/graphfont.ttf"? y  **创建监控图形** 选中被监控主机→图形→创建图形 比如"网卡流量分析"图,整合入站/出站流量监控项 