系统荟萃全方面的知识,培养良好安全意识,系统学习后台服务的部署、备份、监控、告警、恢复等运维工作。

运维安全概念

什么是运维安全

随着IT技术和业务的发展及各式各样安全漏洞的涌现,运维与安全这两个专业日渐交融,人们对运维安全的重视程度越来越高,于是逐渐出现了一个新的交叉领域叫“运维安全”。

业务、运维、安全相辅相成。互联网企业一般以业务为中心,运维和安全是业务的保障。


http://video.twosecurity.cn/bmxxck46464231/1.1%20%E4%BB%80%E4%B9%88%E6%98%AF%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/83478900_1568944199.png

运维安全的工作内容

运维安全与安全运维有什么区别?


http://video.twosecurity.cn/bmxxck46464231/1.2%20%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%86%85%E5%AE%B9.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/26689500_1568944200.png


运维安全偏重于运维,比如 DDoS 攻击,操作系统,应用版本的漏洞。
安全运维对安全系统、防火墙、漏洞扫描器等安全系统的维护,还有漏洞的挖掘和应急响应的工作等,属于安全工程师的范畴。
趋势:趋于融合,差别越来越小。

运维安全在企业中扮演的角色及重要性



http://video.twosecurity.cn/bmxxck46464231/1.3%20%E8%A7%92%E8%89%B2%E5%8F%8A%E9%87%8D%E8%A6%81%E6%80%A7.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/49920000_1568944200.png

运维安全是保障企业安全的基石,不同于Web安全、移动安全或者业务安全,运维安全环节出现问题往往会比较严重。

防御是一个完整的面,而攻击者只需要一个切入点。所以要防住同一类型的攻击,需要投入的防御成本是巨大的。


https://www.zhihu.com/question/327262645/answer/701244262|什么是红蓝对抗?


运维安全由哪三部分组成?|开发|!业务|!运维|逻辑|!安全


技能和知识点

运维安全是企业安全保障的基石,不同于Web安全、移动安全或者业务安全,运维安全环节出现问题往往会比较严重。

所以运维安全往往涉及广泛且每个方面都可以深入学习。


http://video.twosecurity.cn/bmxxck46464231/2.%20%E6%8A%80%E8%83%BD%E5%92%8C%E7%9F%A5%E8%AF%86%E7%82%B9.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/67035600_1568944200.png

运维安全导图


了解了运维安全,以下说法正确的是()|运维安全就是运维+安全|运维安全人员只需要维护好服务器,保证正常运行就可以了|!培养安全意识很重要,弱口令的产生就是因为缺乏这方面|运维安全的主要工作就是出现漏洞问题后“填坑救火”

职业计划指导/发展路线

学习运维安全的一些见解、指引。



http://video.twosecurity.cn/bmxxck46464231/3.%20%E8%81%8C%E4%B8%9A%E8%A7%84%E5%88%92%E6%8C%87%E5%AF%BC.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/22945300_1568944201.png

技术型(乙方):

资深安全运维工程师
资深安全研究人员
安全架构师

管理型(甲方):

安全管理人员
推动安全方案落地实施
安全合规,等保建设

综合型:

追求自由,理想
人脉技术变现


默认端口11211上开放的服务器是|mysql|Docker|mongodb|!memcached


在Linux系统上,与用户管理相关的配置文件是()|/etc/rc.conf|/etc/shells|!/etc/group|/etc/password


纵深防御体系

纵深防御体系是目前大多数甲方公司使用的一种防御体系,本节课了解一下纵深防御体系的架构。


https://static.cdnjs.cloud/2020422_box/7d7e1e5eee136c16ede3e3346a4a678f_%E8%BE%B9%E7%95%8C2.mp4|视频封面图片链接


https://www.freebuf.com/column/195219.html|拓展资料:《企业安全纵深防御体系》


为什么需要自动化的安全检查?

利用自动化检测工具可以使日常的运维工作更加方便快捷,比如一些检测工具以及脚本之类的。


http://video.twosecurity.cn/qacj194489412/1.1%20%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E8%87%AA%E5%8A%A8%E5%8C%96%E7%9A%84%E5%AE%89%E5%85%A8%E6%A3%80%E6%9F%A5%EF%BC%9F.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/51105700_1570690623.jpg


自动化安全检查的过程


http://video.twosecurity.cn/qacj194489412/1.2%20%E8%87%AA%E5%8A%A8%E5%8C%96%E5%AE%89%E5%85%A8%E6%A3%80%E6%9F%A5%E7%9A%84%E6%B5%81%E7%A8%8B.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/81617400_1570690623.jpg

流程图

发展方向:精细化、体系化

演示操作

模拟实际情况下,进行漏洞扫描


http://video.twosecurity.cn/qacj194489412/1.3%20%E6%BC%94%E7%A4%BA%E6%93%8D%E4%BD%9C.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/41076600_1570690624.jpg

Nmap(网络映射器)是一种与来探测计算机网络上的主机和服务的安全扫描器。Nmap会发送特制的数据报到目标主机上,然后分析其返回的数据报,从而达到绘制网络拓扑图的效果。
Nmap是一款枚举和测试网络的强大工具,有主机探测、端口扫描、版本检测、系统检测以及支持探测脚本编写等功能。


Nmap安装

方法一


https://nmap.org/download.html#purpleheader|Nmap下载地址

我们讲一下Nmap的安装过程。先打开这个下载页面进行下载,下载地址如上。

Windows 用户找到「Microsoft Windows binaries」进行下载。

MacOS 用户找到「Mac OS X Binaries」这一栏进行下载。

安装步骤并不复杂,我们根据提示向导,点击下一步便可以进行安装。

安装完成之后我们打开命令提示符(cmd),输入nmap,如果可以看到nmap的帮助信息,说明已经安装成功了。

方法二

Nmap 的安装

CentOS系统通过yum安装
yum install nmap –y


http://www.nmap.com.cn/doc/manual.shtm|Nmap 学习手册

扫描网段主机及其端口开放情况

nmap –Pn 192.168.19.0/24(指定IP或者网段)











模拟内网安全扫描

模拟实际情况下,进行漏洞扫描


http://video.twosecurity.cn/qacj194489412/1.3%20%E6%BC%94%E7%A4%BA%E6%93%8D%E4%BD%9C.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/41076600_1570690624.jpg

Nmap(网络映射器)是一种与来探测计算机网络上的主机和服务的安全扫描器。Nmap会发送特制的数据报到目标主机上,然后分析其返回的数据报,从而达到绘制网络拓扑图的效果。
Nmap是一款枚举和测试网络的强大工具,有主机探测、端口扫描、版本检测、系统检测以及支持探测脚本编写等功能。


Nmap安装

方法一


https://nmap.org/download.html#purpleheader|Nmap下载地址

我们讲一下Nmap的安装过程。先打开这个下载页面进行下载,下载地址如上。

Windows 用户找到「Microsoft Windows binaries」进行下载。

MacOS 用户找到「Mac OS X Binaries」这一栏进行下载。

安装步骤并不复杂,我们根据提示向导,点击下一步便可以进行安装。

安装完成之后我们打开命令提示符(cmd),输入nmap,如果可以看到nmap的帮助信息,说明已经安装成功了。

方法二

Nmap 的安装

CentOS系统通过yum安装
yum install nmap –y


http://www.nmap.com.cn/doc/manual.shtm|Nmap 学习手册

扫描网段主机及其端口开放情况

nmap –Pn 192.168.19.0/24(指定IP或者网段)


Nmap参数|用法|作用+-sL|扫描指定列表中存活的主机+-sV|指定让Nmap进行服务版本扫描+-sU|指定使用UDP扫描方式确定目标主机的UDP端口状况+-sP|仅仅进行ping扫描,可以快速发现存活主机+-R|为所有目标解析域名,让Nmap对目标IP地址做反向域名解析



弱口令

没有严格和准确的定义,通常认为容易被别人猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此弱口令也是非常危险的。


http://video.twosecurity.cn/qacj194489412/2.%20%E5%BC%B1%E5%8F%A3%E4%BB%A4%E5%8F%8A%E6%A3%80%E6%B5%8B%E5%B7%A5%E5%85%B7Hydra.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/16942200_1570690626.jpg

Hydra 安装下载

Hydra是著名黑客组织thc的一款开源的暴力密码破解工具,支持多种网络服务的非常快速的网络登陆破解工具,是暴力破解中的神器。


http://github.com/vanhauser-thc/thc-hydra|Linux版下载地址


http://github.com/maaaaz/thc-hydra-windows|Windows版下载地址


http://resource.host.smartgslb.com/Hydra.zip|Hydra备用下载地址

Hydra用法

参数说明
-R继续从上一次进度接着破解
-S大写,采用SSL链接
-s
小写,可通过这个参数指定非默认端口
-l
指定破解的用户,对特定用户破解
-L
指定用户名字典
-p
小写,指定密码破解,少用,一般是采用密码字典
-P
大写,指定密码字典
-e
可选选项,n:空密码试探,s:使用指定用户和密码试探
-C
使用冒号分割格式,例如"登录名:密码"来代替-L/-P参数
-M
指定目标列表文件一行一条
-o
指定结果输出文件
-f在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t
同时运行的线程数,默认为16
-w
设置最大超时的时间,单位秒,默认是30s
-v/-V显示详细过程
server指定服务名,支持的服务和协议:telnet ftp pop3 http
-{head/get} http-{get/post}等等



https://github.com/vanhauser-thc/thc-hydra/blob/master/README.md|Hydra 学习手册

字典和密码化

使用 Hydra:

在目录下打开cmd命令行

使用命令:

./hydra.exe -l
-p


–v(选加,用于打印爆破过程)

./hydra.exe -L
-P



举例:

爆破ssh:


./hydra.exe -l root-p root 192.168.19.5 ssh

爆破mysql:


./hydra.exe -L username.txt -P password.txt 192.168.19.5 mysql



下列关于Hydra的理解错误的是()|它是一款爆破神器,可以对多种服务的账号和密码进行爆破,包括Web登录、数据库、SSH、FTP等服务|对某IP的mysql服务进行爆破的命令:hydra -L username.txt -P password.txt mysql://目标IP:mysql端口号|-S 采用SSL链接|!-R 放弃当前破解进度,重新开始破解



如何解决弱口令问题?


