网络运维与网络安全 学习笔记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’;
//数据库服务器地址
$_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
<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_value[date.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.in[ens33]
网卡出站流量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
在这里插入图片描述
创建监控图形
选中被监控主机→图形→创建图形
比如“网卡流量分析”图,整合入站/出站流量监控项
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】24、文件系统、磁盘 IO

文章目录 一、文件系统1.1 索引节点和目录项1.2 虚拟文件系统 VFS1.3 文件系统 I/O1.5 性能观测1.5.1 容量1.5.2 缓存1.5.3 find 命令的缓存 二、磁盘 I/O2.1 通用块层2.2 I/O 栈2.3 磁盘性能指标2.3.1 磁盘 I/O 观测2.3.2 进程 I/O 观测 2.4 案例&#xff1a;找到打大量日志的…

【开源】基于Vue.js的贫困地区人口信息管理系统

文末获取源码&#xff0c;项目编号&#xff1a; S 073 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S073。} 文末获取源码&#xff0c;项目编号&#xff1a;S073。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 人口信息管理模块2.2 精准扶贫管理模…

修改el-table表头样式

<style lang"scss" scoped> ::v-deep .el-table {.el-table__header-wrapper, .el-table__fixed-header-wrapper {th {word-break: break-word;background-color: #f8f8f9;color: #515a6e;height: 40px;font-size: 13px;}} } </style>

el-table全部选择和全部取消

el-table实现全部选择和全部取消 其实非常简单&#xff0c;el-table自带的都有方法toggleAllSelection()和clearSelection() 具体代码如下&#xff1a; <el-button typesuccess clickcheckAll sizesmall>全选</el-button> <el-button typesuccess clickcancel…

【苍穹外卖】——day3

文章目录 公共字段自动填充一、新增菜品二、菜品分页查询三、删除菜品分类四、修改菜品接口总结 公共字段自动填充 create_time,create_user,update_time,update_user这四个字段自动填充 步骤&#xff1a; 自定义注解AutoFill&#xff0c;用于标识需要进行公共字段自动填充的方…

设置python下载包代理

使用场景 正常网络情况下我们安装如果比较多的python包时&#xff0c;会选择使用pip install -r requirements.txt -i https://pypi.douban.com/simple --trusted-hostpypi.douban.com这种国内的镜像来加快下载速度。 但是&#xff0c;当这台被限制上网时&#xff08;公司安全…

基于ROPNet项目训练modelnet40数据集进行3d点云的配置

项目地址&#xff1a; https://github.com/zhulf0804/ROPNet 在 MVP Registration Challenge (ICCV Workshop 2021)&#xff08;ICCV Workshop 2021&#xff09;中获得了第二名。项目可以在win10环境下运行。 论文地址&#xff1a; https://arxiv.org/abs/2107.02583 网络简介…

【PID学习笔记 6 】控制系统的性能指标之二

写在前面 上文介绍了控制系统的稳态与动态、过渡过程、阶跃响应以及阶跃信号作用下过渡过程的四种形式。本文紧接上文&#xff0c;首先总结过渡过程的分类&#xff0c;然后介绍控制系统的性能评价&#xff0c;最后重点介绍控制系统性能指标中的单项指标。 一、过渡过程的分类…

int(1)和int(10)之间的区别

在Java编程语言中&#xff0c;int(1)和int(10)之间的区别主要在于它们的初始化值和类型。以下是详细的技术文档&#xff1a; 初始化值&#xff1a; int(1)表示将整数1赋值给变量&#xff0c;而int(10)表示将整数10赋值给变量。这意味着它们的初始化值不同&#xff0c;分别为1和…

Unity资源路径与读取

Unity资源路径有&#xff1a; 1、StreamingAssets&#xff1a;只读&#xff0c;一般用于存放应用程序运行时需要加载的资源文件&#xff0c;可以通过Application.streamingAssetsPath来获取。 2、PersistentDataPath&#xff1a;可读写&#xff0c;一般用于存放应用程序运行时…

java版微信小程序商城免费搭建 java版直播商城平台规划及常见的营销模式有哪些?电商源码/小程序/三级分销

涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …

解密IIS服务器API跨域问题的终极解决方案

在当今数字化时代&#xff0c;API已成为现代应用程序的核心组件。然而&#xff0c;当你使用IIS&#xff08;Internet Information Services&#xff09;服务器提供API时&#xff0c;你可能会遇到一个常见的挑战&#xff1a;API跨域问题。这个问题经常困扰着开发人员&#xff0c…

CMake中的CPack

2023年12月5日&#xff0c;周二晚上 CPack 是 CMake 的一个组件&#xff0c;用于创建跨平台的软件包。它允许您在构建项目时自动创建安装程序或打包文件&#xff0c;以便在不同的平台上分发和部署您的软件。 CPack 提供了一种简单的方法来生成各种不同类型的软件包&#xff0c…

【Python3】【力扣题】383. 赎金信

【力扣题】题目描述&#xff1a; 题解&#xff1a; 两个字符串ransomNote和magazine&#xff0c;ransomNote中每个字母都在magazine中一一对应&#xff08;顺序可以不同&#xff09;。 即分别统计两个字符串中每个字母出现的次数&#xff0c;ransomNote中每个字母的个数小于等…

大数据面试总结

1、冒泡排序、选择排序 2、二分查找 3、 hashmap和hashtable的区别&#xff1f;hashmap的底层实现原理&#xff1f; a、hashtable和hashmap的区别&#xff1a; 1、hashtable是线程安全的&#xff0c;会在每一个方法中都添加方法synchronize&#xff08;同步机制&#xff09…

Shell脚本按行读取文件并逐行输出

Shell脚本按行读取文件并逐行输出 #!/bin/bash# 提示用户输入文件路径 echo "请输入文件路径&#xff1a;" read file_path# 检查文件是否存在 if [ ! -f "$file_path" ]; thenecho "文件不存在或不是一个普通文件"exit 1 fi# 逐行读取文件并输…

状态空间的定义

状态空间是描述一个系统所有可能状态的集合。在系统理论、控制论、计算机科学、强化学习等领域&#xff0c;状态空间是一种常见的概念。 状态空间框架是一种用于描述和分析系统的方法&#xff0c;它包括系统的状态、状态之间的转移关系以及与状态相关的行为。下面详细解释状态…

广域网(WAN)设备通信过程(通信流程、通信步骤、通信顺序、设备通信、主机通信)(MAC地址在本地链路中的作用)跳跃(hop)

文章目录 广域网&#xff08;WAN&#xff09;通信&#xff1a;MAC地址在本地链路中的作用引言MAC地址概述什么是MAC地址&#xff1f;如何工作&#xff1f; MAC地址与广域网MAC地址的局限性IP地址和路由 广域网设备通信过程1. 请求生成2. 封装数据帧3. 确定下一跳4. 数据传输5. …

聚观早报 |国行PS5轻薄版开售;岚图汽车11月交付7006辆

【聚观365】12月2日消息 国行PS5轻薄版开售 岚图汽车11月交付7006辆 比亚迪推出12月限时优惠 特斯拉正式交付首批Cybertruck 昆仑万维发布「天工 SkyAgents」平台 国行PS5轻薄版开售 索尼最新的PlayStation5主机&#xff08;CFI-2000型号组-轻薄版&#xff09;国行版本正…

CoreDNS实战(八)-递归服务器

本文主要用于介绍CoreDNS实现递归服务器的几种方式以及在生产环境中遇到的一些问题和解决方案。 在开始之前我们需要知道一些关于CoreDNS的基本知识&#xff1a;CoreDNS本身是没有能力作为一个递归查询的DNS服务器&#xff08;Recursive DNS&#xff09;&#xff0c;但是它有着…