Linux---系统安全及应用

10 篇文章 0 订阅
本文详细介绍了Linux系统的账户安全措施,包括账号管理、密码控制、命令历史限制、自动注销机制,以及使用su和sudo命令切换用户。此外,还讨论了系统引导和登录的安全控制,如BIOS设置、GRUB密码保护、终端登录限制和弱口令检测。最后,提到了网络端口扫描工具nmap的使用方法。
摘要由CSDN通过智能技术生成

一 账户安全基本措施

1.1 账号安全基本措施

  • 系统账号清理
    将非登录用户的shell设为/sbin/nologin
    锁定长期不使用的账号
[root@localhost ~]# usermod -L [帐号名]   ########锁定帐号
[root@localhost ~]# passwd -S [帐号名]     #######查看帐号状态
[root@localhost ~]# usermod -U [帐号名]   #######解锁账号
[root@localhost ~]# passwd -S [帐号名]

删除无用的账号
锁定账号文件passwd、shadow

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow	#######锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow		#######查看文件为锁定状态
----i----------- /etc/passwd	
----i----------- /etc/shadow	
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow	#######解锁文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow		#######查看为解锁状态
--------------- /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 ##刷新这个文件,生效下

二 使用su命令切换用户

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

2.1 su 命令——切换用户

  1. su用途及用法,密码验证
    使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。切换时需要对目标用户的密码进行验证(从root用户切换为其他用户时除外)
root -》任意用户,不验证密码   
  
  普通用户-》其他用户,验证目标用户的密码   
  
  su - root 带- 选项表示将使用目标用户的登录shell环境
  
  whoami 查看一下现在是什么账户
  1. 限制使用su命令的用户
    默认情况下,任何用户都运行使用su命令,从而有机会反复尝试其他用户的登录密码,带来安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许个别用户使用su命令进行切换。
    将允许使用su命令的用户加入wheel组
gpasswd -a pengpeng wheel   将pengpeng账户加入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

  1. PAM认证原理
    PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so;
    PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d 下),最后调用认证文件(位于/lib/security 下)进行安全认证;
    用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的。如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看,
    每一行都是一个独立的认证过程;
    每一行可以区分为三个字段:n 认证类型n 控制类型n PAM 模块及其参数
  2. PAM 认证类型包括四种
    认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;
    帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;
    密码管理(password management):主要是用来修改用户的密码;
    会话管理(session management):主要是提供对会话的管理和记账。
    在这里插入图片描述

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

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

三 系统引导和登录控制

3.1 开关机安全控制

  1. 调整 BIOS 引导设置
    将第一优先引导设备(First Boot Device)设为当前系统所磁盘。
    禁止从其他设备(如光盘、U 盘、网络等)引导系统,对应的项设为“Disabled”。
    将 BIOS 的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改

  2. 限制更改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  检测IP192.168.1.100-200的主机是否开启文件共享服务
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值