网络运维与网络安全 学习笔记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 \ //针对特定目录 Options -Indexes //添加-号表示禁用此项功能 \[root@svr203\~\]# systemctl restart httpd //重启服务 ### 网络监控基础 **开源监控方案** 拥有集成化、自动化、Web管理等优势 监控结果直观、支持报警插件 ... ... **zabbix体系架构** 采集数据 展示结果 触发告警 ![在这里插入图片描述](https://file.jishuzhan.net/article/1733670351285522433/0ce5f44bb540dbaa5b5f0f8d263d2128.webp) **准备网站、数据库支持** 一台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 ![在这里插入图片描述](https://file.jishuzhan.net/article/1733670351285522433/cd278b6d7aa7808850f500fabb69791b.webp) **创建监控图形** 选中被监控主机→图形→创建图形 比如"网卡流量分析"图,整合入站/出站流量监控项 ![在这里插入图片描述](https://file.jishuzhan.net/article/1733670351285522433/0405b95a6f4b508ae5ba2dc1d2c77fe6.webp)

相关推荐
一心0922 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上2 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊2 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
代码老y3 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程3 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
你想考研啊5 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks6 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
饥饿的半导体7 小时前
Linux快速入门
linux·运维
Me4神秘7 小时前
电信、移动、联通、广电跨运营商网速慢原因
网络
数通Dinner8 小时前
RSTP 拓扑收敛机制
网络·网络协议·tcp/ip·算法·信息与通信