Linux 系统安全及应用

目录

一、系统账号清理

二、账号安全基本措施

1.密码安全控制

 1.1对于新用户设置密码规则

1.2 对已有用户修改密码

 2.命令历史限制

 3.终端自动注销

三、用户切换和用户提供

1.su命令

 2.sudo 命令

2.1用户提权

 2.2配置sudo授权

 2.3 查看sudo操作日志

 3.禁止root用户登录

4. 禁止普通用户登录

四、Linux中的PAM安全认证

1.PAM概念

2.su命令的安全隐患

3.PAM认证原理

 4.PAM 认证构成

 五、网络端口扫描


一、系统账号清理

  1. 将非登录用户的shell设为/sbin/nologn   // usermod -s /sbin/noolgn 用户名
  2. 锁定长期不使用的账号                          //usermod -L  用户名 (-L/l 锁定 -U/u 解锁 )
  3. 删除无用的账号                                    //userdel [ -r ]  用户名 
[root@tanpw ~]# usermod -s /sbin/nologin dingyi     #使dingyi用户不能登录
[root@tanpw ~]# cat /etc/passwd | grep dingyi       #查看dingyi用户信息
dingyi:x:1004:1004::/market/market3/dingyi:/sbin/nologin  #/bin/bash改为了/sbin/nologin

[root@tanpw ~]# userdel -r xiaoxu                   #删除xiaoxu用户及其家目录

usermod -L 用户名   锁定用户    passwd -l 用户名    锁定用户
usermod -U 用户名   解锁用户    passwd -u 用户名    解锁用户

   4 .锁定账号文件  passwd 、shadow       

chatter 命令  用于修改文件或目录的属性,设置文件的特殊属性,使其具有更高级的保护或控制

 chatter 选项  文件名

+i :将文件设置为“不可修改”,即无法被删除、重命名、修改内容或链接的操作

-i :取消对文件的“不可修改”属性

+a:只能向文件中添加内容,无法修改或删除已有内容

chattr +i/etc/passwd /etc/shadow   锁定文件并查看状态
chattr -i/etc/passwd /etc/shadow   解锁文件

二、账号安全基本措施

1.密码安全控制

设施密码有效期,要求用户下次登录时修改密码等

 1.1对于新用户设置密码规则

vim /etc/login.defs

PASS_MAX_DAYS:       #用户密码最长有效天数
PASS_MIN_DAYS:       #用户可修改密码的最小间隔天数
PASS_MIN_LEN:        #用户密码的最小长度
PASS_WARN_AGE:       #指定在密码过期前几天向用户发出警告
1.2 对已有用户修改密码
chage [选项] 用户名
chage -d 0 zhangsan  # 强制张三用户下一次登录时要修改密码

-m:密码可更改的最小天数,m=0 代表任何时候都可以更改密码
-M:密码保持有效的最大天数
-w:用户密码到期前,提前收到警告信息的天数
-E:帐号到期的日期。过了这天,此帐号将不可用
-d:上一次更改的日期
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

 2.命令历史限制

减少记录的命令条数,登陆时自动清空历史命令

修改全局配置文件
vim /etc/profile

export HISTSIZE=20 #使用histor命令时,可查询到的历史命令为20条

source /ect/profile  #重新加载配置文件
————————
注销时清空历史命令
vim .bash_logout

echo "  "  > /root/.bash_hostaty   #空文件导入,将空行替换到.bash_hostary
登录后会自动运行上述命令,即登录时自动清理命令的历史记录

 3.终端自动注销


vi /etc/profile

export TMOUT=600     #设置终端闲置600秒后自动注销
 
source /etc/profile     #重新加载配置文件

三、用户切换和用户提供

1.su命令

su命令及swich user,命令可以切换用户身份,并且以指定用户的身份执行命令

su  用户名   #切换到其他用户,切换到其他用户时需要密码(root到其他用户不需要密码)

whomi    # 显示当前登录的用户

 2.sudo 命令

2.1用户提权

sudo命令以超级用户的身份去执行命令

