usermod -s /sbin/nologin #将非登录用户的Shell设为/sbin/nologin
usermod -L 用户名 #锁定用户账户
passwd -l 用户名 #锁定账户密码
passwd -S 用户名 #查看用户状态
userdel -r 用户名 #删除用户及其宿主目录
passwd -d 用户名 #清空账户密码
chattr +i /etc/passwd /etc/shadow #锁定文件
lsattr /etc/passwd /etc/shadow #查看文件状态
chattr -i /etc/passwd /etc/shadow #解锁文件
对于新建用户,可以修改 /etc/login.defs 文件里的内容来设置密码规则
vim /etc/login.defs
chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码
-M:密码保持有效的最大天数
-w:用户密码到期前,提前收到警告信息的天数
-E:帐号到期的日期。过了这天,此帐号将不可用
-d:上一次更改的日期
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期
vim /etc/profile #编剧全局变量配置文件
export HISTSIZE=x #输入需要的命令条数
source /etc/profile #刷新重载
概述:~/.bashrc文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行
vim .bash_logout #退出后清除
echo " " >~/.bash_history #(一定要加空格)
vim ~/.bashrc #开机后清除(自己对自己生效)
echo " " > ~/.bashrc_history
vi /etc/profile #(对所有用户生效)
export TMOUT=600 #设置超过600秒后自动退出登录
source /etc/profile #刷新重载
su命令即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。
格式:vim /etc/pam.d/su
注:①、以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户使用su命令进行切换的
②、两行都注释也是允许所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码
(pam_rootok.so模块的主要作用是使uid为0的用户,即 超级管理员用户能够直接通过认证而不用输入密码)
③、如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令。
④、如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。
当用户来访问某一程序的时候,如果这个程序启用了pam模块,会先去读取配置文件,然后按照配置文件调用模块,进行操作。
控制类型也称作Control Flags,用于PAM验证类型的返回结果
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。
ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。
ulimit只影响shell进程及其子进程,用户登出后失效。
可以在profile中加入ulimit的设置,变相的做到永久生效
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制
ab -c1025 -n 2000 http://192.168.10.11/ #使用压力测试工具进行测试 打开的文件数
vim /etc/security/limits.conf #永久修改不用重启(软硬一起设置可以直接使用-)
用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用localhost(默认主机名),有配过主机名则用实际的主机名,ALL则代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分割。ALL则代表系统中的所有命令
可使用通配符“ * ”表示所有,取反符号“!”表示排除
例如:Jerry localhost=/sbin/*,!/sbin/poweroff
表示jerry用户操作localhost主机可使用sbin目录下的除poweroff以外的所有命令
注:Jerry仍可使用init、shutdown等命令执行关机操作,因此限制命令需做到全面无漏,否则限制影响十分有限。
别名格式:必须大写字母,数字可以使用但是不能放在开头
使用关键字User_Alias(用户)、Runas_Alias(代表用户)、Host_Alias(登录主机)、Cmds_Alias(命令)来进行设置别名
User_Alias USERS=Tom,Jerry,Mike
Host_Alias HOSTS=localhost,bogon
Cmnd_Alias CMDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel
USERS HOST=CMDS
root ALL=(ALL) ALL
用户 主机名ip= 命令
正常情况下,第一次使用sudo命令需输入密码验证,有效期为五分钟,过期后使用sudo需再次输入密码验证。
可以设置特定用户无需密码验证
Mike ALL=(ROOT)NOPASSWD:/bin/kill,/usr/bin/killall
也可设置组用户无需密码验证
%wheel ALL=NOPASSWD:ALL
以及所有用户无需密码验证
USERS HOSTS=NOPASSWD:CMDS
/var/log/sudo #默认日志文件
visudo #进入sudo配置文件
Defaults logfile="/var/log/sudo" #启动Defaults logfile
tail /var/log/sudo #查看sudo末尾10行记录
在/etc/grub.d/00_header文件中添加用户和PBKDF2加密口令的格式如下
使用grub2-mkpasswd-pbkdf2生成密钥
修改/etc/grub.d/00_header文件,添加密码记录
生成新的grub.cfg配置文件
grub2-mkpasswd-pbkdf2 #根据提示设置GRUB菜单的密码
PBKDF2 hash of your password is grub.pbkdf2…… # 省略部分内容为加密生成的密码字符串
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak # 制作备份
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak # 制作备份
vim /etc/grub.d/00_header
cat << EOF
set superusers="root" #设置登录用户为 root
password_pbkdf2 root grub.pbkdf2…… # 设置密码,省略部分内容为经过加密生成的密码字符串
EOF
grub2-mkconfig -o /boot/grub2/grub.cfg # 生成新的grub.cfg配置文件
完成配置修改工作,重启后进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。
grub2-setpassword #直接设置密码
安全终端配置
/etc/securetty
vi /etc/securetty
将tty5,tty6前加 “#” 将其注释,表示禁止root用户从终端tty5,tty6登录
建立/etc/nologin
touch /etc/nologin
删除nologin文件或重启后即恢复正常
rm -rf /etc/nologin
cd /opt
tar zxf john-1.8.0.tar.gz #解压工具包
yum install -y gcc gcc-c++ make #安装软件编译工具
cd /opt/john-1.8.0/src #切换到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 --wordlist=./password.list /opt/shadow.txt #使用指定的字典文件进行破解
添加字典内容
rpm -qa | grep nmap #检查是否已安装
yum install -y namp #若未安装,进行yum安装
常用选项/扫描类型 | 说明 |
---|---|
-p | 指定扫描的端口 |
-n | 禁用反向DNS解析(以加快扫描速度) ip转换成 域名 12222 2www.baidu.com |
-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通而放弃扫描 |
netstat -natp #查看正在运行的使用TCP协议的网络状态信息
netstat -naup #查看正在运行的使用UDP协议的网络状态信息
nmap -sT 127.0.0.1 #查看本机开放的TCP端口
nmap -sU 127.0.0.1 #查看本机开放的UDP端口
nmap -p 80 192.168.80.0/24 #检测192.168.80.0/24网段有哪些主机提供HTTP服务
nmap -n -sP 192.168.80.0/24 #检测192.168.80.0/24网段有哪些存活主机
服务 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
Telnet | 23 |
FTP | 21 |
SSH(安全登录)、SCP(文件传输)、端口重定向 | 22 |
SMTP | 25 |
POP3 | 110 |
WebLogic | 7001 |
TOMCAT | 8080 |
WIN2003远程登录 | 3389 |
Oracle数据库 | 1521 |
MS SQL* SEVER数据库sever | 1433 |
MySQL 数据库sever | 3306 |