http://video.twosecurity.cn/qacj194489412/3.%20%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E5%BC%B1%E5%8F%A3%E4%BB%A4%E9%97%AE%E9%A2%98.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/51258400_1570690626.jpg

常见的技术手段

设置 windows 的域策略

Windows: 编辑组策略 > 计算机配置 > Windows设置 > 安全设置 > 账户策略 >密码策略

Linux口令强化策略

Linux:  /etc/login.defs

PASS_MAX_DAYS 60 设置密码最长使用天数
PASS_MIN_DAYS 2 设置密码最短使用天数

Linux:  /etc/security/pwquality.conf

minlen = 9 (设置密码最小长度)
minclass = 2 (设置密码所需的最少字符类数)
maxrepeat = 2 (设置密码允许最大连续相同字符的出现次数)
lcredit = -1 (新密码至少包含一个小写字母)
ucredit = -1(新密码至少包含一个大写字母)
dcredit = -1 新密码至少包含一个数字
ocredit = -1 新密码至少包含一个其他字符

采用更高强度的动态口令形式



https://github.com/HyperSine/forensic-qqtoken?from=groupmessage&isappinstalled=0|qq手机令牌动态口令生成算法


https://www.jianshu.com/p/083cf462fed4|gitlab集成LDAP



端口安全

端口的安全检测及攻击

端口和服务是密不可分的,数据将通过端口进行传输。


http://video.twosecurity.cn/qacj194489412/4.1%20%E7%AB%AF%E5%8F%A3%E7%9A%84%E5%AE%89%E5%85%A8%E6%A3%80%E6%B5%8B%E5%8F%8A%E6%94%BB%E5%87%BB.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/118000_1570690627.jpg


https://www.cvedetails.com/cve/CVE-2019-0708/|拓展学习:CVE-2019-0708

漏洞简介:

Windows系列服务器于2019年5月15号,被爆出高危漏洞,该漏洞影响范围较广,漏洞利用方式是通过远程桌面端口3389,RDP协议进行攻击的。这个漏洞危害严重性很大,威胁跟之前的勒索,永恒之蓝病毒差不多。

影响系统:windows2003、windows2008、windows2008 R2、windows xp 、win7

如何解决端口安全问题


http://video.twosecurity.cn/qacj194489412/4.2%20%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E7%AB%AF%E5%8F%A3%E5%AE%89%E5%85%A8%E9%97%AE%E9%A2%98.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/30991400_1570690627.jpg




常用端口知多少|服务|端口号+www代理|8080+远程Who ls查询|4321+Mysql|3306+Windows 2000终端开放端口|3389+FTP文件传输协议(默认数据口)|20+SSH远程登陆协议|22


防火墙分类及工作原理



http://video.twosecurity.cn/zpqhf149741263/1.1%20%E9%98%B2%E7%81%AB%E5%A2%99%E5%88%86%E7%B1%BB%E5%8F%8A%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/16215100_1568866802.jpg

防火墙简单分类

软件防火墙简单的工作原理

iptables



http://video.twosecurity.cn/zpqhf149741263/1.2%20iptables.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/46213900_1568885753.jpg

iptables结构

iptables 四张内建表(优先级从高到低)

raw高级功能,如:网址过滤
mangle数据包修改(QOS),用于实现服务质量
nat地址转换,用于网关路由器、nat地址转换
filter包过滤,用于防火墙拦截规则、过滤数据包

内建表的链

chains的概念

  1. prerouting:进入netfilter后的数据包在进入路由判断前执行的规则。改变包。
  2. Input:当经过路由判断后,要进入本机的数据包执行的规则。
  3. output:由本机产生,需向外发的数据包执行的规则。
  4. forward:经过路由判断后,目的地不是本机的数据包执行的规则。与nat 和 mangle表相关联很高,与本机没有关联。
  5. postrouting:经过路由判断后,发送到网卡接口前。即数据包准备离开netfilter时执行的规则。

数据包如何通过 iptables



包拦截与放行

拒绝所有访问 80 端口的数据包
iptables -A INPUT -p tcp --dport 80 -j DROP

允许 192.168.19.1 访问 80 端口的数据包
iptables -I INPUT -p tcp -s 192.168.19.1 --dport 80 -j ACCEPT

仅允许 192.168.19.1 访问80端口的数据包

允许整个网段访问
iptables -I INPUT -p tcp -s 192.168.19.1/24 --dport 80 -j ACCEPT

iptables参数

-P设置默认策略
-F清空规则链
-L查看规则链
-A在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除某一条规则
-s匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。
-d匹配目标地址
-i网卡名称 匹配从这块网卡流入的数据
-o网卡名称 匹配从这块网卡流出的数据
-p匹配协议,如tcp,udp,icmp
--dport num匹配目标端口号
--sport num匹配来源端口号

iptables -m 参数说明


视频链接,mp4格式|视频封面图片链接

-m  state
 




https://twosecurity-course.oss-cn-beijing.aliyuncs.com/%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4/iptables%20-m%20state%E8%AF%A6%E8%A7%A3.pdf|iptable -m state 详解


在Linux操作系统中,可以通过iptables命令来配置内核中集成的防火墙。若在配置脚本中添加iptables命令:$IPT-t nat-A PREROUTING -p top-s 0/0-d 61.129.3.88--dport 80-j DNAT--to-dest 192.168.0.18其作用是|!将对61.129.3.88的80端口的访问转发到内网的192.168.0.18主机上|将对192.168.0.18的80端口的访问拦截,并转发到内网的61.129.3.88主机上|将192.168.0.18的80端口映射到内网的61.129.3.88的80端口|禁止对61.129.3.88的80端口的访问




iptables 运维问题

在运维安全中,iptables会出现各种各样的问题。



http://video.twosecurity.cn/zpqhf149741263/2.%20iptables%20%E8%BF%90%E7%BB%B4%E9%97%AE%E9%A2%98.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/98576000_1568864893.jpg

1. 规则配置后未保存,导致iptables重启后失效


service iptables save

vi /etc/sysconfig/iptables

2. 为了方便测试,暂时清空iptables 规则,但是测试完成后忘记及时恢复


iptables -F

3. 测试时直接关闭防火墙,测试完成后忘记启动

处理办法:

1. 利用cron定时检查规则变化情况
2. 加强运维人员安全意识

检查 iptables 规则变化的脚本


!/bin/bash

if
; then

    #将iptables规则转换成md5值做对比

    iptables -L -n|md5sum|awk ‘{print $1}’ >~/.checkcode

    exit

else
     iptables -L -n|md5sum|awk '{print $1}' >~/.recheckcode

     checksum=`diff ~/.recheckcode~/.checkcode|wc -l`
     
     if
then

        echo "`date` iptables is unchanged."

        sleep 1

        rm -f ~/.recheckcode
     else
        echo "`date` iptables has been changed!"

        cat ~/.recheckcode>~/.checkcode

        sleep 1

        rm -f ~/.recheckcode

     fi
fi



通过添加规则,允许通往192.168.0.2的SSH连接通过防火墙的 iptables 的指令是|iptables –F INPUT –d 192.168.0.2 –p tcp – -dport 22 –j ACCEPT|iptables –F FORWARD –d 192.168.0.2 –p tcp –-dport 23 –j ACCEPT|iptables –A INPUT –d 192.168.0.2 –p tcp –-dport 23 –j ACCEPT|!iptables –A FORWARD –d 192.168.0.2 –p tcp – -dport 22 –j ACCEPT


端口映射问题

使用iptables解决运维安全中的问题



http://video.twosecurity.cn/zpqhf149741263/3.%20%E7%AB%AF%E5%8F%A3%E6%98%A0%E5%B0%84%E9%97%AE%E9%A2%98.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/29938500_1568864894.jpg

环境介绍

Centos6
WLAN    Eth1: 192.168.19.131
LAN       Eth2:  10.2.0.129

规则配置


#打开linux的转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward

#DNAT映射
#将内网 10.2.0.129 的80端口转发到 192.168.19.131 的80端口上
iptables -t nat -A PREROUTING -d 192.168.19.131 -p tcp --dport 80 -j DNAT --to  10.2.0.129:80

解决办法

1. 对于使用多网卡、可以访问互联网的内网的机器,做好资产统计,严格监控
2. 通过iptables日志或系统操作日志进行审计

如何配置日志


#编辑 /etc/rsyslog.conf,添加一行:
kern.*     /var/log/iptables.log

#开启nat表的日志记录功能,可以指定dst_ip 和 端口等等
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 80 -j LOG  --log-level info  --log-prefix  "iptables_PREROUTING"

#重启服务
service iptables reload   && service rsyslog restart



关于端口映射命令的解释错误的是|iptables -t nat -A PREROUTING -d 183.x.x.x -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.132.35.1:22 # 本机公网IP端口2222,转发到10.132.35.1的22号端口上|echo “1” >/proc/sys/net/ipv4/ip_forward # 开启转发|!iptables -t nat -A POSTROUTING -d 10.132.35.1 -p tcp -m tcp --dport 22 -j MASQUERADE # 清除10.132.35.1的所有端口映射|iptables -t nat -A POSTROUTING -d 10.132.35.1 -p tcp -m tcp --dport 22 -j SNAT --to-source 183.x.x.x # 内网10.132.32.1端口22转发出去,回源




Docker 穿透 ufw

运行一个实例时,将宿主机的一个端口映射到docker的一个实例,也就是使用-p 8080:80命令运行后,端口是能在宿主机上直接访问,但是在本地居然也能访问服务器上的8080端口号,本来通过ufw把8080禁止的,由于docker直接在iptables上进行修改,ufw的设置对它没有作用。



http://video.twosecurity.cn/zpqhf149741263/4.%20Docker%20%E7%A9%BF%E9%80%8F%20ufw.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/62825000_1568864894.jpg

默认情况下,Docker deamon 会在启动 container 时,向 iptables 中添加转发的规则。

解决办法


#修改配置文件/etc/docker/daemon.json
vim /etc/docker/daemon.json
----
{
 "iptables": false
}

----
重启docker



iptables表链对应|表|链+raw|PREROUTING,OUTPUT+mangle|PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING+nat|PREROUTING,INPUT,OUTPUT,POSTROUTING+tilter|INPUT,FORWARD,OUTPUT





主机安全建设

主机服务安全分为两部分,主机安全与服务安全。

