本文主要是介绍40_操作系统安全机制、linux安全加固、windows安全加固、Linux基线扫描下载、主机安全检查工具windows版本下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.操作系统安全机制
1.1标识与鉴别
- Windows:SID
- Linux: UID、GID
1.1.1 SID
查看当前用户名及SID
查看所有用户名及SID
C:\Users\TEACHER>wmic useraccount get name,sid
Name SID
Administrator S-1-5-21-80530027-1782036084-1563535153-500
DefaultAccount S-1-5-21-80530027-1782036084-1563535153-503
Guest S-1-5-21-80530027-1782036084-1563535153-501
TEACHER S-1-5-21-80530027-1782036084-1563535153-1001
tony S-1-5-21-80530027-1782036084-1563535153-1003
WDAGUtilityAccount S-1-5-21-80530027-1782036084-1563535153-504
SID标识解析
1.1.2 UID
查看UID(nologin是不能登录的,只是针对某个应用创建的比如安装某个应用时创建的但不能使用来登录)
UID格式解析
总结:Windows里边关注最后一个,Linux里边关注第三个,
1.1.3 鉴别方法与信息存储
用户所知、用户所有、生物特征
windows:SAM数据库(正儿八经的信息存储就这儿,如果找可疑账户可以在这找,黑客进来的话可能会留影子账户)
运行regedit,默认情况下是没开权限的进不去,手动开一下,再重新打开
Linux:/etc/shadow文件
之前装的ubt权限不够可以sudo一下
这个密码经过了操作,经过哈希的
shadow格式解析
1.2访问控制
规定主体(用户、进程)对客体(存储在硬盘上的文件、文件夹)的访问方式(一般就是r(读)w(写)x(执行)三种)。
Windows的
1.3最小特权
windows设置 本地安全策略→本地策略→用户权限分配
1.4可信通路
在用户和程序之间建立一条可信通路,阻止任何进程的运行。例如:系统登录时(防止账号和密码信息不被别的进程读到,阻止任何进程的运行)
1.5安全审计
计算机管理→事件查看器→windows日志、应用程序和服务日志、应用程序访问日志
1.6存储保护
Windows NTFS系统,早期的FAT32不支持
Linux ext4文件系统
1.7运行保护
环形结构,内核态和用户态。目前只有ring0和ring3。
1.8 I/O保护(简单了解,不学开发很难学习进程的概念)
进程之间相互独立(隔离)
我们防护就重点关注1、2、3、5这几部分。 4、6、7、8是系统的设计和开发者去考虑的
2.windows安全加固
练习1:查看管理员组用户
net localgroup administrators
**注意:**结果大于一个不合规
练习2:添加一个管理员组用户,再修改其类型
1.以管理员身份运行“命令提示符”
2.增加用户,并添加到管理员组【以管理员身份运行cmd】
# 1.添加用户testadmin密码test123
net user testadmin test123 /add
# 2.将testadmin用户添加到管理员组administrators
net localgroup administrators testadmin /add
# 3.查看管理员组所有用户
net localgroup administrators
# 4.把testadmin从管理员组去除
net localgroup administrators testadmin /del
# 5.查看所有组
net localgroup
# 6.查看users组所有用户
net localgroup **users**
# 7.删除用户
net user testadmin /del
# 8.修改用户密码
net user username newpassword
通过命令对用户的操作net user:用户的添加,删除,修改密码,查看
通过命令对组的操作 net localgroup:用户加入组,从组中删除,查看组的所有用户
3.更改用户类型,打开控制面板→用户账户→更改账户类型;选择testadmin账户,修改其类型。注意,如果当前是标准用户,重启后再修改。
4.修改后,重新查询即可
**练习3:**Windows账户、密码策略、账户授权的安全加固
1.修改缺省账户名称
计算机管理→本地用户和组→用户,右键单击默认管理员账户,对管理员账户进行重命名
2.禁止Guest账户
计算机管理→本地用户和组→用户,右键单击Guest账户,选择属性,在属性对话框中选择“账户已禁用”复选框。
3.设置屏幕锁定
搜索“屏幕保护程序”,打开窗口设置。
4.配置不显示上次登录
本地安全策略→本地策略→安全选项,双击“交互式登录:不显示最后的账户名”,选择已启用,并确定。
5.密码策略与账户锁定策略
本地安全策略→账户策略→密码策略(复杂度)
本地安全策略→账户策略→账户锁定策略
6.用户权限分配
本地安全策略→本地策略→用户权限分配
7.windows入侵防范
最小安装原则,卸载不需要的软件和组件,控制面板→程序和功能
关闭多余的服务,直接搜索"服务",进入服务对话框
**练习4:**Windows审核策略与日志安全加固
1.审核策略检查
本地安全策略→本地策略→审核策略
2.不允许匿名枚举SAM账号与共享
本地安全策略→本地策略→安全选项
3.日志检查
搜索事件查看器,选择windows日志
练习5 查看和关闭共享
1.查看共享
计算机管理→共享文件夹→共享
通过命令查看共享
net share
2.彻底关闭WINDOWS默认共享
a.停止服务法
还是到“计算机管理”窗口中,单击展开左侧的“服务和应用程序”并选中其中的“服务”,此时右侧就列出了所有服务项目。共享服务对应的名称是 “Server”(在进程中的名称为services),找到后双击它,在弹出的“常规”标签中把“启动类型”由原来的“自动”更改为“已禁用”。然后单击下面“服务状态”的“停止”按钮,再确认一下就OK了。
b**. 如果你不在局域网使用共享服务**,干脆将“本地连接”属性中的“网络的文件和打印机共享”卸载掉,默认共享就可以彻底被关闭了。 【运行框输入命令:ncpa.cpl,打开“本地连接”】 c.批处理自启动法。打开记事本,输入一下内容(记得每行最后要回车), 代码如下:
net share c$ /delete
net share d$ /delete
net share ipc$ /delete
net share admin$ /delete
保存未share.bat(注意后缀),然后把这个批处理文件拖到“程序” -->“启动”项,这样每次开机就会运行它,也就是通过net命令关闭共享。
d.通过设置注册表选项,关闭共享
总结一下,windows安全加固常用的操作窗口:
1.本地安全策略 -安全策略
2.计算机管理 -用户和组
3.控制面板 - 入侵防范
4.事件查看器 -日志审计
主机安全检查工具windows版本.rar 蓝奏云
https://wwtt.lanzn.com/b00uydem8d
密码:8jlx 桌面运维的可能会用到
重点端口排查表:
2.linux安全加固
接下来设置个空口令的账户
练习1:用户操作
添加用户、删除用户、设置用户密码、锁定/解锁用户
1)执行sudo -i,切换到root用户,使用adduser命令增加user1和user2两个用户,密码设置为123456,并使用passwd -d user2为user2用户设置空密码。
tedu@ubuntu:~$ sudo -i
[sudo] tedu 的密码:
root@ubuntu:~# adduser user1
正在添加用户"user1"...
正在添加新组"user1" (1001)...
正在添加新用户"user1" (1001) 到组"user1"...
创建主目录"/home/user1"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 user1 的用户信息
请输入新值,或直接敲回车键以使用默认值全名 []: 房间号码 []: 工作电话 []: 家庭电话 []: 其它 []:
这些信息是否正确? [Y/n]
root@ubuntu:~# adduser user2
正在添加用户"user2"...
正在添加新组"user2" (1002)...
正在添加新用户"user2" (1002) 到组"user2"...
创建主目录"/home/user2"...
正在从"/etc/skel"复制文件...
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
正在改变 user2 的用户信息
请输入新值,或直接敲回车键以使用默认值全名 []: 房间号码 []: 工作电话 []: 家庭电话 []: 其它 []:
这些信息是否正确? [Y/n]
root@ubuntu:~# passwd -d user2
passwd:密码过期信息已更改。
2)使用cat /etc/passwd命令查看内容。可以看到刚刚创建的两个用户。浏览所有用户,删除多余的用户。
root@ubuntu:~# cat /etc/passwd|grep user
hplip:x:115:7:HPLIP system user,,,:/var/run/hplip:/bin/false
user1:x:1001:1001:,,,:/home/user1:/bin/bash
user2:x:1002:1002:,,,:/home/user2:/bin/bash
3)使用cat /etc/shadow命令查看内容。user2的第二项为空,说明user2使用的是空密码。使用user2无需口令即可登录。
root@ubuntu:~# cat /etc/shadow|grep user
user1:$6$wA3Q7Qpp$g9z3jITrSygCnGibnhzivPGB8lH9uEjv5GHyvbwz2S5eqD4/t8zAsjiqR7WEqUxcZe0.jNrKYhhjM6I8XHH59/:19614:0:99999:7:::
user2::19614:0:99999:7:::
root@ubuntu:~# reboot
# 使用user2登录无需密码,存在未授权
4)使用userdel 命令 删除user1,使用 passwd user2为设置密码。
# 重新使用tedu登录,切换到root
tedu@ubuntu:~$ sudo -i
[sudo] tedu 的密码:
root@ubuntu:~# userdel user1
root@ubuntu:~# passwd user2
输入新的 UNIX 密码:
重新输入新的 UNIX 密码:
passwd:已成功更新密码
root@ubuntu:~#
5)使用cat /etc/shadow命令查看内容。已经删除了不再使用的user1用户,user2用户的第二项不为空,表示已经设置了密码。
root@ubuntu:~# cat /etc/shadow|grep user
user2:$6$N/ruyx3c$2FVJ3MPAx2WaEGQNfBPvhZ2TlbaPhzLMtugU4DOClJYEI2aTzuHioAKiF7WcVh28vU/ylZJnc5ZXLlztR.5mP0:19614:0:99999:7:::
root@ubuntu:~#
6)另外可以使用passwd -l 用户名锁定账号,使用passwd -u 用户名解锁账户。锁定账号user2之后,使用user2无法登录,解锁后又可登录了。
root@ubuntu:~# passwd -l user2
passwd:密码过期信息已更改。
root@ubuntu:~# reboot
# 使用user2登录时,即使使用正确的用户名和密码,仍然显示错误,使用tedu登录,解锁user2
tedu@ubuntu:~$ sudo -i
[sudo] tedu 的密码:
root@ubuntu:~# passwd -u user2
passwd:密码过期信息已更改。
root@ubuntu:~# reboot
设置口令有效期,在编辑模式中的一个搜索小技巧
练习2:密码策略
# vi /etc/pam.d/common-password 可以看到这个没有密码复杂安装度相关的模块,所以需安装
安装PAM的cracklib模块,cracklib能提供额外的密码检查能力
# apt-get install libpam-cracklib
使用以下命令查看密码策略设置文件
# vi /etc/pam.d/common-password
可以看到没安装之前25行是没有的
安装后仅仅有最小长度8的检查,那么复杂度在哪设置呢,往下
复杂度
密码最小长度设置,找到如图位置所示,修改最小长度值
找到如下图配置,在后面添加ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1,它表示密码必须至少包含一个大写字母(ucredit),一个小写字母(lcredit),一个数字(dcredit)和一个标点符号(ocredit),具体按照需要修改即可。
注意!!:该模块不会影响原有用户,只再添加新用户时,会进行密码复杂度检查!!!
(不信你用tedu和刚刚新建的账户登录就懂了)(当你再重复之前新建用户的操作时就得强口令了,生效了)
ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
执行以下命令打开login.defs文件,设置口令有效期如图所示
# vi /etc/login.defs
禁止root远程登录,其中的PermitRootLogin选项设置为No,或用#注释(如果没有发现文件,ssh没有安装,先往下看)
vi /etc/ssh/sshd_config
如果没有发现文件,ssh没有安装,执行如下命令可以安装
sudo apt install openssh-server
Linux对文件的权限合理
644相当于对文件夹(6对于属主事可读写的,4+2),文件夹一般是没执行的,而对44于属组,同一组的其他用户以及其他组的用户都只能读,所以是644。
755表示,比如某一个可执行文件(7=4+2+1,属主对它的权限,属主有读写执行权限),而对于55是同一组的其他用户以及其他组的用户(只有4+1,就是读和执行权限),
所以我们在检查重要文件和目录时,比如安装了一个网站,都得满足如下
日志审计
默认情况下,kali和ubuntu都没有审计日志模块,需要安装
# apt-get install auditd
检查审计日志模块是否启动
# service auditd status
入侵防范
Linux默认是不安装的,但是有的工作人员想要方便运维可能会去安装,如果需要安装就往下看
**如何在ubuntu系统中安装samba服务 ** 可以自行测试下,这里懒得去测试了
ubuntu安装samba_ubuntu samba_一叶知秋@qqy的博客-CSDN博客
Linux基线扫描的脚本(蓝奏云)
https://wwtt.lanzn.com/b00uydem8d
密码:8jlx
需要的时候再去用
nessus这个玩意,一打开就要你强制去更新漏洞库的,都不让演示先让更新,网上可以找安装包自行测试下
没有定期漏扫在等保这块是不合规,因为不断地会有新的0day漏洞出现。
这篇关于40_操作系统安全机制、linux安全加固、windows安全加固、Linux基线扫描下载、主机安全检查工具windows版本下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!