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

创建监控图形

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

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

相关推荐
成都古河云1 小时前
智慧场馆:安全、节能与智能化管理的未来
大数据·运维·人工智能·安全·智慧城市
算法与编程之美1 小时前
文件的写入与读取
linux·运维·服务器
长弓三石1 小时前
鸿蒙网络编程系列44-仓颉版HttpRequest上传文件示例
前端·网络·华为·harmonyos·鸿蒙
xianwu5431 小时前
反向代理模块
linux·开发语言·网络·git
follycat1 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全
Amelio_Ming1 小时前
Permissions 0755 for ‘/etc/ssh/ssh_host_rsa_key‘ are too open.问题解决
linux·运维·ssh
心灵彼岸-诗和远方1 小时前
Devops业务价值流:软件研发最佳实践
运维·产品经理·devops
JuiceFS2 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生
xiaoxiongip6662 小时前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
Ven%2 小时前
centos查看硬盘资源使用情况命令大全
linux·运维·centos