主机安全,其核心内容包括安全应用交付系统、应用监管系统、操作系统安全增强系统和运维安全管控系统。它的具体功能是指保证主机在数据存储和处理的保密性、完整性,可用性,它包括硬件、固件、系统软件的自身安全,以及一系列附加的安全技术和安全管理措施,从而建立一个完整的主机安全保护环境。


http://video.twosecurity.cn/qawfjz194421554/1.%20%E4%B8%BB%E6%9C%BA%E5%AE%89%E5%85%A8%E5%BB%BA%E8%AE%BE.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/91144500_1568893206.jpg


等保2.0中的主机安全部分:

身份鉴别(S3)
访问控制(S3)
安全审计(G3)
剩余信息保护(S3)
入侵防范(G3)
恶意代码防范(G3)
资源控制(A3)


https://twosecurity-course.oss-cn-beijing.aliyuncs.com/%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4/%E3%80%8A%E7%BD%91%E7%BB%9C%E5%AE%89%E5%85%A8%E7%AD%89%E7%BA%A7%E4%BF%9D%E6%8A%A4%E5%9F%BA%E6%9C%AC%E8%A6%81%E6%B1%82%E3%80%8B.pdf|pdf文字


入侵防范(G3):

互联网公司发展阶段

互联网公司发展的特点:

主机安全防御的两种思路:


主机系统加固

1:账号口令安全
2:系统服务安全
3:网络服务安全
4:文件系统安全
5:日志审计


关于主机安全的说法,正确的是|!主动防御就是主动加固系统,填补漏洞|系统日志不需要进行日常的审计|等保中没有对于主机安全的要求|主机安全建设就是维持发现漏洞填补漏洞的工作








基线配置管理

为什么要做基线配置管理?

一个公司在不同的时期部署了不同的业务系统,承载业务系统的是不同的操作系统和支持系统。业务系统在运行期间,基本上很少做操作系统的升级或变更。然后由于不同供应商的支持原因,导致现存的操作系统和应用版本跨度很广,安全人员或运维人员资源不够的情况下很难支持做基线配置工作。

对公司的运维和安全人员来说,如果运行的业务系统一直不出事,是想不到要做基线配置、升级补丁、修复漏洞这些事情的,考虑做基线管理,通常来自于3个原因:

做好基线配置和加固是安全运维工作中很基础的工作,却跟很多安全事件有着紧密关系,如登录策略未配置好导致账号可以爆破、敏感信息泄露、默认口令、开启了含有漏洞服务的端口。

做好基础的基线管理和系统加固可以在很多突发安全漏洞情况有足够的响应处理时间。



http://video.twosecurity.cn/qawfjz194421554/2.%20%E5%9F%BA%E7%BA%BF%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/55605500_1568893207.jpg


如何展开基线配置管理?

1. 建立基线配置管理规划

在了解组织现有资产情况(负责人是谁?现在运行的操作系统是什么版本,支持系统是什么版本?供应商是谁?是否还有开发或外包开发支持等)。同业务、开发、运维一起讨论制定合理的版本统一化建议,对统一化的时间达成一致的共识,并寻求最高管理层的支持。

2. 定制基础操作系统镜像

基础镜像包括选择那个版本的操作系统、如何进行分区,如何最小化安装,如何部署必须的工具软件(如杀毒,主机入侵检测、运维系统Agent等),统一做好的基础操作系统镜像分发给开发作为基础的定制开发环境。

3. 制定基线配置模板

基线配置模板可以包含运维和安全2个部分,运维部分如性能相关配置、稳定性相关配置、个性化配置。同一个应用(Tomcat、IIS、Apache等)可以做成一个统一的配置模板由SaltStack、Puppet进行分发。同时也可以做一份标准化配置脚本,在部分能分发的情况下也能统一基线配置。 如何展开基线配置管理



http://netinfo-security.org/article/2019/1671-1122-19-2-77.html|参考等保 2.0(公安部的标准解读)


https://learn.cisecurity.org/benchmarks|参考CIS




关于基线配置不正确的是|基线配置模板可以包含运维和安全2个部分,运维部分如性能相关配置、稳定性相关配置、个性化配置|!基线配置一次就无需修订,可持续使用|需要定制基础操作系统镜像,作为基础的定制开发环境|基线配置也需要跟上技术趋势,如 Docker 中配置安全的镜像,Dockerfile 的安全配置。






账号口令安全基础篇

帐号口令就如同堡垒的门钥匙,再坚固的堡垒配上一把劣质的锁都是于事无补。


http://video.twosecurity.cn/qawfjz194421554/3.1%20%E8%B4%A6%E5%8F%B7%E5%8F%A3%E4%BB%A4%E5%AE%89%E5%85%A8%EF%BC%88%E5%9F%BA%E7%A1%80%E7%AF%87%EF%BC%89.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/97955700_1568893207.jpg


检查点1

是否存在特权账户(/etc/passwd中存在uid为0的非root账户)
加固方法: 如果存在特权账户, 则需要删除此账户。

检查点2

是否存在空口令账户(/etc/shadow中密码字段为空的账户)
加固方法: 如果存在口口令账户, 判断此账户是否属于合法账户。对账户设置密码或者删除此账户。

检查点3

密码最小长度(/etc/login.defs中PASS_MIN_LEN的值)
加固方法: 推荐为8位, 如果小于8则修改为大于8的数值。

检查点4

UMASK值(/etc/login.defs中UMASK值是否为077)
加固方法: 修改/etc/login.defs中UMASK值为077

检查点5

用户UMASK值(/etc/profile中第一个umask值是否为027)
加固方法: 修改/etc/profile中第一个umask值为027  750

检查点6

BASH UMASK值(/etc/bashrc中第一个umask值是否为027)
加固方法: 修改/etc/bashrc中第一个umask值为027


账号口令安全高级篇


http://video.twosecurity.cn/qawfjz194421554/3.2%20%E8%B4%A6%E5%8F%B7%E5%8F%A3%E4%BB%A4%E5%AE%89%E5%85%A8%EF%BC%88%E9%AB%98%E7%BA%A7%E7%AF%87%EF%BC%89.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/34061800_1568893208.jpg

检查点1

是否配置密码复杂度策略(/etc/pam.d/system-auth是否配置pam_cracklib规则)

加固方法:


编辑/etc/pam.d/system-auth

在 "password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok" 前

添加

"password requisite pam_cracklib.so try_first_pass retry=5 type= minlen=10 ucredit=2 dcredit=-1 ocredit=-1"

检查点2

是否配置密码锁定策略(/etc/pam.d/system-auth是否配置pam_tally或者pam_tally2规则)

加固方法:


编辑/etc/pam.d/system-auth

在" auth        sufficient    pam_unix.so nullok try_first_pass" 前

添加

" auth        required      pam_tally2.so onerr=fail deny=3 even_deny_root unlock_time=30"

这里使用的是 pam_tally2 模块,如果不支持pam_tally2,可以使用pam_tally模块。 另外,不同的pam版本,设置可能有所不同,具体使用方法,可以参照相关模块的使用规则。


拓展学习:linux权限解释

一般权限

左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:

下面举例说明:

-rwx------: 文件所有者对文件具有读取、写入和执行的权限。
-rwxr―r--: 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
-rw-rw-r-x: 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
drwx--x--x: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。
drwx------: 除了目录所有者具有完整的权限之外,其他用户对该目录完全没有任何权限。


每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx------:表示目录所有者本身具有所有权限,其他用户无法进入该目录。

执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。此外,默认的权限可用umask命令修改,用法非常简单,只需执行umask 777 命令,便代表屏蔽所有的权限,因而之后建立的文件或目录,其权限都变成000,依次类推。

通常root帐号搭配umask命令的数值为022、027和 077,普通用户则是采用002,这样所产生的权限依次为755、750、700、775。

用户登录系统时,用户环境就会自动执行rmask命令来决定文件、目录的默认权限。

特殊权限

其实文件还有所谓的特殊权限。由于特殊权限会拥有一些“特权”,因而用户若无特殊需求,不应该启用这些权限,避免安全方面出现严重漏洞,造成黑客入侵,甚至摧毁系统。

因为SUID、SGID、Sticky占用x的位置来表示,所以在表示上会有大小写之分。加入同时开启执行权限和SUID、SGID、Sticky,则权限表示字符是小写的;如果关闭执行权限,则表示字符会变成大写。


权限值说明

文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。

字符对应值
r4
w2
x1
-0

数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100再将其每三位转换成为一个十进制数,就是754。

例如,我们想让a.txt这个文件的权限为:


自己同组用户其他用户
可读

可写


可执行



那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我们执行命令:



chmod 664 a.txt

按照上面的规则,rwx合起来就是4+2+1=7,一个rwx-rwx-rwx权限全开放的文件,数值表示为777;而完全不开放权限的文件“---------”其数字表示为000。

下面举几个例子:

rwx------:等于数字表示700
rwxr―r--:等于数字表示744
rw-rw-r-x:等于数字表示
665drwx―x―x:等于数字表示
711drwx------:等于数字表示700


有关linux文件权限正确的是()|644 rw-rw-rw-|666 rwxr--r--|!700 rwx------|744 rwxr-xr-x|755 rw-r--r--





系统服务安全

系统服务常用的是:SSH、防火墙等基础的系统服务。



http://video.twosecurity.cn/qawfjz194421554/4.%20%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/67866000_1568893208.jpg

SSHD

不仅仅是远程链接协议或工具

检查点1

SSHD默认端口(/etc/ssh/sshd_config中Port数值)
加固方法:推荐非22默认端口, 编辑sshd配置添加 Port NUM

检查点2

SSHD是否允许root远程登陆(sshd配置PermitRootLogin数值)
加固方法:建议禁止root远程登陆, 编辑sshd配置添加 PermitRootLogin no

检查点3

SSHD是否允许TCP转发(sshd配置AllowTcpForwarding数值)
加固方法:建议禁止TCP转发, 编辑sshd配置添加 AllowTcpForwarding no

检查点4

SSHD是否开启网关端口(sshd配置GatewayPorts数值)
加固方法:建议禁止网关端口, 编辑sshd配置添加 GatewayPorts no

配置生效:


sshd -t #无错误后

service sshd restart #重启sshd服务


https://twosecurity-course.oss-cn-beijing.aliyuncs.com/%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4/ssh%E9%9A%A7%E9%81%93%E8%AF%A6%E8%A7%A3.pdf|SSH隧道详解


