目录
账号安全基本措施
系统账号清理
●将非登录用户的ShelI设为/sbin/nologin
usermod -s /sbin/nologin
●锁定长期不使用的账号
usermod-L用户名
passwd-I用户名
passwd -S用户名
●删除无用的账号(userdel [-r])
●锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow
Isattr /etc/passwd /etc/shadow 解锁文件并查看状态
chattr -i /etc/passwd /etc/shadow
■密码安全控制
●设置密码有效期
●要求用户下次登录时修改密码
账号安全基本措施
■命令历史限制
●减少记录的命令条数
●注销时自动清空命令历史
终端自动注销
●闲置600秒后自动注销
使用su命令切换用户
■用途及用法
●用途: Substitute User,切换用户
●格式su-目标用户
■密码验证
●root- >任意用户,不验证密码
●普通用户→其他用户,验证目标用户的密码
使用su命令切换用户
限制使用su命令的用户
●将允许使用su命令的用户加入wheel组
●启用pam_ wheel认证模块
使用su命令切换用户
限制使用su命令的用户
将允许使用su命令的用户加入wheel组
●启用pam_ _wheel认证模块
■查看su操作记录
●安全日志文件: /var/log/secure
Linux中的PAM安全认证
■su命令的安全隐患
●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
■PAM(Pluggable Authentication Modules)可插拔式认证模块
●是一-种高效而且灵活便利的用户级别的认证方式
●也是当前L inux服务器普遍使用的认证方式
■- -般遵循的顺序;
◆Service (服务) - →PAM (配置文件) - →pam_ * .so
■首先要确定哪一项服务,然后加载相应的PAM的配置文
件(位于/etc/pam.d下),最后调用认证文件(位于
/lib64/security下)进行安全认证
■用户访问服务器时,服务器的某- -个服务程序把用户的
请求发送到PAM模块进行认证
■不同的应用程序所对应的PAM模块是不同的
■查看某个程序是否支持PAM认证,可以用Is命令
示例:查看su是否支持PAM模块认证
Is /etc/pam.d | grep su
■查看su的PAM配置文件: cat /etc/pam.d/su
●每一行都是一一个独立的认证过程
●每一行可以区分为三个字段
◆认证类型,
◆控制类型
◆PAM模块及其参数
PAM安全认证流程
■控制类型也称做Control Flags,
用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但
返回Fail
2.requisite验证失败则立即结束整个
验证过程,返回Fail
3.sufficient验证成功则立即返回,不
再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息
(通常用于session类型)
使用sudo机制提升权限
配置sudo授权
●visudo或者vi /etc/sudoers
●记录格式 用户 主机名列表 =命令程序列表
系统弱口令检测
JohntheRipper是一款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。
#解压工具包
cd /opt
tar. zxf john-1.8.0. tar.gz
#安装软件编译_工具
yum install -y gcc gcc-c++ make
#切换到src子目录
cd /opt/john-1.8.0/src
#进行编译安装
make clean linux-x86-64
#准备待破解的密码文件
cp. /etc/ shadow /opt/ shadow. txt
#执行暴力破解
cd /opt/john-1.8.0/ run
./john /opt/ shadow. txt
#查看已破解出的账户列表
. /john --show /opt/ shadow. txt
#使用密码字典文件
> john. pot
#清空已破解出的账户列表,以便重新分析
./ john --word1 ist=./password.1st /opt/ shadow. txt
#使用指定的字典文件进行破解
echo "PS1='\[\e[1; 35m\] [\u@\h \W] \\$\[\e [Om\] '" >> .bashrc PS1='\[\e[1; 34m\] [\u@\h \W] \$\[\e [0m\] '
■安装JR工具
●安装方法 make clean系统类型
●主程序文件为john
■检测弱口令账号
获得Linux/Unix服务器的shadow文件
执行john程序,
将shadow文件作为参数
■密码文件的暴力破解
●准备好密码字典文件,默认为password.Ist
执行john程序,结合-wordlist=字典文件
■NMAP
●一款强大的网络扫描、安全检测工具
●官方网站: http://map.org/
●CentOS 7.7光盘中安装包nmap-6.40-7 .el7.x86_ 64.rpm
网络端口扫描
控制位
SYN 建立链接
ACK 确认
FIN 结束断开
PSH 传送 0 数据缓存 上层应用协议
RST 重置
URG 紧急
rpm -qa l grep nmap查看nmap
yum install -y nmap
nmap命令常用的选项和描类型
-p:指定扫描的端口。
-n:禁用反向DNS解析(以加快扫描速度)
-sS:TCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放
-sT:TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU:UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP:ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-PO:跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。
示例:
#分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1
#检测192.168.80.0/24网段有哪些主机提供HTTP服务
nmap -p 80 192.168.80.0/24
#检测192.168.80.0/24网段有哪些存活主机
nmap -n -sP 192.168.80.0/24
总结
主要学习学习系统安全及应用,需要掌握学习系统安全及应用的命令与原理
文章浏览阅读1.1k次。服务器的各种BUG
文章浏览阅读147次。什么是man手册 首先,man是manual的简称,中文说法可以是手册。在Linux世界中,许多新手请教某条命令的用法时, 好多不耐心的老手通常会用一条命令来回答这位无助的新手,而这条命令通常就是man开头。无助的新手敲上这条命令一看究竟,在终端上顿时显示出来了一屏幕的英文,老手的意思是,自己看看手册吗,可是看手册也是有学问的,无助的新手甚至不知道怎么退出..._man 中文包
文章浏览阅读1.9w次,点赞7次,收藏20次。Windows:用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-c compartment] [-p] [-4] [-6] target_name选项: -t _ping指定源ip目的ip
文章浏览阅读5k次。非常神奇_cannot stop container
文章浏览阅读3.8k次。现在是信息社会,我们的工作和生活每天都离不开电脑,我们经常要在电脑上处理一些文件和资料,利用电脑进行娱乐和学习。因此掌握电脑技术的学习非常重要,我们可以通过一些方法快速的学会电脑。想要学会电脑,首先要了解电脑的结构和工作原理。电脑的组成是由主板,CPU,内存,显卡,硬盘,电源,键盘,鼠标,显示器等部件构成。电脑系统分为硬件系统和软件系统。硬件系统又分为中央处理器:运算器和控制器。存储器又分为内部存..._学电脑自学方法
文章浏览阅读2.1k次,点赞3次,收藏28次。这个rgbd-slam代码是根据高翔的代码改编过来的,具体可以参考创客制造的以下教程https://www.ncnynl.com/category/rgbd-slam/下面我分为7步来介绍我的实现步骤以及中途可能遇到的bug和解决方案1.硬件这是淘宝上买的二手货,只要300多,用起来没什么问题,你可以先在windows下用它的sdk测试以下相机有没有什么问题左边的圆孔为红外..._kinect 1.0
文章浏览阅读1.1k次。在控制台页面会报出警告" Failed to resolve component: router-link"无法识别router-linkimport { createApp } from 'vue'import App from './App.vue'import router from "./router/index"; //引入routerimport './index.css'// 挂载 路由const app = createApp(App)app.use(router) app._vue3导航栏直接访问router没生效
文章浏览阅读105次。在Sun JDK 1.2及后续版本中,包含了一组可在程序运行时刻编译和执行Java代码的API。这些API被包含在tools.jar类库中。这个功能允许Java程序在运行时动态编译、执行小的代码块,在有些情况下这个功能会让Java应用程序的架构更加灵活、开放。 本文假定读者已经在计算机中安装并配置好了Sun JDK 1.2或更高的版本,并对javac编译器命令有所了解。在Java程..._java 编译动态指定主类
文章浏览阅读87次。 模块: os process fs url path querystring util child_process http http.Server http.ServerRequest http.ServerResponse events 核心模块核心模块是被编译成二进制代码,引用的时候只需..._nodejs 内核函数
文章浏览阅读1k次,点赞24次,收藏26次。API应用
文章浏览阅读175次。内容导读LockSupport 和 CAS 是Java并发包中很多并发工具控制机制的基础,它们底层其实都是依赖Unsafe实现。LockSupport是用来创建锁和其他同步类的基本 线程阻塞 原语。park()和unpark()不会有 Thread.suspend 和 Thread.resume 所可能引发的死锁问题,由于许可的存在,调用 park 的线程和另一个试图将其 unpark 的线程之间..._locksupport.java 175
文章浏览阅读9k次。TITLE Save an array and dispalyINCLUDE Irvine32.inc.dataarray DWORD 12 DUP (?) ; define a array for saving Fibonacci numbersstep = type arraynum DWORD ?count DWORD ?prompt byte "The first_汇编语言递归求斐波那契