Linux系统安全
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统安全,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含7535字,纯文字阅读大概需要11分钟。
内容图文
![Linux系统安全](/upload/InfoBanner/zyjiaocheng/923/2682b990d4424f2e86879a742823a6e4.jpg)
一、账号安全控制
(一)系统账号清理
1、将非登录用户的Shell设为/sbin/nologin
usermod -s /sbin/nologin用户名
2、锁定长期不使用的账号
usermod -L用户名 passwd-l 用户名 --------------锁定账号
passwd-S用户名 ----------------------------查看用户状态
passwd -u 用户名 ------------------------------------解锁账号
3、删除无用的账号
userdel -r 用户名
4、锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow --------------锁定文件
Isattr /etc/passwd /etc/shadow-----------------------查看状态
chattr -i /etc/passwd /etc/shadow-----------------解锁文件
(二)密码安全控制
1、设置密码有效期
[root@localhost ~]# vi /etc/login.defs----------------修改密码配置文件,适用于新建用户
PASS_ MAX_ DAYS 30
[root@localhost ~]# chage -M 30 zhangsan-----------适用于已有用户
2、要求用户下次登录时修改密码
[root@localhost ~]# chage -d 0 zhangsan-------------强制在下次登录时更改密码 [root@localhost ~]# cat /etc/shadow | grep zhangsan--------------shadow文件中的第三个字段被修改为
(三)命令历史限制
1、减少记录的命令条数
[root@localhost ~]# vi /etc/profile----------------系统环境变量配置文件(所有用户登录都会执行) export HISTSIZE=200
2、登录时自动清空命令历史
[root@localhost ~]# vi ~/.bashrc echo “” > ~/.bash_ history
(四)终端自动注销
1、闲置600秒后自动注销
[root@localhost ~]# vi letc/profile export TMQUT=600 [root@localhost ~]# source /etc/profile
二、使用su命令切换用户
(一)用途用法及密码验证
?作用:切换用户
?格式:su [-] 目标用户 #带“-”表示使用目标用户的登录shell环境,不加环境变量不变。
?可登录的用户一般分两种种,超级用户root、普通用户。
?当root切换到任意的用户时,不需要密码。但当普通用户切换其他用户的时候,需要输入目标用户的密码进行验证。
(二)限制使用su命令的用户
1、将允许使用su命令的用户加入wheel组
gpasswd -a 用户 wheel #添加用户到wheel组中 grep wheel /etc/group #确定wheel组成员
2、修改/etc/pam.d/su认证配置启用pam_wheel认证
vim /etc/pam.d/su #编辑/etc/pam.d/su文件 auth sufficient pam_rootok.so #pam_rootok.so模块的主要作用是使uid为0的用户root能够直接通过认证而不用输入密码 ... #省略部分 auth required pam_wheel.so use_uid #pam_wheel.so作用是让wheel组内的用户使用su命令,其他人(包括root)无法使用su命令 每种状态的解释: 两行都注释:所有用户都能使用su命令,切换时root和普通用户都需要密码验证 开启第一行,注释第二行:(默认状态)允许所有用户间使用su命令进行切换的,切换时,root不需要密码,其他用户需要密码。 注释第一行,开启第二行:只有wheel组内的用户才能使用su命令,root用户也无法切换。 两行都开启:只有root用户和wheel组内的用户才可以使用su命令。
修改文档将命令前面的注释符“#”删除,并“wq”保存。
(三)查看su操作记录
1、安全日志文件—/var/log/secure
三、Linux中的PAM安全认证
(一)PAM安全认证流程
(二)PAM认证原理
?PAM认证顺序:Service(服务)—>PAM(配置文件)—>pam_*.so
?PAM首先确定服务,然后加载相应的PAM配置文件,最后调用PAM认证模块进行安全认证。
用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM 模块也是不同的。四、使用sudo机制提升权限
(一)sudo命令的用途及用法
?作用:提升执行权限(使用其他用户的身份执行)
?用法:sudo 授权命令(二)配置sudo授权
1、visudo或vi /etc/sudoers
vi /etc/sudoers----此文件默认权限为440,保存退出时必须执行wq!强制操作
2、记录格式
用户 主机名=命令程序列表
3、语法格式
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表用户:直接授权指定的用户名,或采用“%组名"的形式(授权一个组的所有用户)
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户): 用户能够以何种身份来执行命令。此项可 省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,"进行分隔。ALL则代表系统所有命令
4、设置别名
输入时,有时候有些用户、主机名或命令字符比较长或复杂,可以设置一个别名,方便省力。
使用关键字 User_Alias、Host_Alias、Cmnd_Alias 来进行设置别名(别名必须为大写) 多个信息需要用“,”隔开。 User_Alias USERS=用户名1,用户名2,用户名3 #用户别名,USERS代表后面三个用户 Host_Alias HOSTS=localhost,bogon #主机别名 Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel #命令别名 USERS HOSTS=CMNDS #使用别名编写授权
(三)查看sudo操作记录
1、需要启动Defaults logfile配置
2、默认日志文件在"/var/log/sudo"
(四)查询授权的sudo操作
五、开关机安全控制
(一)调整BIOS引导设置
?将第一引导设备设为当前系统所在硬盘
?禁止从其他设备(光盘、U盘、网络)引导系统
?将安全级别设为setup,并设置管理员密码(二)GRUB限制
?使用grub2-mkpasswd-pbkdf2生成密钥
?修改/etc/grub.d/00_ header文件中, 添加密码记录
?生成新的grub.cfg配置文件grub2-mkpasswd-pbkdf2 #使用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 #修改/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 文件
1、使用grub2-mkpasswd-pbkdf2生成密钥
2、修改/etc/grub.d/00_header文件,添加密码记录
修改文件前备份文件,防止出现问题好恢复。这里将第三步的grup.cfg一起备份了
3、生成新的grub.cfg配置文件
重启系统init 6,在相应界面按“e”,会跳出下图界面,按照提示输入用户名和密码才可以进入grub菜单。
六、终端登录安全控制
(一)限制root只在安全端登录
1、安全终端配置:/etc/securetty
vi /etc/securetty ..... #tty5 #tty6 #禁止root用户从终端tty5、tty6登录
(二)禁止普通用户登录
1、建立 /etc/nologin文件
2、删除 nologin 文件或重启后即恢复正常
[root@localhost ~]# touch /etc/nologin #禁止普通用户登录 [root@localhost ~]# rm -f /etc/nologin #取消上述登录限制
七、系统弱口令检测
一款密码分析工具,支持字典式的暴力破解。通过对shadow文件的口令分析,可以检测密码强度。---解压工具包---- 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 --wordlist=./password.lst /opt/shadow.txt #使用指定的字典文件进行破解
1、解压工具包到opt目录下
2、将本地磁盘挂载到/mnt目录下,然后安装安装软件编译工具
3、切换到scr子目录进行编译安装
4、准备待破解的密码文件,然后去到 /opt/john-1.9.0/run子目录下执行强制破解,/john --show /opt/shadow.txt查询已破解出的账号列表
5、若字典中没有此密码,则添加
八、网络端口扫描------NMAP
(一)安装 NMAP 软件包
mount /dev/sr0 /mnt #先进行本地磁盘挂载 yum install -y nmap #然后安装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 扫描的速度会比较慢 |
-s | ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描 |
-P0 | 跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法 ping 通而放弃扫描 |
内容总结
以上是互联网集市为您收集整理的Linux系统安全全部内容,希望文章能够帮你解决Linux系统安全所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。