防火墙

检查点:  检测系统是否开启防火墙
加固方法:建议开启防火墙并配置相应的防火墙策略

系统文件权限

检查点:  检测系统是否存在任意可写的文件或目录
加固方法:修改文件/目录的权限

漏洞检测

检查点1:是否存在bash破壳漏洞
加固方法:若存在bash破壳漏洞,则需要更新bash版本,yum update bash

检查点2:是否存在心脏滴血漏洞
加固方法:若存在心脏滴血漏洞,则需要更新openssl版本,yum update openssl

bash 破壳漏洞



env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
打印出: vulnerable  /  this is a test

心脏滴血漏洞


rpm -q --changelog openssl |grep CVE-2014-0160

网络服务加固

Apache 安全加固
IIS 安全加固
Nginx 安全加固
Tomcat 安全加固
php 安全加固
Mysql 安全加固
Sqlserver 安全加固

日志审计



ssh服务器端的默认配置文件是|!/etc/sshd/sshd_config|/etc/sshd/ssh_config|/etc/ssh/ssh.conf|/etc/ssh/SSHD-conf







windows主机加固


视频链接,mp4格式|视频封面图片链接

帐号管理,认证授权

口令,账户,授权

口令:


注意:不宜实施,管理帐号网络登陆锁定后影响维护工作。MISC的windows主机没有向外网开放接口。

帐户:

授权:

日志监控配置

日志监控,转发

配置:

其他安全配置

列出系统服务的列表,检查有无可疑项
关闭Windows自动播放功能
补丁自动更新
屏幕保护
防病毒
……

IP协议安全配置:

对没有自带防火墙的Windows系统,启用Windows系统的IP安全机制(IPSec)或网络连接上的TCP/IP筛选,只开放业务所需要的TCP,UDP端口和IP协议。

启用Windows XP和Windows 2003 自带防火墙。根据业务需要限定允许访问网络的应用程序,和允许远程登陆该设备的IP地址范围。

启用SYN攻击保护;指定触发SYN洪水攻击保护所必须超过的TCP连接请求数阀值为5;指定处于 SYN_RCVD 状态的 TCP 连接数的阈值为500;指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值为400。

其他配置:





以下关于Windows系统加固,正确的是|无需关闭未使用的服务|不用禁用guest帐号|!安装防病毒软件并更新|IIS服务经常使用,无需升级到最新补丁





日志审计

对服务器日常产生的日志进行审计

收集->存储->审计



http://video.twosecurity.cn/qawfjz194421554/6.1%20%E6%97%A5%E5%BF%97%E5%AE%A1%E8%AE%A1%E6%A6%82%E5%86%B5.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/55241900_1568893209.jpg

日志的收集

Linux


rsyslog/syslog + audit

windows


nxlog + sysmon

日志的汇总和存储

日志的审计

制定审计规则


有关日志审计说法错误的是|!日志审计无法找出攻击者的攻击手法,没有任何作用|日志审计可以帮助我们发现异常访问|借助工具帮助我们审计可以大大提高审计效率|日志审计有很多种类型



Linux 日志审计

日志作用可用于排障和追溯审计等


http://video.twosecurity.cn/qawfjz194421554/6.2%20Linux%20%E6%97%A5%E5%BF%97%E5%AE%A1%E8%AE%A1.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/87997700_1568893209.jpg

rsyslog/syslog 服务

rsyslog是类unix系统上使用的一个开源工具,用于实现系统日志的集中管理。

rsyslog 支持UDP\TCP\RELP协议传输
日志信息过滤功能
自定义化的模板格式输出

audit服务

linux内置的内核审计模块,记录系统中的各种动作和事件,比如系统调用,文件修改,执行的程序,系统登入登出和记录所有系统中所有的事件,为管理员提供系统审计。

linux的日志优先级

debug

调试信息,日志通信最多

info 

一般信息日志,最常用

notice

最具有重要性的普通条件的信息
warning

警告级别

err

错误级别,阻止某个功能或者模块不能正常工作的信息

crit

严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert

需要立刻修改的信息

emerg

内核崩溃等重要信息

Linux 常见的日志类型


http://video.twosecurity.cn/qawfjz194421554/6.3%20Linux%20%E5%B8%B8%E8%A7%81%E7%9A%84%E6%97%A5%E5%BF%97%E7%B1%BB%E5%9E%8B.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/20924700_1568893210.jpg


rsyslog

配置文件:/etc/rsyslog.conf


kern.*;auth.*;authpriv.* @server_ip:port

接收日志


$ModLoad imudp

$UDPServerRun 514

audit服务

修改配置文件 /etc/audisp/plugins.d/syslog.conf


active = yes

args = LOG_LOCAL5 LOG_DEBUG




linux日志审计排序|序号|操作+1|安装sudo命令,syslog服务+2|配置/etc/sudoers+3|配置系统日志/etc/syslog.conf+4|重启syslog 内核日志记录器+5|测试sudo 日志审计配置结果










Windows 日志审计


http://video.twosecurity.cn/qawfjz194421554/6.4%20Windows%20%E6%97%A5%E5%BF%97%E5%AE%A1%E8%AE%A1.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/61735900_1568893210.jpg

nxlog 服务

nxlog是windows系统下的一个日志收集转发的工具,可以处理来自许多不同来源的大量事件日志。nxlog可以配置模块化架构对日志的输入,输出,进行处理。并且可以支持多种存储格式的转发。

sysmon 服务

Sysmon是一款轻量级的系统监控工具,通过收集使用Windows事件集合或SIEM代理生成的事件,然后分析它们,您可以识别恶意或异常活动,并了解入侵者和恶意软件在您的网络上如何操作。

nxlog 配置文件:C:\Program Files (x86)\nxlog\conf


<Extension _syslog>

     Module      xm_syslog 收集事件日志,所有的事件日志默认都被收集

</Extension>

<Input in> #配置日志源

     Module      im_msvistalog #winserver2008及以上

#   Module      im_mseventlog winserver2003及以下

</Input>

<Output out> #配置日志转发

    Module      om_tcp #使用tcp模式转发

    Host         192.168.200.29 #日志服务器的 IP


    Port          514 #日志服务器接收端口

    Exec         to_syslog_snare(); #输出到syslog服务

</Output>

<Route 1>

     Path        in => out #源输入对应输出

</Route>

自定义需要保存的事件日志种类


<Input in> 配置input

Module      im_msvistalog

#  For windows 2003 and earlier use the following:

#  Module      im_mseventlog

     ReadFromLast FALSE

     SavePos     

     FALSE

     Query       <QueryList>\

                        <Query Id="0">\

                            <Select Path="Security">*</Select>\ #配置为只发送Security Log

                        </Query>\

                    </QueryList>
</Input>

重启 nxlog 服务:

cmd 输入services.msc 找到nxlog,重新启动

日志存储,检索




https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-defining_audit_rules_and_controls|audit规则配置官网说明文档


https://nxlog.co/docs/nxlog-ce/nxlog-reference-manual.html#config_module_common|nxlog说明文档



以下说法错误的是()|Windows日志文件位置“%systemroot%”\system32\winevt\logs|事件ID为4624表示所有用户登录事件|!在Security日志中关注程序运行时间|分为三种类型:System日志、Security日志、Setup日志


主机服务安全介绍

在服务安全中,web类的服务存在更多的安全隐患,因此web类服务安全加固尤为重要。

课程简介


http://video.twosecurity.cn/gjqawf47912035/1.1%20%E8%AF%BE%E7%A8%8B%E7%AE%80%E4%BB%8B.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/81698400_1568952134.jpg

服务安全加固可分为两大类


应用服务加固复杂的原因


http://video.twosecurity.cn/gjqawf47912035/1.2%20%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E5%8A%A0%E5%9B%BA%E5%A4%8D%E6%9D%82%E7%9A%84%E5%8E%9F%E5%9B%A0.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/94933100_1568952147.jpg

应用服务加固为什么复杂?

  1. 应用服务种类众多,难以做到一一覆盖
  2. 版本迭代更新快,配置也随之变
  3. 配置规则复杂,且互不相同

存储类服务


http://video.twosecurity.cn/gjqawf47912035/1.3%20%E5%AD%98%E5%82%A8%E7%B1%BB%E6%9C%8D%E5%8A%A1.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/13086200_1568952155.jpg


存储类服务加固角度

  1. 运行用户
  2. 监听地址
  3. 访问控制
  4. 服务日志



需要进行的数据备份机制包括()|!常规备份|!LVM快照|!自动同步|!Azure备份|!S3备份







运行用户

指运行服务的运行用户,安装的服务都会创建一个同名的服务用户。


http://video.twosecurity.cn/gjqawf47912035/2.%20%E8%BF%90%E8%A1%8C%E7%94%A8%E6%88%B7.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/94421700_1568954059.jpg

1. 系统上的运行服务的运行用户(mysql为例)


ps –ef | grep mysqld

2. 服务内部的账户(mysql为例)

查看mysql当前存在的用户:


select host,user,authentication_string from mysql.user;

查看某个用户具有的权限:


show grants for 'test'@'localhost';



下列命令解释错误的是|cat /etc/passwd #查看用户列表 | ps -ef #查看进程的|!mysql -u root -p #以密码root登录mysql|service sshd start #启动ssh服务



监听地址

数据库的监听地址就是指数据库允许从哪些地址去访问。


http://video.twosecurity.cn/gjqawf47912035/3.%20%E7%9B%91%E5%90%AC%E5%9C%B0%E5%9D%80.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/24969600_1568954068.jpg

mysql配置文件:

my.cnf(linux)
my.ini(windows)


#配置文件中查找
bind_address = 192.168.19.151



服务日志


http://video.twosecurity.cn/gjqawf47912035/4.%20%E6%9C%8D%E5%8A%A1%E6%97%A5%E5%BF%97.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/22310300_1568954077.jpg

错误日志: 

日志刷新

以下操作会刷新日志文件,刷新日志文件时会关闭旧的日志文件并重新打开日志文件。对于有些日志类型,如二进制日志,刷新日志会滚动日志文件,而不仅仅是关闭并重新打开。


mysql> FLUSH LOGS;
shell> mysqladmin flush-logs
shell> mysqladmin refresh

日志错误

错误日志是最重要的日志之一,它记录了MariaDB/MySQL服务启动和停止正确和错误的信息,还记录了mysqld实例运行过程中发生的错误事件信息。

