Windows系统安全配置
- 安全配置前置工作
- 账号安全设置
- 关闭自动播放
- 远程访问控制
- 本地安全策略
- 服务运行安全设置
- 使用第三方安全增强软件
密码策略:
- 避免系统出现弱口令
- 密码必须符合复杂性
- 要求密码长度最小值
- 密码最短使用期限
- 密码最长使用期限
- 强制密码历史
- 用可还原的加密来存储密码
安全的安装
- 分区设置:不要只使用一个分区
- 系统补丁:SP+Hotfix
补丁更新设置:
- 检查更新
- 自动下载安装或手动
默认管理账户administrator更名
设置“好”的口令
- 自己容易记、别人不好猜
- 不安全口令实例:ZAQ!@WSXzaq12wsx·
- 安全口令实例: WdSrS1Y28r!
账号锁定策略:应对口令暴力破解
- 账号锁定时间
- 账号锁定阀值
- 重置账号锁定计数器
用户权限分配
- 从网络访问这台计算机
- 拒绝从网络访问这台计算机
- 管理审核和安全日志
- 从远程系统强制关机
设置唤醒计算机时的登录密码
设置屏幕保护恢复时的登录密码
确保启用Windows自带防火墙
防火墙高级配置
出站规则
入站规则
连接安全规则
监视
- 防火墙
- 连接安全规则安全关联
共享安全风险
- IPC$的安全问题(空会话连接导致信息泄露)
- 管理共享风险(远程交件操作)
- 普通共享的风险(远程文件操作)
本地安全策略 – 安全选项
管理工具→本地安全策略→安全设置→本地策略→安全选项
- 交互式登录:无须按Ctrl+Alt+De1,设置为已禁用。
- 交互式登录,不显示最后的用户名,设置为已启用
- 设备:将CD-ROM的食问权限仅限于本地登录的用户,设置为已启用
管理工具→本地安全策略→安全设置→本地策略→安全选项
- 网络访问:不允许SAM账号的匿名枚举,设置为已启用
- 网络访问:可匿名交问的共享,删除策略设置里的值
- 网络访问:可匿名访向的命名管道,删除策略设置里的值
- 网络访问:可远程访问的注册表路径,删除策略设置里的值
安装防病毒软件
- 恶意代码是终端安全的最大威胁确保病毒防护软件病毒库更新
- 病毒防护软件主要工作机制:特征码扫描
- 开启云查杀
Linux系统安全
查看系统中的用户及属性信息
在Linux系统中/etc/passwd
文件是存储系统中账户信息的文件。
查看系统中用户信息
root:X:0:0:root:/root:/bin/bash
用户名:密码:UID:GID:用户注释信息:用户家目录:Shell定义。
- 用户名:用户的名称
- 密码:X表示占位符,也可以是密码
- UID:用户识别代码
- GID:用户所属组的GID(基本组)
- 用户注释信息:Comment,可以完善用户的基本信息用户家目录:系统登录用户后的工作目录
- shell:定义用户登录系统所使用的shell,指定的shell需要在/etc/shells中出现
查看系统中的用户属性
在Linux系统中/etc/shadow
文件查看用户属性
查看系统中用户属性
root: \\$6\\$YqkEsOcfKPptyhnS\\$YDOym4BZ52pzcCnU..:16781:0:99999:7:::
用户名:密码:上一次修改密码的时间:密码最小使用期限:最长使用期限:警告时间:帐户过期时间:保留字段用户名:用户的名称,对应/etc/passwd文件中
- 密码: Centos6中使用MD5加密算法,Centos7中使用sha1的算法,第一个$后面加密算法类型,第二个$后面表示salt,第三个$后面表示密码的提取码
- 上一次修改密码的时间:指用户上次修改密码的时间,计算方法:从Linux元年1970年01月01日0点0分到目录所经过的秒数
- 密码最小使用期限:指用户修改密码后,需要到多少天后方可更改密码,0表示禁用密码最长使用期限:指用户的密码到多少天后需要修改密码
- 警告时间:指用户密码到期前多少天提示用户修改密码,0和空字段表示禁用此功能帐户过期时间:批帐户在密码过期后多少天还未修改密码,将被停用
查看系统中的用户所属组
在Linux系统中/etc/group
文件存储着用户的分组信息root X 0:
这一行的格式为
- 组名:密码: GID: User_list
- 组名:组的名称,默认同名用户名
- 密码:组的密码占位符,用于用户临时切换至需要的组以获取相应权限,可以使用
newgrp GROUP_NAME
切换 - GID:组的全局识别号
- User_list:隶属此组的用户,多个用户使用”,”隔开
系统启动项简介
一般情况下,常规用途的 Linux在开机启动时拉起各种相关服务进程,包括许多你可能无需使用的服务,除系统自动拉起的服务外,我们还可以手动添加自己需要的服务。
比如:开机启动apache、开机备份数据库、开机后立马重启等操作。
当Linux操作系统开机后就会进入init进程,init进程中存储系统启动时所需要的服务以及自己手动的服务。
查看系统启动项
在Linux系统/etc/rc.local
文件存储着启动项相关属性信息
系统启动项添加方法1
使用vim编辑/etc/rc.local文件,可在touch /var/lock/subsys/local代码下添加需要启动的服务。
系统启动项添加方法2
在/etc/profiled目录下使用vim编辑reboot.sh文件,在文件中添加reboot并保存文件,重启系统。
系统启动项排查
查看/etc/rc.local文件,查看该文件是否被更改。
进入/etc/profiled目录下查看是否出现异常文件。
输入命令: systemctl list-unit-files
查看所有的项目,如果是开机启动项,状态为: enabled
(或者只看开机启动项,命令为: systemctl list-unit-files l grep enabled
)
可通过ls -alt /etc/init.d
命令查看启动项文件修改时间
系统计划任务
添加计划任务:每分钟重启一次;执行crontab -e使用vim编辑器直接在里面输入:/1 * * * /usr/sbin/reboot
可通过crontab -l
查看每分钟重启一次的计划任务是否添加成功
系统服务查看
可通过端口查看服务的开放状态。 netstat -antpul | grep 22
也可以直接查看服务状态。service sshd status
可通过执行ps -aux
查看全部系统进程,也可通过ps -aux | grep sshd
过滤指定进程进行查看。
使用top
命令实时动态地查看系统的整体运行情况,主要分析CPU和内存多的进程,是一个综合了多方信息监测系统性能知运行信息的实用工具,了解服务器健康状况
系统进程进程排查
分析字段含义如下表:列名含义
- 1、PID进程id
- 2、PPID父进程id
- 3、UID进程所有者的用户id
- 4、USER进程所有者的用户名
- 5、GROUP进程所有者的组名
- 6、TTY启动进程的终端名
- 7、PR优先级
- 8、NI nice 值;负值表示高优先级,正值表示低优先级
- 9、RES 进程使用的、未被换出的物理内存大小,单位 kb。RES=CODSHR 共享内存大小,单位kbS。进程状态:D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止、Z=僵尸进程
- 10、%CPU上次更新到现在的CPU时间占用百分比
Linux系统安全加固
防暴力破解
限定口令长度和复杂度
设置口令策略满足长度和复杂度要求。要求长度8位以上,口令中包含大写字母、小写字母、数字、特殊字符,每种字符至少一个。
加固方法:authconfig --passminlen=8 --update//最短8位
authconfig --passminclass=4 --updatel/至少包含4中字符验证效果:
创建测试用户,为测试用户设置不符合长度和复杂度要求的口令.系统首先提示口令长度不够,之后提示字符类型少于4种。说明本项加固成功。
限定账户口令生存周期
限制口令的最长使用期限为90天,口令的最短使用期限为3天,口令到期前15天发出警告。加固方法:vi /etc/login.defs
//编辑文件,设置如下内容
设置PASS_MAX_DAYS为90,
设置PASS_MIN_DAYS为3,
设置PASS_WARN_AGE为15
保存退出
验证效果:cat /etc/login.defs | grep \'^PASS_\'
登录失败锁定
用户远程登录验证连续超过5次失败的,锁定账号30分钟加固方法:vim /etc/pam. d/sshd
//在#%PAM-1.0的下面,即第二行添加内auth required pam_tally2.so dewy=5 unlock_time=1800 even_deny_root root_unlock_time=1800
保存退出
验证效果:ssh user1@192.168.242.132
故意连续6次输入错误口令,最后输入正确口令,发现已经无法登录。在服务器查看锁定情况:pam_tally2 --user user1
说明登录失败锁定机制已经生效。
sudo权限管理
当前user1用户属于wheel用户组,而wheel系统默认允许wheel组通过sudo执行任何命令。现要求取消user1用户通过sudo执行任何命令的权限。
加固方法:gpasswd -d user1 wheel
//将user1从wheel组中删除
验证效果:sudo ls
//user1用户通过sudo执行命令
出现提示,称用户不在sudoers文件中,说明sudo权限配置加固成功。
suid文件管理
系统中存在设置了suid的vim程序(/usr/bin/vim),存在提权风险,要求取消该程序文件的suid权限。加固方法:chmod u-s /usr/bin/vim
//取消文件的suid权限验证效果:ls -l /usr/bin/vim
不显示suid标识位,说明加固成功。
系统安全更新
进行操作系统安全更新。加固方法:yum --security upgrade
//运行安全更新程序验证效果:yum --security check-update
返回“No packages needed for security;”,说明安全更新已完成。
防木马后门
取消root之外用户使用crontab的权限
禁止root之外的用户以crontab方式运行计划任务。加固方法:touch /etc/cron.allow && vi /etc/cron.allow
//创建c/etc/cron.allow文件,在文件的第一行 root,保存退出
验证效果:
普通用户尝试创建crontab任务无法创建crontab,说明加固成功。
防痕迹清除
启用rsyslog服务
启动rsyslog服务,记录系统事件。加固方法:systemctl enable rsyslog
//设置自动启动systemctl start rsyslog
//手动启动服务
验证效果:命令行输出命令
logger -p local1.notice “This is a test for rsyslog
在/var/log/messages文件中可以看到一条相应的日志
配置远程日志服务器
指定远程日志服务器,避免攻击者清除日志后无法溯源加固方法:vi /etc/rsyslog.conf
//编辑配置文件,在末尾加入一行
*.*@192.168.242.1
作用是将全部日志转发到192.168.242.1的UDP 514端口。
保存退出。
Linux系统入侵排查
检查资源占用情况
检查进程的资源占用情况
攻击程序往往会占用大量CPU资源,如挖矿类程序。通过查看CPU使用情况可以快速识别恶意程序。检查方法:
//查看进程的资源占用信息
top -i
按P键,按照CPU使用率排序,按M
键,按照内存使用率排序。检查结果:
经检查,主机的资源占用情况正常。
检查网络连接情况
检查进程的网络连接
攻击者入侵系统后留下后门程序,后门会通过网络与攻击者建立连接。检查方法:netstat -anpo | less
处置方法:
为减少服务器的损失,立即断开此服务器的网络连接,并终止挖矿进程。
systemctl stop network //停止网络服务,断开网络
kill -9 966 //杀死挖矿进程
检查日志信息
检查当前登录账户
检查目的:
查看当前正处于登录状态中的用户,可能攻击者也在里面。
检查方法:who //查看登录者
w//查看登录者及其正在做的事情
检查结果:
通过检查发现,当前除了用于应急响应而登录的用户之外,还存在着root账户的远程登录。
处置方法:pkill -kill -t tty1 //踢掉tty1线路上的root用户
检查账户失败登录日志
检查目的:
失败登录日志意味着口令爆破等非授权访问企图。
检查方法:last
//查看成功登录日志lastb//查看失败登录日志lastb | awk \'fprint $3}\' l sort / uniq -c / sort -nr | head -5
//查看登录失败次数最多的前5名
//查看针对root用户的口令爆破情况cat /var/log/secure* | grep \"Failed password for root\" | awk \' fprint $11}’| sort / uniq -c lsort -nr / more
检查结果:lastb | head -n 20
//显示前20条登录失败记录
检查命令历史
检查目的:
命令历史记录着用户的操作命令,从中找到异常操作,从而发现黑客入侵系统所使用的手段。通过检查root用户的命令历史,发现了攻击者的具体操作。
检查方法:history //查看用户执行过的命令
cat~/.bash_history //查看用户命令历史文件的内容
检查cron日志
cron日志记录着系统执行过的计划任务。黑客可能通过cron在服务器上定期执行一些操作以维持控制,因此检查cron日志可以发现入侵痕迹。
检查方法:
//查看cron日志cat /var/log/cron
检查异常账号
异常账号包括无法说明用途的账号、uid为0的账号、弱口令/空口令账号等。uid为0的账号拥有系统的超理员权限,正常情况下,只有root账户的uid为0,如果还存在其它uid为0的账户,则必为后门账户。检查方法:
//查看uid为0的账号getent passwd | awk -F: \'$3 == \"0\" { print $1 }
检查自动运行程序
自动运行的程序包括crontab任务、开机运行的服务,以及开机运行的程序等。
攻击者入侵后,为避免暴露恶意程序,可能会让恶意程序每次运行后立即退出,并通过计划任务使恶意程序周期性地运行。
检查方法:
//查看root账户的计划任务crontab -u root -l
检查ssh后门文件
攻击者将自己的ssh证书部署到服务器后,即使管理员修改了口令,攻击者也不会受到影响,依然可以远程登录。
检查方法:cd /root/.ssh
cat authorized_keys //查看ssh授权文件
暂无评论内容