sudo [选项] 命令
 2.2配置sudo授权
vi sudo 或 vi /etc/sudoers #此文件默认权限为440,保存退出时必须使用"wq!"命令强制执行
语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表

用户:  直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
(用户): 用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表: 允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中的所有命令

Tom ALL=/sbin/ifconfig
Jerry localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff #通配符"*"表示所有、取反符号"!"表示排除
%wheel ALL=NOPASSWD: ALL		#表示wheel组成员无需验证密码即可使用sudo执行任何命令
Mike ALL=(root)NOPASSWD:/bin/kill,/usr/bin/killall  #用户Mike无需密码即可作为root用户执行命令


使用关键字 User_Alias、Host_Alias、Cmnd_Alias 来进行设置别名(别名必须为大写)
User_Alias USERS=Tom,Jerry,Mike     #指定用户设置别名
Host_Alias HOSTS=localhost,bogon    #为用户主机名设置别名
Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel #为命令设置别名
 2.3 查看sudo操作日志
visudo  #编辑sudo配置

Defaults logfile = "/var/log/sudo"   #设置sudo命令的默认日志文件路径

tail /ver/log/sudo   #查看sudo操作日志

 3.禁止root用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统。

vi /etc/securetty
tty5
tty6 #禁止root用户从终端tt5 tt6登录

4. 禁止普通用户登录

禁止普通用户登录需要建立/etc/nologin 文件

touch /etc/nologin    #禁止普通用户登录
rm -rf /etc/nologin   #删除nologin文件后重启恢复正常

 

四、Linux中的PAM安全认证

1.PAM概念

PAM(Pluggable Authentication Modules)可插拔式认证模块。是一种高效而且灵活便利的用户级别的认证方式,也是当前Linux服务器普遍使用的认证方式。

2.su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险。为了加强su命令的使用控制,可借助于PAM认证模块只允许极个别用户使用su命令进行切换

3.PAM认证原理

一般遵循的顺序:Service (服务)——>PAM(配置文件)——>pam_*.so

  •  首先要确定哪一项服务,然后加载相应的PAM的配置文(牛(位于/etc/pam.d下),最后调用认证文件(位于/ib64/security下)进行安全认证
  • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
  • 不同的应用程序所对应的PAM模块是不同的

 4.PAM 认证构成

ls /etc/pam.d | grep su  #ls查看su是否支持PAM模式认证
car /etc/pam.d/su  #查看su的PAM配置文件
  • 每一行都是一个独立的认知过程
  • 每一行可以分为三个字段:认证类型,控制类型,PAM模块及其参数

 

 

控制类型也可以称作Control Flags,用于PAM验证类型的返回结果

  • required验证失败时仍然继续,但返回Fail
  • requisite验证失败则立即结束整个验证过程,返回Fail
  • sufficient验证成功则立即返回,不在继续,否则忽略结果并继续
  • optional不用于验证,只显示信息(通常用于session(会话)类型)

 五、网络端口扫描

nmap :一款强大的网络扫描、安全检测工具

nmap [扫描类型]  [选项]  <扫描目标...>

 nmap命令常用的选项和扫描类型

选项
-p指定扫描的端口
-n禁用反向DNS解析(加快扫描速度)
-sSTCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN\ACK响应包就认为目标端口正在监听服务,并立即断开连接;否则认为目标端口并未开放。
-sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙对SYN数据包进行简单过滤,而忽略了其他形式的TCP。这种类型的扫描可间接检测防火墙的健壮性。
-sUUDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sPICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0跳过ping检测,这种方式认为所有的目标主机是活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃 。
 yum install -y nmap  #首先安装nmap程序 

nmap -sT 127.0.0.1
nmap -sU 127.0.0.1   #分别查看本机开放的TCP端口、UDP端口
nmap -p 80 192.168.4.0/24 #检测192.168.4.0/24网段有哪些主机提供HTTP服务
nmap -n -sP 192.168.4.0/24 #检测192.168.4.0/24网段有哪些存活主机

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值