可以使用" --log-error=
"来指定mysqld记录的错误日志文件,如果没有指定file_name,则默认的错误日志文件为datadir目录下的 `hostname`.err ,hostname表示当前的主机名。

也可以在MariaDB/MySQL配置文件中的mysqld配置部分,使用log-error指定错误日志的路径。

如果不知道错误日志的位置,可以查看变量log_error来查看。


mysql> show variables like 'log_error';

在MySQL 5.5.7之前,刷新日志操作(如flush logs)会备份旧的错误日志(以_old结尾),并创建一个新的错误日志文件并打开,在MySQL 5.5.7之后,执行刷新日志的操作时,错误日志会关闭并重新打开,如果错误日志不存在,则会先创建。

在MariaDB/MySQL正在运行状态下删除错误日志后,不会自动创建错误日志,只有在刷新日志的时候才会创建一个新的错误日志文件。

一般查询日志

查询日志分为一般查询日志和慢查询日志,它们是通过查询是否超出变量 long_query_time 指定时间的值来判定的。在超时时间内完成的查询是一般查询,可以将其记录到一般查询日志中,但是建议关闭这种日志(默认是关闭的),超出时间的查询是慢查询,可以将其记录到慢查询日志中。

使用" --general_log={0|1} "来决定是否启用一般查询日志,使用" --general_log_file=file_name "来指定查询日志的路径。不给定路径时默认的文件名以 `hostname`.log 命名。

和查询日志有关的变量有:

long_query_time = 10 # 指定慢查询超时时长,超出此时长的属于慢查询,会记录到慢查询日志中
log_output={TABLE|FILE|NONE} # 定义一般查询日志和慢查询日志的输出格式,不指定时默认为file

TABLE表示记录日志到表中,FILE表示记录日志到文件中,NONE表示不记录日志。只要这里指定为NONE,即使开启了一般查询日志和慢查询日志,也都不会有任何记录。

和一般查询日志相关的变量有:

general_log=off # 是否启用一般查询日志,为全局变量,必须在global上修改。
sql_log_off=off # 在session级别控制是否启用一般查询日志,默认为off,即启用
general_log_file=/mydata/data/hostname.log # 默认是库文件路径下主机名加上.log

在MySQL 5.6以前的版本还有一个"log"变量也是决定是否开启一般查询日志的。在5.6版本开始已经废弃了该选项。

默认没有开启一般查询日志,也不建议开启一般查询日志。此处打开该类型的日志,看看是如何记录一般查询日志的。

首先开启一般查询日志


mysql> set @@global.general_log=1;


ll *.log

-rw-rw---- 1 mysql mysql 5423 Mar 20 16:29 mysqld.log

-rw-rw---- 1 mysql mysql 262 Mar 29 09:31 xuexi.log

然后执行几个语句


mysql> select host,user from mysql.user;
mysql> show variables like "%error%";
mysql> insert into ttt values(233);
mysql> create table tt(id int); mysql> set @a:=3;


查看一般查询日志的内容。



cat xuexi.log

可发现日志中记录了前面输入的所有命令。由此可知,一般查询日志查询的不止是select语句,几乎所有的语句都会记录。

慢查询日志

查询超出变量 long_query_time 指定时间值的为慢查询。但是查询获取锁(包括锁等待)的时间不计入查询时间内。

mysql记录慢查询日志是在查询执行完毕且已经完全释放锁之后才记录的,因此慢查询日志记录的顺序和执行的SQL查询语句顺序可能会不一致(例如语句1先执行,查询速度慢,语句2后执行,但查询速度快,则语句2先记录)。


MySQL 5.1之后就支持微秒级的慢查询超时时长,对于DBA来说,一个查询运行0.5秒和运行0.05秒是非常不同的,前者可能索引使用错误或者走了表扫描,后者可能索引使用正确。另外,指定的慢查询超时时长表示的是超出这个时间的才算是慢查询,等于这个时间的不会记录。

和慢查询有关的变量:

long_query_time=10 # 指定慢查询超时时长(默认10秒),超出此时长的属于慢查询
log_output={TABLE|FILE|NONE} # 定义一般查询日志和慢查询日志的输出格式,默认为file
log_slow_queries={yes|no} # 是否启用慢查询日志,默认不启用
slow_query_log={1|ON|0|OFF} # 也是是否启用慢查询日志,此变量和log_slow_queries修改一个另一个同时变化
slow_query_log_file=/mydata/data/hostname-slow.log #默认路径为库文件目录下主机名加上-slow.log
log_queries_not_using_indexes=OFF # 查询没有使用索引的时候是否也记入慢查询日志


现在启用慢查询日志


mysql> set @@global.slow_query_log=on;

因为默认超时时长为10秒,所以进行一个10秒的查询。


mysql> select sleep(10);

查看慢查询日志文件,这里看到虽然sleep了10秒,但是最后查询时间超出了847微秒,因此这里也记录了该查询。



cat xuexi-slow.log

随着时间的推移,慢查询日志文件中的记录可能会变得非常多,这对于分析查询来说是非常困难的。好在提供了一个专门归类慢查询日志的工具 mysqldumpslow 。



mysqldumpslow --help

-d debug

-v verbose:显示详细信息

-t NUM just show the top n queries:仅显示前n条查询

-a don't abstract all numbers to N and strings to 'S':归类时不要使用N替换数字,S替换字符串

-g PATTERN grep: only consider stmts that include this string:通过grep来筛选select语句。


该工具归类的时候,默认会将同文本但变量值不同的查询语句视为同一类,并使用N代替其中的数值变量,使用S代替其中的字符串变量。可以使用-a来禁用这种替换。如:



mysqldumpslow xuexi-slow.log

显然,这里归类后的结果只是精确到0.01秒的,如果想要显示及其精确的秒数,则使用-d选项启用调试功能。



mysqldumpslow -d xuexi-slow.log

慢查询在SQL语句调优的时候非常有用,应该将它启用起来,且应该让慢查询阈值尽量小,例如1秒甚至低于1秒。就像一天执行上千次的1秒语句,和一天执行几次的20秒语句,显然更值得去优化这个1秒的语句。

二进制日志

二进制日志包含了引起或可能引起数据库改变(如delete语句但没有匹配行)的事件信息,但绝不会包括select和show这样的查询语句。语句以"事件"的形式保存,所以包含了时间、事件开始和结束位置等信息。

二进制日志是以事件形式记录的,不是事务日志(但可能是基于事务来记录二进制日志),不代表它只记录innodb日志,myisam表也一样有二进制日志。

对于事务表的操作,二进制日志只在事务提交的时候一次性写入(基于事务的innodb二进制日志),提交前的每个二进制日志记录都先cache,提交时写入。对于非事务表的操作,每次执行完语句就直接写入。

MariaDB/MySQL默认没有启动二进制日志,要启用二进制日志使用 --log-bin=
选项指定,如果没有给定file_name,则默认为datadir下的主机名加"-bin",并在后面跟上一串数字表示日志序列号,如果给定的日志文件中包含了后缀(logname.suffix)将忽略后缀部分。

或者在配置文件中的
部分设置log-bin也可以。注意:对于mysql 5.7,直接启动binlog可能会导致mysql服务启动失败,这时需要在配置文件中的mysqld为mysql实例分配server_id。





server_id=1234

log-bin=

mysqld还创建一个二进制日志索引文件,当二进制日志文件滚动的时候会向该文件中写入对应的信息。所以该文件包含所有使用的二进制日志文件的文件名。默认情况下该文件与二进制日志文件的文件名相同,扩展名为'.index'。要指定该文件的文件名使用 --log-bin-index
选项。当mysqld在运行时不应手动编辑该文件,免得mysqld变得混乱。

当重启mysql服务或刷新日志或者达到日志最大值时,将滚动二进制日志文件,滚动日志时只修改日志文件名的数字序列部分。

二进制日志文件的最大值通过变量 max_binlog_size 设置(默认值为1G)。但由于二进制日志可能是基于事务来记录的(如innodb表类型),而事务是绝对不可能也不应该跨文件记录的,如果正好二进制日志文件达到了最大值但事务还没有提交则不会滚动日志,而是继续增大日志,所以 max_binlog_size 指定的值和实际的二进制日志大小不一定相等。

因为二进制日志文件增长迅速,但官方说明因此而损耗的性能小于1%,且二进制目的是为了恢复定点数据库和主从复制,所以出于安全和功能考虑,极不建议将二进制日志和datadir放在同一磁盘上。

查看二进制日志

MySQL中查看二进制日志的方法主要有几种。

  1. 使用mysqlbinlog工具。
  2. 使用show显示对应的信息。


SHOW {BINARY | MASTER} LOGS  查看使用了哪些日志文件
SHOW BINLOG EVENTS

# 查看日志中进行了哪些操作
SHOW MASTER STATUS # 显式主服务器中的二进制日志信息

删除二进制日志

删除二进制日志有几种方法。不管哪种方法,都会将删除后的信息同步到二进制index文件中。

  1. reset master将会删除所有日志,并让日志文件重新从000001开始。
  2. PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr }
  3. 使用--expire_logs_days=N选项指定过了多少天日志自动过期清空。


配置方法其实也大同小异,根据实际情况进行取舍。


中继日志

中继日志与二进制日志一样,由一组编号文件(包含描述数据库更改的事件)和一个索引文件(包含所有已使用中继日志文件的名称)组成。中继日志文件通常表示包含数据库事件的单独编号文件。中继日志统称为带编号的中继日志文件加索引文件的集合。

该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

下一步就是slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。




下列有关查询日志的命令,正确的是()|cat xuexi.log #使用mysqlbinlog命令查看二进制日志|cat xuexi-slow.log #查看一般查询日志|mysqlbinlog
log-file1 log-file2... #查看慢查询日志|!cat mysql-bin.index #通过查看二进制的index文件来查看当前正在使用哪些二进制日志


访问控制


访问控制中最重要的是权限最小化,以及帐户权限的控制。


http://video.twosecurity.cn/gjqawf47912035/5.%20%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/81594800_1568954090.jpg


有关ACL说法正确的是|!ACL指的是访问控制列表作用是匹配感兴趣流量,结合工具对流量进行过滤|!分为基本 ACL 和扩展 ACL|!基本 ACL 只能匹配 IP 头部中的源 IP 地址|!扩展 ACL 可以同时匹配 IP 头部中的源 IP 地址和目标 IP 地址,以及传输层协议的内容,控制流量更加精确



