网络运维与网络安全 学习笔记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)

相关推荐
孙克旭_23 分钟前
day051-ansible循环、判断与jinja2模板
linux·运维·服务器·网络·ansible
总有刁民想爱朕ha1 小时前
零基础搭建监控系统:Grafana+InfluxDB 保姆级教程,5分钟可视化服务器性能!
运维·服务器·grafana
Mr_Orangechen1 小时前
Linux 下使用 VS Code 远程 GDB 调试 ARM 程序
linux·运维·arm开发
悟空胆好小1 小时前
分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
网络·人工智能·科技·嵌入式硬件
撰卢2 小时前
【个人笔记】负载均衡
运维·笔记·负载均衡
lilian1292 小时前
linux系统mysql性能优化
linux·运维·mysql
ssswywywht3 小时前
OSPF实验
网络
FCM663 小时前
HCIA第一次实验报告:静态路由综合实验
网络·tcp/ip·信息与通信
apihz3 小时前
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
android·服务器·开发语言·网络·数据库·网络协议·tcp/ip
weixin_516023073 小时前
Geant4 安装---Ubuntu
linux·运维·ubuntu