网络运维与网络安全 学习笔记2023.12.5

网络运维与网络安全 学习笔记 第三十五天

今日目标

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';

//数据库服务器地址

$_configdb'1]dbuser' ='root';

//数据库用户名

$_config'db'1]dbpw'='pwd@1234";

//数据库密码

$_config'db1]'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

<Directory "/var/www/html/vod">

//针对特定目录

Options -Indexes

//添加-号表示禁用此项功能

root@svr203\~# systemctl restart httpd

//重启服务

网络监控基础

开源监控方案

拥有集成化、自动化、Web管理等优势

监控结果直观、支持报警插件

... ...
zabbix体系架构

采集数据

展示结果

触发告警

准备网站、数据库支持

一台openEuler 20.03主机

主机名: svr203.tedu.cn,IP地址:192.168.10.203/24

安装并启用LAMP网站平台

root@svr203\~# vim /etc/hosts

//添加本地域名记录

192.168.10.203 svr203.tedu.cn

root@svr203 \~# yum -y install /root/lamp_oe1_pkgs/*.rpm

//安装预备好的离线包

//安装LAMP组件

root@svr203\~# systemctl restart httpd mariadb php-fpm //开启服务

[root@svr203~j# systemctl enable httpd mariadb php-fpm //设置开机自运行

安全策略调整
禁用防火墙

root@svr203\~# systemctl stop firewalld

//立即停止防火墙

root@svr203\~# systemctl disable firewalld

//禁止开机自动运行
禁用SELinux机制

root@svr203\~# setenforce 0

//使SELinux失效

root@svr203\~# vim /etc/selinux/config

//开机时禁用

SELINUX=disabled

//修改原有的SELINUX=enforcing行

配置zabbix主控机

安装zabbix主控端软件

安装主控端组件

在线安装可参考官方文档

https://www.zabbix.com/documentation/5.0/zh/manual

国外源,可能会比较慢

离线安装可从教学资源中获取

比如zabbix5o_pkgs目录,将其上传至主控机的/root/目录下

root@svr203\~# yum -y install /root/zabbix50_pkgs/.rpm //安装包
root@svr203\~# yum list "zabbix
"

//检查安装结果

...

已安装的软件包

zabbix-agent.x86_64 5.0.11-1.el8

//被控端

zabbix-apache-conf.noarch 5.0.11-1.el8

//网站配置文件

zabbix-get.x86_64 5.0.11-1.el8

//检测工具(可选)

zabbix-server-mysql.x86_64 5.0.11-1.el8

//主控端

zabbix-web.noarch 5.0.11-1.el8

//web控制界面

zabbix-web-deps.x86_64 5.0.11-1.el8

//PHP协作配置文件

zabbix-web-mysql.noarch 5.0.11-1.el8

//数据库支持

安装zabbix网页控制台

配置Web界面

安装好zabbix包以后,先重启一次httpd服务

root@svr203\~# systemctl restart httpd//更新zabbix的网页配置

访问http://192.168.10.203/zabbix,单击"Next step"

若提示时区未设置,要先正确设置时区,再刷新网页

修改/etc/httpd/conf.d/zabbix.conf配置

启用时区配置(删除行首;号),并正确设置时区值

root@svr203 \~# vim /etc/php-fpm.d/zabbix.conf

... ...

php_valuedate.timezone=Asia/Shanghai

//时区设为亚洲/上海

root@svr203\~# systemctl restart php-fpm

//重启Web以更新服务配置

若提示拒绝连接数据库,要先准备库及账号,再刷新网页

为zabbix建立专用库及授权用户,根据提示填写网页

root@svr203\~# mysql -u root

create database zabbix character set utf8 collate utf8_bin;

//建库

grant all on zabbix.* to zabbix@localhost identified by 'zbx@1234";

//建用户、设置密码

quit;

若提示table ... ... not found,则要先导入初始库,再刷新网页ZABBIX

导入zabbix-server-mysql提供的初始数据

通过管道|操作交给mysql命令,导入到zabbix库中

root@svr203\~# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz| mysql -uzabbix -pzbx@1234 zabbix

完成初始化以后,可以看到登录界面

启用zabbix主控服务

要告知zabbix-server如何访问数据库

root@svr203\~# vim /etc/zabbix/zabbix_server.conf

DBName=zabbix

//数据库名

DBUser=zabbix

//数据库用户

DBPassword=zbx@1234

//连接密码,注意删除行首#号

然后,再启动zabbix-server服务

root@svr203\~# systemctl restart zabbix-server

//启动主控端服务

root@svr203 \~# systemctl enable zabbix-server

//设置开机自运行

部署zabbix被控机

安装被控端组件

被监控的Linux主机需要部署zabbix-agent代理程序

zabbix主控机,也可以作为被控机

前一节实际上已经安装好了

root@svr204\~# yum -y install /root/zabbix50_pkgs/zabbix-agent*.rpm

//安装agent代理包

root@svr204\~# yum list "zabbix*"

//检查安装结果

已安装的软件包

zabbix-agent.x86_64 5.0.11-1.el8 @@commandline
启用zabbix-agent被控服务

调整监听设置,允许主控机来采集数据

root@svr204\~# vim /etc/zabbix/zabbix_agentd.conf

...

Server=127.0.0.1,192.168.10.203

//添加主控机的地址

ServerActive=127.0.0.1,192.168.10.203

//添加主控机的地址

Hostname=svr204.edu.cn

//本机的主机名

启用zabbix-agent服务

root@svr204\~# systemctl restart zabbix-agent

//启动服务

root@svr204\~# systemctl enable zabbix-agent

//设置开机自运行

管理监控项

管理被控机

用户登录及账号控制

登入zabbix控制台http://192.168.10.203/zabbix/

默认管理员账号Admin,密码是zabbix

单击左侧栏User settings,将界面语言修改为Chinese(zh_CN)

管理被控机

Zabbix导航边栏→配置→主机

可添加新的被控机:指定主机名、可见名、agent接口地址

可管理现有被控机:停用/启用、修改、选监控模板、.......

管理被控机的监控项

设置监控项

单击被控主机右侧的"监控项",可以管理监控项

关联了OS Linux模板时,会自动添加大量监控项

比如针对CPU、内存、登录用户数、运行任务数等指标的监控

zabbix自动发现,或管理员手动添加新监控项

网卡入站流量net.if.inens33

网卡出站流量net.if.outens33

监控结果分析

使用仪表板

监测→仪表板,用于集中展现监控指标、报告问题

仪表板展示的数据块可以编辑

查看监控图形

监测→主机→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

创建监控图形

选中被监控主机→图形→创建图形

比如"网卡流量分析"图,整合入站/出站流量监控项

相关推荐
云计算磊哥@21 分钟前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步20151 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
极客先躯2 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
智慧光迅AINOPOL2 小时前
校园在线巡课系统方案:督导全覆盖
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案
Java面试题总结2 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
志栋智能2 小时前
超自动化巡检:提升MTTR,缩短业务影响时间
运维·自动化
酉鬼女又兒2 小时前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
Urbano3 小时前
工装制作全流程科普:从面料到自动化生产
网络·人工智能
kong@react3 小时前
Rocky Linux 10.2 全面解析:企业级 CentOS 替代方案及保姆级docker安装
java·linux·运维·docker
2401_868534783 小时前
网规笔记 | 真题解析:2018年11月软考网规-网络安全案例分析
网络