Web类服务安全加固简介


http://video.twosecurity.cn/gjqawf47912035/6.%20web%E7%B1%BB%E6%9C%8D%E5%8A%A1%E5%AE%89%E5%85%A8%E5%8A%A0%E5%9B%BA%E7%AE%80%E4%BB%8B.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/33258200_1568954098.jpg

常见的web应用服务:

Apache
Tomcat
Nginx
php
IISweb


安全加固最重要的还是权限最小原则



web安全加固包括哪些|!修改默认日志的路径|!数据库加固|!NTFS加固|!Nginx加固|!Apache加固


web应用服务通用安全检查项


http://video.twosecurity.cn/gjqawf47912035/7.%20%E5%B8%B8%E8%A7%81web%E5%BA%94%E7%94%A8%E6%9C%8D%E5%8A%A1%E9%80%9A%E7%94%A8%E5%AE%89%E5%85%A8%E6%A3%80%E6%9F%A5%E9%A1%B9.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/62615300_1568954106.jpg

常见web应用服务通用安全检查项:

版本信息
进程用户设置
隐藏版本信息
禁止目录遍历
禁止特殊后缀文件访问
日志审核

版本信息


尽量避免使用较低版本的中间件,以提高安全性

各web服务器官网:


https://nginx.org/|Nginx官网


https://tomcat.apache.org/|Tomcat官网


http://httpd.apache.org/|httpd官网

进程用户设置

系统上的运行服务的运行用户( apache 为例)


ps –ef | grep apache

隐藏版本信息

攻击者可以根据版本信息,进行针对性攻击

查看apache版本


curl -i localhost | head -10

搜索引擎:“apache 2.4.20 漏洞”

CVE-2017-3167,CVE-2017-3169,CVE-2017-7659,CVE-2017-7668,CVE-2017-7679

默认配置文件:/etc/httpd/conf/httpd.conf

添加如下配置:


ServerTokens Prod

ServerSignature off

禁止目录遍历

apache为例:
/etc/httpd/conf/httpd.conf

Options Indexes FollowSymLinks
修改为:
>Options FollowSymLinks
>Options none FollowSymLinks

禁止特殊后缀文件访问

apache为例:
/etc/httpd/conf/httpd.conf

添加配置:


<Files ~ ".log|.conf|.sql">

        Order allow,deny

        Deny from all  拒绝.log、.conf、.sql文件的访问

</Files>

日志审核

apache为例:

(1)错误日志


代码框

(2)访问日志


CustomLog logs/access_log common

apache错误日志类型

debug

##调试信息,日志通信最多

info 

##一般信息日志,最常用

notice

##最具有重要性的普通条件的信息
warning

##警告级别

err

##错误级别,阻止某个功能或者模块不能正常工作的信息

crit

##严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert

##需要立刻修改的信息

emerg

##内核崩溃等重要信息




https://video.twosecurity.cn/%E5%AE%89%E5%85%A8%E8%BF%90%E7%BB%B4%20%E7%AC%AC%E4%BA%94%E8%8A%82/LogFormat%E5%8F%82%E6%95%B0.pdf|logFormat参数


关于Apache加固,错误的是|禁止 Apache 访问 Web 目录之外的任何文件|禁止 Apache 列表显示文件目录结构|!返回错误详细信息|合理地通过设置 Session 时间来一定程度上缓解 DoS 攻击



其他web服务特有检查点


http://video.twosecurity.cn/gjqawf47912035/8.%20%E5%85%B6%E4%BB%96web%E6%9C%8D%E5%8A%A1%E7%89%B9%E6%9C%89%E6%A3%80%E6%9F%A5%E7%82%B9.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/49191000_1568954118.jpg

apache:

精简模块
绑定监听地址为本机的IP
启用mod_rewrite模块来检查referer来源

nginx:

限制请求的方法
强制网站使用域名访问

tomcat:

加固tomcat manager
设置SHUTDOWN字符串
删除示例程序



关于Nginx加固,错误的是|修改网站目录的属主跟 Nginx 以及 php-fpm 的用户不是同一个用户,且为非 root 用户|!设置 Nginx 以及 php-fpm 的用户及组为 root|添加 Nobody 对网站目录的读权限和执行权限|禁止 Nobody 对 /bin/sh 的执行权限


企业的安全数据治理

在数据安全治理中,对敏感信息的处理。


http://video.twosecurity.cn/lxxxgm16346116/1.%20%E4%BC%81%E4%B8%9A%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8%E6%B2%BB%E7%90%86.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/17114600_1568791618.jpg

2018年数据泄露事件

1. Facebook

2018年3月,一家名为Cambridge Analytica的数据分析公司通过一个应用程序收集了5000万Facebook用户的个人信息,该应用程序详细描述了用户的个性、社交网络以及在平台上的参与度。

2. Under Armour

2018年3月25日,美国著名运动装备品牌Under Armour称有1.5亿MyFitnessPal用户数据被泄露了(用户名、邮箱地址和加密的密码)。

3. Acfun

2018年6月13日凌晨,AcFun弹幕视频网(以下简称“A站”)发布公告称,该网站受到黑客攻击,近千万条用户数据遭泄露。随后,有网友陆续晒出从今年3月到6月不同时期,暗网兜售A站用户数据的信息及价目表。

4. 华住酒店集团

2018年8月,国内某大型集团旗下数十家品牌酒店开房数据被曝在暗网出售,包括官网注册资料、酒店入住登记身份信息、酒店开房记录等近5亿个人敏感数据!

数据安全治理框架




数据安全的主要内容

1. 数据本身的安全

    数据本身是否采用了加密技术保护,数据完整性的保障

2. 数据处理的安全

    在传输过程中数据的不产生被动,主动的泄露

3. 数据存储的安全

    存储系统的高可用,高容灾性能,保证不发生未授权获取数据的情况


数据安全可能是用户泄露导致的,下列哪个帐号是空密码?|root:x:0:0:root:/bin/bash|bin:x:1:1:bin:/sbin/nologin|daemon:x:2:2:daemon:/sbin:/sbin/nologin|!ceph::1000:1000::/home/ceph:/bin/bash




何为敏感信息

在网络安全中,什么是敏感信息?

包括操作系统信息、端口信息、开通服务信息等等可能会涉及到漏洞或利益的信息都属于敏感信息。


http://video.twosecurity.cn/lxxxgm16346116/2.%20%E4%BD%95%E4%B8%BA%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/95754200_1568791618.jpg

企业安全防护中的敏感信息

Web敏感信息

中间件版本,服务器版本,网页源码,备份文件等等

软件敏感信息

操作系统版本,web应用程序版本等等

网络敏感信息

子域名信息,网络拓扑信息等等

员工个人隐私

员工姓名,身份证,手机,住址等等

用户数据

用户名密码,用户虚拟资产等等



下面可能会泄露web数据信息的有|!404报错页面|!phpinfo()|网站主页|!管理后台页面


敏感信息泄露途径


http://video.twosecurity.cn/lxxxgm16346116/3.%20%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF%E7%9A%84%E6%B3%84%E9%9C%B2.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/30918700_1568791619.jpg


常见泄露的途径

1. 通过 Web
2. 开源存储,github,各类云盘
3. 内部员工主动泄露(窃取,无意识泄露)

通过 Web 泄露

1. Web 程序(cms类型版本,敏感文件  whatweb)

2. 服务器配置不当(安全加固中提到的内容)

3. 后台管理地址

4. 源码泄漏配置信息

5. 探针文件 robots.txt phpMyAdmin

6. 版本管理工具 

whatweb

whatweb 是kali中网站指纹识别的工具,使用Ruby语言开发。whatweb可识别web技术,包括内容管理系统(CMS)、博客平台、统计/分析包、JavaScript库,Web服务器和嵌入式设备等。它有超过900个插件,每个插件都能识别不同的东西。Whatweb还可以识别版本号,电子邮件地址、账户ID、Web框架模块,SQL错误等。

WhatWeb可以隐秘、快速、彻底或缓慢扫描。WhatWeb支持攻击级别来控制速度和可靠性之间的权衡。当在浏览器中访问网站时,该交易包含许多关于Web技术为该网站提供支持的提示。有时,单个网页访问包含足够的信息来识别网站,但如果没有,WhatWeb可以进一步询问网站。默认的攻击级别称为“被动”,速度最快,只需要一个网站的HTTP请求。适用于扫描公共网站。在渗透测试中开发了更积极的模式。

-i 指定要扫描的文件
-v 详细显示扫描的结果
-a 指定运行级别

常规扫描

whatweb 域名

例如:


whatweb baidu.com

批量扫描

通过将很多要扫描的网站域名写入文件内,再指定该文件即可。


whatweb -i /root/target.txt

版本管理工具泄露隐私


链接地址|360某系统git配置不当导致源码泄漏





敏感路径知多少|路径|信息+/etc/passwd|账户密码文件+/etc/shadow|账户信息+/usr/local/app/apache2/conf/httpd.conf|apache2默认配置文件+/usr/local/app/apache2/conf/extra/httpd-vhost.conf|虚拟网站配置+/usr/local/app/php5/lib/php.ini|PHP相关配置+/etc/httpd/conf/httpd.conf|Apache配置文件+/etc/my.conf|mysql 配置文件





如何保护敏感信息



http://video.twosecurity.cn/lxxxgm16346116/4.%20%E5%A6%82%E4%BD%95%E4%BF%9D%E6%8A%A4%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/99172600_1568791619.jpg

敏感信息泄露解决方案

  1. 制定数据安全规范,定期进行安全培训,提高员工安全意识。
  2. 上线前做好核心存储服务器的安全加固,安全测试工作。
  3. 做好日志审计的工作。
  4. 利用监控工具进行实时的监控。

制定数据安全规范

1. 个人信息收集

需要遵循最小化原则,不得非法收集员工的信息,收集时也必须说明用途

2. 信息传输安全

传输时注意使用 SSL、TLS等非对称加密的方式,避免被中途篡改窃取

3. 信息存储安全

存储的介质,存储的系统,存储的数据本身

4. 信息使用安全

多级审批,权限最小化,访问频率最低化,避免直接访问数据源

5. 数据销毁

