系统安全及应用

it2023-06-09  85

系统安全及应用

1. 账户安全基本措施1.1 系统账户清理1.2 密码安全控制1.3 命令历史限制1.4 注销时自动清空命令历史1.5 终端自动注销 2. 使用su命令切换用户2.1 su命令--切换用户2.2 sudo 命令 —— 提升执行权限 3. 系统引导和登录控制3.1 开关机安全控制3.2 终端登录安全控制3.3 系统弱口令检测3.4 网络端口扫码

1. 账户安全基本措施

1.1 系统账户清理

将非登录用户的shell设为/sbin/nologin 锁定长期不使用的账号 删除无用的账号 锁定账号文件passed,shadow passwd -l tangtang ###锁定tangtang账户 usermod -s tangtang /sbin/nologin ##设置tangtang账户远程无法登录 usermod -L tangtang ##锁定tangtang账户 passwd -u 账号 ##解封账号 usernod -U 账号 ##解封账号 userdel -r 账号 ##删除账号chattr +i /etc/passwd /etc/shadow ##锁定账号 只能读不能写chattr +i /etc/passwd /etc/shadow ##解锁账号,能读也能写lsattr /etc/passwd /etc/shadow ##查看状态

1.2 密码安全控制

设置密码有效期 要求用户下次登录时修改密码 vi /etc/login.defs ##适用于新建用户,搜索PASS看有没有相对应的,有就把后面的数字改为30 ,代表有效期30天修改密码 chage -M 30 账户 ##适用于已有用户 (修改账户有效期30天) chage -d 0 账号 ##强制账号下次登录时更改密码 cat /etc/shadow ##可以看看这个账号里面的有效期生效没有

1.3 命令历史限制

减少记录的命令条数

方式一 vi /etc/profile ## /HISTSIZE 查看这个查参数 假设后面时2000,把它改下200,这时候他记录的命令就是200条 wq ##保存 source /etc/profile ##刷新一下,生效 方式二 还有一种改发,把当前HISTSIZE改下 export HISTSIZE=200 立马生效

1.4 注销时自动清空命令历史

vi .bash_logout ##编辑.bash_logout echo >/root/.bash_history ##添加下面两条命令 history -c source .bash_logout ##刷新一下 history ##看不到历史记录了

1.5 终端自动注销

vi /etc/profile ##这个是编辑全局变量的文件 export TMOUT=600 ##终端600秒没动,自动注销账户 export意思申明全局变量 soure /etc/profile ##刷新这个文件,生效下 上面是全局终端自动注销,还有一个是当前账户自动注销 vi .bash_profile export TMOUT=600 ##终端600秒没动,自动注销账户 soure /etc/profile ##刷新这个文件,生效下

2. 使用su命令切换用户

大多数 Linux 服务器并不建议用户直接以 root 用户进行登录。一方面可以大大减少因误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。鉴于这些原因,需要为普通用户提供一种身份切换或权限提升机制,以便在必要的时候执行管理任务。

Linux 系统为我们提供了 su、sudo 两种命令,其中 su 命令主要用来切换用户,而 sudo命令用来提升执行权限。

2.1 su命令–切换用户

使用 su 命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。

密码验证 root -》任意用户,不验证密码 普通用户-》其他用户,验证目标用户的密码 su - root 带- 选项表示将使用目标用户的登录shell环境 whoami 查看一下现在是什么账户 限制使用su命令的用户 将允许使用的su命令的用户加入wheel组 启用pam_wheel认证模块 gpasswd -a tangtang wheel 将tangtang账户加入wheel组中 [root@localhost ~]# vi /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so #Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid #Uncomment the following line to require a user to be in the "wheel" group. #auth required pam_wheel.so use_uid ###去掉这里的#号,启用pam_wheel认证模块 vi /etc/login.defs ##进入这个里面编辑 SU_WHEEL_ONLY=yes ##仅允许wheel里面的用户登录(插入到最后)

安全日志文件 /var/log/secure

PAM认证原理 PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so;

PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d 下),最后调用认证文件(位于/lib/security 下)进行安全认证;

用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的。如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看,

每一行都是一个独立的认证过程; 每一行可以区分为三个字段:n 认证类型n 控制类型n PAM 模块及其参数

PAM 认证类型包括四种 认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;

帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;

密码管理(password management):主要是用来修改用户的密码;

会话管理(session management):主要是提供对会话的管理和记账。