敏感数据多次擦除,消磁、物理销毁等方式,避免数据恢复。

安全意识培训

日志审计:

审计流量中是否出现敏感关键字,访问敏感网站,上传敏感数据。


github监控工具的配置和使用


http://video.twosecurity.cn/lxxxgm16346116/5.1%20github%E7%9B%91%E6%8E%A7%E5%B7%A5%E5%85%B7%E7%9A%84%E9%85%8D%E7%BD%AE%E5%92%8C%E4%BD%BF%E7%94%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/35359300_1568791620.jpg

监控工具

1.github监控
2.数据泄漏防护系统(DLP)
3.网盘监控

github监控工具 - hawkeye


https://github.com/0xbug/Hawkeye|hawkeye

1.部署环境

下载并启动docker


yum install docker && systemctl start docker

下载并启动mongodb


yum install mongodb-org && systemctl start mongod

创建hawkeye数据库


use hawkeye

db.hawkeye.insert({"name":"test"})

添加数据库账户


db.createUser({user: "twosec", pwd: "twosec", roles:
})

2.运行docker容器

拉取 hawkeye 的 docker 镜像


docker pull daocloud.io/0xbug/hawkeye

启动hawkeye 的 docker容器


docker run -ti -p 80:80 --net=host -e MONGODB_URI=mongodb://127.0.01:27017/hawkeye -e MONGODB_USER=twosec -e MONGODB_PASSWORD=twosec -d daocloud.io/0xbug/hawkeye:latest


3. 工具配置与使用

  1. 配置github帐号
  2. 配置监控项
  3. 筛选结果


Github信息泄露防范措施

  1. 制度管控
  2. 意识培训
  3. GitHub巡检
  4. 数据防泄露
  5. 内部自检git平台




GitHub目录结构|文件|介绍+.gitignore|告诉git哪些文件不要上传到 GitHub,比如数据库配置文件等+LICENSE.txt|授权协议+README.md|自述文件,整个项目的简介、使用方法等+bower.json|Bower包管理器配置文件+package.json|npm 包管理器配置文件





数据泄露防护系统(DLP)


http://video.twosecurity.cn/lxxxgm16346116/5.2%20%E6%95%B0%E6%8D%AE%E6%B3%84%E9%9C%B2%E9%98%B2%E6%8A%A4%E7%B3%BB%E7%BB%9F%EF%BC%88DLP%EF%BC%89.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/98895500_1568792839.jpg

数据泄密(泄露)防护(Data leakage prevention, DLP),又称为“数据丢失防护”(Data Loss prevention, DLP),有时也称为“信息泄漏防护”(Information leakage prevention, ILP)。

数据泄密防护(DLP)是通过一定的技术手段,防止企业的指定数据或信息资产以违反安全策略规定的形式流出企业的一种策略。DLP这一概念来源于国外,是目前国际上最主流的信息安全和数据防护手段。


DLP核心能力就是内容识别,通过识别可以扩展到对数据的防控。识别的方式具体有()|!关键字|!正则表达式|!文件属性|!文件指纹




软件供应链安全

什么是软件供应链?

传统的供应链

传统的供应链是指商品到达消费者手中之前各相关的连接或业务的衔接,从采购原材料开始,制成中间产品以及最终产品,最后由销售网络把产品送到消费者手中的一个整体的供应链结构。


http://video.twosecurity.cn/qalyg454534/1%E4%BE%9B%E5%BA%94%E9%93%BE%E6%A6%82%E5%BF%B5.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/99273900_1570766337.png

计算机软件供应链环节

  1. 开发环节
  2. 交付环节
  3. 使用环节

拓展学习--Samba


https://wiki.samba.org/index.php/Main_Page|Samba官网文档

简介

Samba最大的功能可用于Linux与windows系统直接的文件共享和打印共享,Samba既可用于windows与Linux之间的文件共享,也可用于Linux与Linux之间的资源共享,由于NFS的出现,因而 Samba更多用在Linux与windows之间的数据共享上面。

Samba服务器可实现如下功能:

Linux下安装Samba

执行yum安装(需配置好yum源)


yum install samba samba-client samba-swat -y

检查是否安装成功


rpm -qa | grep samba

启动samba服务并配置开机启动


/etc/init.d/smb start

启动 SMB 服务:


netstat -lntup | grep smbd

将samba服务添加到系统自启动:


chkconfig --level 35 smb on

chkconfig --list | grep smb

smb 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭

Samba服务的配置

Samba服务配置主要是指/etc/samba/smb.conf文件的配置。

公共匿名类共享目录的配置(即匿名账户访问共享目录或文件)

修改配置文件


vim /etc/samba/smb.conf

workgroup = WORKGROUP //定义工作组,也就是windows下的工作组
server string = Lmz Samba Server Version %v //定义Samba服务器的简要说明
netbios name = LmzSamba //定义windows中显示出来的计算机名称
log file = /var/log/samba/log.%m //定义Samba用户的日志文件,%m代表客户端主机名
security = share //共享级别,用户不需要账号和密码即可访问

//建立共享目录模块
comment = share Stuff //对共享目录说明,可自定义
path = /share //指定共享目录的路径
public = yes //所有人可查看,等效于guest ok =yes
writable = yes //有可写权限

新建/share目录,并设置属组属主为nobody。


mkdir /share

chown -R nobody:nobody /share/

/etc/init.d/smb restart //重启服务

/etc/init.d/nmb restart

测试smb.conf配置是否正确


testparm

linux访问samba服务器的共享文件


smbclient //127.0.0.1/share

windows系统下的共享访问


\\172.0.0.1\share

按权限对目录进行分组访问(配置用户名和密码访问的samba服务)


useradd -s /sbin/nologin renli //先建立系统用户

passwd renli //设置密码

smbpasswd -a renli //将用户添加到samba账户中

smbpasswd:

-a Sys_User: 添加系统用户为samba用户
-d: 禁用用户
-e: 启用用户
-x: 删除用户


pdbedit -a -u renli //也可以创建samba账户

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。

smbpasswd在/etc/samba中,有时需要手工创建该文件。

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表详细信息。
pdbedit –c “
” –u username:暂停该Samba用户账号。
pdbedit –c “
” –u username:恢复该Samba用户账号。

修改主配置文件


vi /etc/samba/smb.conf

security = user //修改共享级别为用户访问
hosts allow = 127. 172.172.0 //只允许127.0.0.0与172.172.0.0网段主机访问


comment = renli share path = /share //共享目录路径
public = no //不公开,受限浏览
writable = yes
directory mask = 0755 //创建目录的权限掩码
create mask = 0644 //创建文件的权限掩码
valid users = renli,root //被许可访问该共享目录的用户账号
write list = renli,root //允许写入的用户账号,注意如果不能写入就是系统共享文件权限不足,修改即可。

重新加载samba服务


service smb reload

设置用户映射及访问地址限制


vim /etc/samba/smbusers

添加: 用户=别名1 别名2 别名3

renli = u1 u2 u3


vim /etc/samba/smb.conf


添加:

username map = /etc/samba/smbusers
hosts allow = 192.168.1. 192.168.2. 127. //允许访问的IP地址段
hosts deny = 192.168.1. 192.168.2. //拒绝访问的IP地址段

重新加载服务


/etc/init.d/smb reload

使用别名访问共享


smbclient -U u1 //172.172.0.10/renli

使用mount挂载共享文件夹到本地


mount -o username=u1 //172.172.0.10/renli /media

如果报错:


mount -o username=u1 //172.172.0.10/renli /media

mount: block device //172.172.0.10/renli is write-protected, mounting read-only 

mount: cannot mount block device //172.172.0.10/renli read-only //不能加载块设备

解决方法:


yum install cifs-utils

重新挂载读写模式:


mount -o username=u1,rw //172.172.0.10/renli /media

Password: //输入密码即可挂载成功


下列说法正确的是|!linux 可以通过samba将共享服务器挂载到本地磁盘|在软件的使用阶段,如果我们不主动更新,就不会受到供应链攻击|!在编写节点就将恶意代码植入软件,是无法通过校验md5的方式判断软件是否遭受了供应链攻击的|以上说法都是正确的






攻击场景与案例

有关供应链安全的实际案例分析



http://video.twosecurity.cn/qalyg454534/2%E6%94%BB%E5%87%BB%E6%A1%88%E4%BE%8B.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/36069700_1570766338.png

开发环节

案例分析

交付环节

软件从开发商到达用户手中的过程,主要就是通过购买/共享存储介质、网络下载等方式实施。

主要攻击表现形式

使用环节

攻击相对之前较少,攻击者通过劫持软件更新的渠道,比如重定向用户下载更新链接,或劫持运营商重定向更新下载链接。

案例分析




Petya勒索病毒变种NotPetya|!部署基于行为的攻击检测解决方案,以抵御复杂的供应链攻击|!采用分段式网络体系结构|!部署实时漏洞管理解决方案|!提升系统管理控制策略,提升企业环境中特权凭证的使用管理(包括共享/嵌入式管理员账户的控制)






供应链攻击防御


http://video.twosecurity.cn/qalyg454534/3%E5%A6%82%E4%BD%95%E5%BA%94%E5%AF%B9.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/26795000_1570766339.png

如何应对供应链攻击?

1.从根源出发,自给自足
   

    a.建立内部软件库、软件源

    b.工具软件尽量自行研发

2.建立安全软件库,进行安全审计,根据需求及时更新

    a将互联网下载的软件进行审查,确保安全性之后再放入公司内部软件库

3.建立网络封闭的软件运行环境,禁止任何未授权的软件外联行为

此外,为了提前应对将来可能发生的攻击,组织还应该利用好各种来源的威胁情报,以获取必要的数据和信息来主动防御新的攻击。

随着时代的不断发展,我们已经意识到了软件供应链攻击的威胁严重程度,而且各大组织应该立刻采取行动,以确保自己能够全力抵御这类破坏性攻击。

建议政企机构从如下五个角度着手,来规避软件供应链攻击引发的风险

  1. 掌控全网终端的软件分布情况:精准、实时、全面掌控公司、单位的软件资产信息,这样安全策略、安全基线才能有的放矢
  2. 选择安全软件下载渠道:构建安全可靠的软件下载平台
  3. 把控软件升级通道:封堵软件更新的网络通道,并且部署安全设备进行有力的管控
  4. 分析和感知互联网软件的网络通信行为:对互联网软件的网络通信行为进行分析和感知,并具备进一步管控的能力
  5. 具备安全应急响应能力:在软件供应链攻击事件发生时,可以第一时间封死网络通信链路,避免进一步损失