2.2 sudo 命令 —— 提升执行权限

1. 在配置文件/etc/sudoers 中添加授权 vi /etc/sudoers tang8 tangtangzhenkeai=/sbin/*,!/sbin/reboot ##授予tang8账号所有权限,除了重启 2. 进入tang8测试 sudo ifconfig ens33:1 192.168.100.100 ##测试一下,看能不能创建子端口 ifconfig ###看一下创建成功没有

3. 系统引导和登录控制

3.1 开关机安全控制

调整 BIOS 引导设置 将第一优先引导设备(First Boot Device)设为当前系统所磁盘。

禁止从其他设备(如光盘、U 盘、网络等)引导系统,对应的项设为“Disabled”。

将 BIOS 的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改

限制更改GRUB引导参数 为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过PBKDF2 算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00_header 配置文件中,添加对应的用户、密码等配置

grub2-mkpasswd-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" password_pbkdf2 root grub.pbkdf2.sha512.10000.D294CAC961BC4FC289D217D99D5D7DE 263B314E69A1653B9EE8CC2484A7108BED00D810EE2C78A02DD4FAA4F95EC0DC7BF05C3D5BD4F 30ACFC4E9AE62C0D2789.AC5832427DB5E6BD0FD38EE05DD86010768F5743C2B7C46794A0C85D 8F8DC6FA18C78BDEBC51F09465FA31772F24AD54D271439445E902F9E035F43F801F4239 EOF [root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg ##生成新的grub.cfg 文件

重新开机进入进入GRUB菜单 需要根据提示输入正确的GRUB菜单

3.2 终端登录安全控制

限制root只在安全终端登录 vi /etc/securetty ##进入安全终端配置里面 #tty5 ##在想要禁用的终端前面# wq ##保存退出 init3 ##切入命令模式 测试一下 用Alt+F4 进入tty4终端,依次类推 禁止普通用户登录 建立/etc/nologin文件 删除nologin文件或重启后即恢复正常 touch /etc/nologin ##创建文件 vi /etc/nologin ##进入编辑 加入自己要禁止的账户名字 wq ###保存退出 这样被禁止的账户就没有办法登录了 rm -rf /etc/nologin ### 取消被禁止的账号的限制

3.3 系统弱口令检测

将 john-1.8.0.tar.gz压缩包放进opt目录下 方法一 cd /opt ##进入opt目录下 tar zxvf john-1.8.0.tar.gz ##解压这个压缩包 cd /john-1.8.0 ##进入解压好的这个文件里面 cd src/ ##进入src子目录中 make clean linux-x86-64 ##执行这条命令,执行好之后会在run下面生成一个可执行的john文件 cp -p /etc/shadow /root/shadow.txt ##将shadow文件备份到root下面 cd run/ ##进入run界面 ./john /root/shadow.txt ## 执行强力破解密码 方法二 使用密码字典文件 cd …/run ##进入run界面 ll ##可以看到passwork.lst 这个文件 vi passwork.lst ##进去到最后加入密码 wq ###保存 退出 ./john --wordlist=./password.lst /root/shadow.txt ##密码字典破解密码 vi john.pot ##这里面可以看到破解的密码 :>john.pot ##清空已经破解的账户列表,以便重新分析

3.4 网络端口扫码

nmap [扫描类型] [选项] <扫描目标> -p 指定扫描端口

-n 禁用反向dns解析

-sS TCPSYN扫描(半开扫描);只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放

-sF TCP FIN扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性

-sU UDP扫描:探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢

-sP ICMP扫描:类似于ping检测,快速判断目标主机是否存活,不做其他扫描

P0 跳过ping检测:这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描 mount /dev/cdrom /mnt 挂载光盘 cd /mnt/Packages/ 进Packages目录下 rpm -ivh nmap-6.40-7.el7.x86_64.rpm 解压这个网络扫描文件 nmap 127.0.0.1 扫描常用的TCP的端口 nmap -sU 127.0.0.1 扫描常用的UDP端口 nmap -p 21 192.168.1.0/24 检测192.168.1.0/24 网段中有哪些主机提供FTP服务 nmap -n -sP 192.168.1.0/24 检测192.168.1.0/24网段中有哪些存活主机() nmap -p 139,445 192.168.1.100-200 检测IP在192.168.1.100-200的主机是否开启文件共享服务 
最新回复(0)