防范供应链攻击,以下做法正确的有|禁用一切软件|!构建内部安全软件下载平台|不使用互联网|以上都是正确的



资源共享服务器

企业内部搭建软件仓库


http://video.twosecurity.cn/qalyg454534/4%E8%B5%84%E6%BA%90%E5%85%B1%E4%BA%AB%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/18805500_1570766340.png

资源共享服务器的搭建优劣

  1. WEB服务器(大材小用)
  2. FTP(密码明文传输,FTPs/sFTP客户端配置麻烦)
  3. NFS(无法跨平台传输)
  4. Samba(首选)

利用Samba实现资源共享服务器

安装Samba


yum install samba -y

创建smb用户


group smb

useradd -s /sbin/nologin -g smb twosec

smbpasswd -a twosec 给smaba用户设置密码

配置Samba


vim /etc/samba/smb.conf


#目录名
comment = smb share #配置项的备注内容
path = /var/www/html #文件存储的物理路径
public = no #是否允许guest用户访问
writable = yes #是否可写入
create mask = 0740 #创建文件的umasks值
valid users = @twosec #允许访问的用户
browseable = yes #指定该共享是否可以浏览
available = yes #指定该共享资源是否可用

启动服务


systemctl start smb

访问




将命令与其作用配对|命令|作用+vim /etc/samba/smb.conf|修改Samba配置文件+vim /etc/passwd|查看用户+smbpasswd -a xxx|添加Samba账户+ls -al|查看目录用户权限+yum install samba -y|yun 安装Samba


自建企业软件仓库

企业内部软件源的搭建



http://video.twosecurity.cn/qalyg454534/5%E6%90%AD%E5%BB%BA%E4%BC%81%E4%B8%9A%E5%86%85%E9%83%A8yum%E4%BB%93%E5%BA%93.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/18805500_1570766340.png


分为两种:

搭建企业内部yum仓库

安装服务


yum isntall -y rsync createrepo

建目录


mkdir -p /var/www/repos/centos/7/{os,updates,extras}/x86_64

使用rsync,同步官方服务器的资源到本地服务器上


rsync -avz --delete --exclude='repodata'\
rsync://mirrors.tuna.tsinghua.edu.cn/centos/7/os/x86_64/\
/var/www/repos/centos/7/os/x86_64/

Linux tree命令

用于以树状图列出目录的内容。执行tree指令,它会列出指定目录下的所有文件,包括子目录里的文件。


yum install -y tree 安装tree

参数作用
-a显示所有文件和目录
-A使用ASNI绘图字符显示树状图而非以ASCII字符组合
-C在文件和目录清单加上色彩,便于区分各种类型
-d显示目录名称而非内容
-D列出文件或目录的更改时间
-f在每个文件或目录之前,显示完整的相对路径名称
-F在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号
-g列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i不以阶梯状列出文件或目录名称
-I<范本样式>不显示符合范本样式的文件或目录名称
-l如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-n不在文件和目录清单加上色彩
-N直接列出文件和目录名称,包括控制字符
-p列出权限标示
-P<范本样式>只显示符合范本样式的文件或目录名称
-q用"?"号取代控制字符,列出文件和目录名称
-s列出文件或目录大小
-t用文件和目录的更改时间排序
-u列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-x将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。

制作软件源

createrepo /var/www/repos/centos/7/os/x86_64/

增加web界面上的优化

配置web服务器

Apache配置


vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html"
改为:
DocumentRoot "/var/www/repos"

<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
改为:
<Directory "/var/repos" >
    Options indexes FollowSymLinks
    Require all granted

保存后重启


systemctl restart httpd

作用

减弱来着外部的供应链攻击



软件供应链安全总结



http://video.twosecurity.cn/qalyg454534/6%E8%AF%BE%E7%A8%8B%E6%80%BB%E7%BB%93.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/23999700_1570766341.png


开源软件安全



http://video.twosecurity.cn/qadocker3256/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E5%AE%89%E5%85%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/89034500_1570766590.png




https://www.open-scap.org/resources/documentation/security-compliance-of-rhel7-docker-containers/|OSACP docker扫描


https://docs.anchore.com/current/docs/engine/engine_installation/|Anchore Engine手册


https://twosecurity-resource.oss-cn-hangzhou.aliyuncs.com/clair%e5%ae%89%e8%a3%85%e9%85%8d%e7%bd%ae%e5%8f%8a%e4%bd%bf%e7%94%a8%e6%95%99%e7%a8%8b.docx|clair安装配置及使用教程



Docker安全简介



http://video.twosecurity.cn/qadocker3256/Docker%E5%AE%89%E5%85%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/89034500_1570766590.png


Docker 安全治理之容器最小化



http://video.twosecurity.cn/qadocker3256/Docker%E5%AE%89%E5%85%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/86556300_1570766591.png



Docker安全治理之内容信任机制



http://video.twosecurity.cn/qadocker3256/%E5%86%85%E5%AE%B9%E4%BF%A1%E4%BB%BB%E6%9C%BA%E5%88%B6.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/8846800_1570766593.png



Docker安全治理之镜像安全扫描



http://video.twosecurity.cn/qadocker3256/%E9%95%9C%E5%83%8F%E5%AE%89%E5%85%A8%E6%89%AB%E6%8F%8F.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/54277200_1570766593.png


日志分析基础



http://video.twosecurity.cn/xfzr56465/%E6%97%A5%E5%BF%97%E5%9F%BA%E7%A1%80.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/604600_1570763883.png




web应用日志分析



http://video.twosecurity.cn/xfzr56465/%E6%B3%A8%E5%85%A5%E7%89%B9%E5%BE%81%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/50166700_1570764017.png


XSS特征日志分析


http://video.twosecurity.cn/xfzr56465/XSS%E6%97%A5%E5%BF%97%E7%89%B9%E5%BE%81.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/12790300_1570764183.png


系统服务日志分析



http://video.twosecurity.cn/xfzr56465/%E7%B3%BB%E7%BB%9F%E6%9C%8D%E5%8A%A1%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/12790300_1570764183.png


系统日志分析


http://video.twosecurity.cn/xfzr56465/%E7%B3%BB%E7%BB%9F%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/9482700_1570764229.png



文档的作用


http://video.twosecurity.cn/xbdw5765/%E6%96%87%E6%A1%A3%E7%9A%84%E4%BD%9C%E7%94%A8.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/61746900_1570764348.png



如何编写



http://video.twosecurity.cn/xbdw5765/%E7%BC%96%E5%86%99%E6%96%87%E6%A1%A3.mp4|http://wechatapppro-1252524126.file.myqcloud.com/appYbDKptvG2044/image/ueditor/35298900_1570764396.png


定制化咨询

如果你看完了以上学习教程,仍然对某一些知识点有所疑问、或者你有很
明确
的提升需求,目前的视频教程并不能解决你的问题,欢迎扫描下方二维码添加老师了解【定制化咨询服务】。

什么是定制化咨询?

所谓定制化咨询,就是讲师会根据你现有的知识储备以及你想要的达到的目标,定制化的为你制定学习方案。时长一般为一个半月左右,学习期间内进行密集化提升,会要求你每天有足够的时间学习,保障最终的学习效果。

咨询的核心不是学习知识点,是学怎么发现问题、解决问题的方法。学思维模式,学可以具有创造力的途径。

在学习期间内,除了要学习必要的的知识点以外,导师会一对一的督促你进行实战训练,并在实战的过程中帮你分析遇到的问题。如果你曾经有过遇到WAF绕不过去、拿着目标不知道如何下手、有了漏洞不知道如何扩展等等、诸如此类只有在实战中才会遇到的难题,那么这就是定制化咨询可以帮你解决。

什么是明确的提升需求?

指目前有一个非常明确的目标需要去实现,但是不知道如何去解决进一步提升。
有安全基础想要就业渗透测试岗位--->想就业 工作上遇到了问题--->有具体的困难 不知道如何挖掘漏洞--->漏洞挖掘 公司要求找到漏洞--->转正 目前的技术挖不出满意的漏洞--->新技术学习 ···
诸如上述,都是一些很明确的提升需求。如果你有这样明确的目标,可以添加老师微信详细咨询,我们会在学习期间内保证你的完成目标。
运维安全概念,技能点与职业规划,纵深防御体系,基础安全之自动化安全检查,基础安全之模拟内网安全扫描,基础安全之弱口令检测,基础安全之如何解决弱口令问题?,基础安全之端口安全,防火墙配置之分类及工作原理,防火墙配置之iptables 运维问题,防火墙配置之端口映射问题,防火墙配置之Docker 穿透 ufw,主机服务安全之主机安全建设,主机服务安全之基线配置管理,主机服务安全之账号口令安全基础篇,主机服务安全之账号口令安全高级篇,主机服务安全之系统服务安全,主机服务安全之windows主机加固,主机服务安全之日志审计,主机服务安全之Linux 日志审计,主机服务安全之Windows 日志审计,服务安全加固之主机服务安全介绍,服务安全加固之运行用户,服务安全加固之监听地址,服务安全加固之服务日志,服务安全加固之访问控制,服务安全加固之Web类服务安全加固简介,服务安全加固之web应用服务通用安全检查项,服务安全加固之其他web服务特有检查点,敏感信息泄露之企业的安全数据治理,敏感信息泄露之何为敏感信息,敏感信息泄露之敏感信息泄露途径,敏感信息泄漏之如何保护敏感信息,敏感信息泄漏之github监控工具的配置和使用,敏感信息泄漏之数据泄露防护系统(DLP),软件供应链安全之简介,软件供应链安全之攻击场景与案例,软件供应链安全之供应链攻击防御,软件供应链安全之资源共享服务器,软件供应链安全之自建企业软件仓库,软件供应链安全总结,开源软件安全简介及治理,Docker安全简介,Docker 安全治理之容器最小化,Docker安全治理之内容信任机制,Docker安全治理之镜像安全扫描,日志分析之基础内容,日志分析之web应用日志分析,日志分析之XSS特征日志分析,日志分析之系统服务日志分析,日志分析之系统日志分析,文档编写之文档的作用,文档编写之如何编写,定制化提升,知识盒子,知识付费,在线教育