账号安全管理

  • 系统账号管理
    • 账号清理
    • 账号安全设置
    • 删除历史命令
  • 用户切换与提权
    • su命令——切换账户
    • sudo命令——提升执行权限
    • PAM认证
      • PAM及作用
      • PAM认证原理
      • PAM认证的构成
      • PAM认证类型
      • PAM控制类型
      • 用法
  • 终端机登录控制
    • 限制 root 只在安全终端登录
    • 禁止普通用户登录
  • 弱口令检测
  • 端口扫描

系统账号管理

账号清理

  • 账号分为 登录用户 与 非登录用户:
    登录用户:为超级用户root、自己创建的普通用户、别人使用的其他用户。
    非登录用户:为随系统或程序安装过程产生的其他大量其他账号包(例如 bin、daemon、adm、ip、mail、nobady、apache、mycql、dbus、ftp、gdm、haldaemon等)

  • 为了确保系统安全,这些非登录用户shell通常是 /sbin/nologin 的,表示禁止终端登录,确保别人不能随意改动。

[root@localhost~]#grep “/sbin/nologin” /etc/passwd ######可以查看禁止登录的非登录用户

而这种非登录用户中有相当一部分很少用到或根本不会用到,这些账号可以视为冗余账号,没什么卵用还占开机速度占空间等,我们就直接删除即可

  • 对于Linux服务器中长期不用的用户账号,不确定能不能删除,可以暂时时将其锁定,等到以后再删。

示例:
[root@localhost~]#usermod -L xiaojiejie 或者 passwd -l xiaojiejie ########锁定账号
[root@localhost~]#passwd -S xiaojiejie #########查看账号是否锁定状态

[root@localhost~]#usermod -U xiaojiejie 或者 passwd -u xiaojiejie ############解锁账号
[root@localhost~]#passwd -S xiaojiejie ##########查看账号是否锁定状态

  • 最安全的便是锁定账号的配置文件,只要锁上,如果不解开是无法删除的,无法添加账号,不能更改密码,登录shell,属主目录等属性信息。

[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

账号安全设置

在不安全的网络环境中,为了降低密码被猜出或者被暴力破解的风险,用户应该养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已经过期的用户,登录时将被要求重新设置密码,否则将拒绝登录。
密码有效期为30天:
[root@localhost~]#vi /etc/login.defs###########适用于新建的用户
PASS_MAX_DAYS 30########添加这条命令
[root@localhost~]#chage -M 30 lisi###########适用于已有的lisi用户

统一要求所有用户更改新密码:
[root@localhost~]#chage -d 0 xiaojiejie##########要求小姐姐用户下次登录需要改密码

删除历史命令

防止你的电脑被入侵后一查你的历史命令,你输了哪些命令一清二楚
有二种清除历史命令的方式:
1、history -C##########只能清除当时的历史命令,重启机器后就会再次出现
2、**vi /.bash_profile**#######vi编辑/.bash_profile
export HISTSIZE=0######添加这条命令,重启后删除这条命令,在刷新下

用户切换与提权

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

su命令——切换账户

示例:
[root@localhost~]#su - root ##############切换至root账户
password:

其中选项“-”表示切换用户后进入目标用户的登录shell环境,若缺少此选项则仅切换身份,不切换用户环境。对于切换root 用户,目标 root 可以省略不写。

  • 默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,带来安全风险。为了加强su命令的使用控制,可以借助于pam_wheel 认证模块,至允许极个别用户使用su命令进行切换。
    示例:
    将授权使用su命令的用户kcce添加到wheel 组,修改/etc/pam.d/su 认证配置以启用pam_wheel认证
    [root@localhost~]#gpasswd -a kcce wheel ######添加授权用户kcce
    (显示:) Adding user kcce to group wheel
    [root@localhost~]#grep wheel /etc/group###########确认wheel组成员
    (显示:) wheel:x:10:kcce
    [root@localhost~]#vi /etc/pam.d/su###########编辑配置文件/etc/pam.d/su
    (显示:) #%PAM-1.0
    auth sufficient pam_rootok.so

    auth required pam_wheel so use_uid #############去掉此行开头的#号

启用pam_wheel 认证后,未加入到wheel 组内的其他用户将无法使用su命令,尝试切换时会显示“拒绝权限”

sudo命令——提升执行权限

当你是普通用户在执行命令时有时会提示你没有执行权限,这会搞的你很不爽,所以这时你就得切换到超级用户root 账户,所以你必须得知道root 账户的密码,在生产环境中的Linux服务器每多一个人知道特权密码,其安全风险也就增加一分,而在这种情况下,管理员既不想给你密码又能让你有特权执行命令时就可以用到 sudo 命令了。(当然这得是管理员的事情了,是需要他来设置的)

  • 在配置文 /etc/sudoers 中添加授权
    sudo 机制的配置文件为 /etc/sudoers ,文件的默认权限为440,需使用专门的 visudo 工具进行编辑。
    也可以使用 vi /etc/sudoers 编辑文件,不过保存时必须执行 “wq!”强制操作,否则系统提示为只读文件而拒绝保存
    格式:user MACHINE=COMMANDS
    #:用户(user):授权的用户名,或采用 “%组名” 的形式 (授权一个组的所有用户)
    #:主机(MACHINE):使用此配置文件的主机名,此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设置为 localhost 或者实际的主机名即可。
    #:命令(COMMANDS):允许授权的用户通过sudo方式执行的授权命令,需要填写命令程序的完整路径,多个命令之间以 逗号 ”,“进行分隔。
    1、 典型的 sudo 配置记录中,每一行对应一个用户或组的 sudo 授权配置
    示例:
    要授权用户 Jerry 能够执行 ifconfig 命令来修改IP地址,而wheel 组的用户不需要验证密码就可执行文件

    [root@localhost~]# visudo
    (…省略一大堆内容)
    Jerry localhost=/sbin/ifconfig
    %wheel (空好几格) ALL=NOPASSWD:ALL

    ——————————————————————
    2、当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名来设置。
    用户(User_Alias)、主机(Host_Alias)、命令(Cmnd_Alias)
    示例:
    通过别名的方式来添加授权记录,允许用户Jerry、tom、kcce 在主机 smtp、pop 中执行 rpm、yum命令

    [root@localhost~]#visudo
    (…省略一部分内容)
    User_Alias(空格)OPERATORS=jerry,tom,kcce
    Host_Alias(空格)MAILSVRS=smtp,pop
    Cmnd_Alias(空格)PKGTOOLS=/bin/rpm,/usr/bin/yum
    OPERATORS(空格)MAILSVRS=PKGTOOLS
    ———————————————————————
    3、sudo 配置记录的命令部分允许使用通配符 “*”、取反符号 “!”,当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。
    示例:
    授权用户kkg 可以执行 /sbin/ 目录下除 ifconfig、route 以外的其他所以命令程序

    [root@localhost~]#visudo
    (…省略一部分内容)
    kkg localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
    ———————————————————————

    4、管理员想查看 sudo 日志记录,应在 /etc/sudoers 文件中增加 “Defaults logfile ” 设置
    示例:
    [root@localhost~]#visudo
    (…省略一部分内容)
    Defaults logfile = “/var/log/sudo

  • 通过 sudo 执行特权命令
    1、普通用户输入命令,会得到权限不够的提示

    [kcce@localhost~]$ /sbin/ifconfig egh0 192.168.1.11/24#######未使用sudo的情况
    SIOCSIFADDR:权限不够
    SIOCSIFNETMASK:权限不够

    [kcce@localhost~]$ sudo /sbin/ifconfig egh0 192.168.1.11/24#########使用sudo 的情况

    passwd for 用户:

    [kcce@localhost~]$/sbin/ifconfig egh0 ##########查看执行结果

    第一次通过sudo 执行命令时,必须以用户自己的密码(不是root用户或者其他用户的密码)进行验证,此后再次通过sudo执行命令时,只要与前一次sudo 操作的间隔时间不超过5分钟,则不再重复验证。

    2、已授权的用户查看自己的sudo 配置,未配置的用户将会得到 “may not run sudo”的提示
    示例:
    [kcce@localhost~]$visudo

    用户kcce可以在该主机上运行以下命令:
    kcce localhost=/sbin/ifconfig

    3、如果已经启用sudo日志,则可以从 /var/log/sudo 文件中看到用户的 sudo 操作记录
    示例:
    [kcce@localhost~]$tail /var/log/sudo

    May 13 09:49:47 :kcce : TTY=pts/0; PWD=/home/kcce ; USER=root;
    COMMAND=/sbin/ifconfig eth0:0 192.168.1.11/24

PAM认证

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

PAM及作用

  • PAM是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式
  • PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet、rlogin、fsh、ftp、)su等应用程序
  • 系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略

PAM认证原理

  • PAM认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so(.so 后缀代表模块文件)
  • PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
  • 用户访问服务器的时候,服务器的某一个服务程序把用户的不同请求发送到PAM模块进行认证不同的应用程序所对应的PAM模块也是不同的

PAM认证的构成

查看某个程序是否支持PAM认证,可以用 ls 命令:
ls /etc/pam.d | grep su查看 su 的PAM配置文件:
cat /etc/pam.d/su
其中:
1、每一行都是一个独立的认证过程
2、每一行可以区分为三个字段1)认证类型2)控制类型3)PAM模块及其参数

PAM认证类型

  • 认证管理
    接收用户管理,进而对该用户的密码进行认证
  • 账户管理
    检查账户是否被允许登录系统,账号是否过期,账号的登录是否有时间段的限制等
  • 密码管理
    主要用来修改用户的密码
  • 会话管理
    主要是提供会话的管理和记账

PAM控制类型

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

    1.required验证失败时仍然继续,但返回Fail

    2.requisite验证失败则立即结束整个验证过程,返回Fail

    3.sufficient验证成功则立即返回,不在继续,否则忽略结果并继续

    4.optional不用于验证,只显示信息(通常用于session(会话)类型)

用法

  • 限制使用 su 命令的用户
vi /etc/pam.d/suauth sufficient pam_rootok.so               ###去掉#号
#auth  required pam_wheel.so use_uid
  • 限制root用户登录
新建用户,切换用户,即使输入了正确的root密码,也无法登录密码
echo "su_WHEEL_ONLY yes" >> /etc/login.def
  • 添加 wheel
gpasswd -a 用户名 wheel

终端机登录控制

限制 root 只在安全终端登录

  • 安全终端配置:/etc/securetty
vi /etc/securetty# tty3
# tty4

禁止普通用户登录

  • 建立 /etc/nologin 文件
  • 删除 nologin 文件或吃那个气后及恢复正常
vi /etc/nologin
yong         ## 添加用户取消上述登录限制:
rm -rf /etc/nologin

弱口令检测

  • Joth the Ripper,简称为 JR,一款密码分析工具,支持字典式的暴力破解,通过对shadow文件的口令分析,可以检测密码强度。
[root@localhost ~]# mkdir /111      '创建挂载点'
[root@localhost ~]# mount.cifs //192.168.100.3/cccc /111   '挂载(cccc文件中有john压缩包)'
'对于如何将Windows中文件挂载到Linux中的,可以查看我的博客“Linux 安装及管理程序--理论和命令配置”https://blog.csdn.net/CN_TangZheng/article/details/102849246'
Password for root@//192.168.100.3/cccc:
[root@localhost ~]# cd /111
[root@localhost 111]# ls
john-1.8.0.tar.gz
[root@localhost 111]# tar zxvf john-1.8.0.tar.gz -C /opt   '将压缩包解压到/opt中'
[root@localhost 111]# cd /opt/john-1.8.0/  '进入压缩包'
[root@localhost john-1.8.0]# ls    '查看压缩包'
doc  README  run  src       'doc是说明文档,README是说明书,run是脚本,src是源码文件'
接下来是手工编译安装的过程
[root@localhost src]# yum install gcc gcc-c++ -y...此处省略内容
[root@localhost src]# make linux-x86-64        'make编译'...此处省略内容
[root@localhost src]# cd ..
[root@localhost john-1.8.0]# ls
doc  README  run  src
[root@localhost john-1.8.0]# cd run
[root@localhost run]# ls       '此时已经有john脚本'
ascii.chr   john       lm_ascii.chr  makechr       relbench  unique
digits.chr  john.conf  mailer        password.lst  unafs     unshadow
[root@localhost run]# ./john /etc/passwd /etc/shadow   '运行脚本查看/etc/passwd /etc/shadow文件'
Loaded 4 password hashes with 4 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status     '等待几分钟,若设置的密码在弱口令字典中,就会被识别出来密码,说明密码不够复杂,不太安全'
123123           (root)
123123           (lisi)
123123           (wangwu)
4g 0:00:01:14 100% 2/3 0.05368g/s 344.0p/s 363.4c/s 363.4C/s leslie..boston
Use the "--show" option to display all of the cracked passwords reliably
Session completed
[root@localhost run]# cat password.lst         '查看弱口令字典'

端口扫描

  • 一款强大的网络扫描,安全检测工具,可以探测局域网中那些主机在线,或者某台主机中开了那些端口
NMAP的扫描语法“
nmap [扫描类型] [选项] <扫描目标…>常用的扫描类型:
-sS,-sT,-sF,-sU,-sP,-P0-sT:TCP端口-sU:UDP端口-sP:ping
  • nmap实验
[root@localhost run]# rpm -q nmap
未安装软件包 nmap
[root@localhost run]# yum install nmap -y
...此处省略内容[root@localhost run]# nmap -sP 192.168.197.0/24       '192.168.197.0/24是本台主机的网络号,此命令查看此网段中那些主机在线'Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-14 23:49 CST
Nmap scan report for 192.168.197.1
Host is up (0.00064s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.197.2
Host is up (0.000052s latency).
MAC Address: 00:50:56:EF:60:82 (VMware)
Nmap scan report for 192.168.197.254
Host is up (0.000077s latency).
MAC Address: 00:50:56:EA:BF:C1 (VMware)
Nmap scan report for 192.168.197.141
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.95 seconds[root@localhost run]# nmap -sT 192.168.197.141Starting Nmap 6.40 ( http://nmap.org ) at 2019-11-14 23:52 CST
Nmap scan report for 192.168.197.141        '查看主机192.168.197.141开了哪些TCP端口'
Host is up (0.00078s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbindNmap done: 1 IP address (1 host up) scanned in 0.11 seconds

———————————————————————————————————

到此结束,感谢浏览~

系统安全 --------- 账号安全管理相关推荐

  1. 系统间账号认证系统同步方案

    系统间账号认证系统同步方案 基础原理:(基于Web) 浏览器在个请求传递cookie到服务器,服务器对cookie增删改查的操作, 写入JSessionId实现与服务器Session的绑定,保持会话 ...

  2. Linux系统的账号管理

    写在前面 作为一个运维工程师来讲,系统下的账号管理是工作中很重要的一个环节,所以了解系统的账号管理还是非常有必要的. 首先,我们要知道对于Linux系统而言,它并不知道你是谁,它仅识别用户的ID号,而 ...

  3. 忘记了Windows系统的账号对应的密码的解决方案

    因为办公终端都要遵循企业安全规则,所以定期更改系统登录账号密码是常态,如果忘记就很麻烦, 今天介绍一种通过命令行方式来更改指定账号的密码的方法. 1.以管理员身份打开命令行窗口 方法一:右键屏幕左下角 ...

  4. 【网络修复-微软账号】windows系统微软账号无法登录、edge浏览器微软账号登录不了

    一.问题背景 windows系统微软账号无法登录.edge浏览器微软账号登录不了. 因为出BUG的时候我没有截图,所以这里就不放出问题图片了,大家都懂. 就是在右边橙色圈圈点击登录时,转一会就出错. ...

  5. 王者转号仅显示可转移的服务器,王者可以跨系统转移账号了,需要花99,大家怎么看?...

    原标题:王者可以跨系统转移账号了,需要花99,大家怎么看? 相信有很多同学一直以来,都希望可以腾讯可以开放跨系统角色转移服务.因为部分同学在更换手机后,原有角色因系统更换而无法在新手机中登录使用.但每 ...

  6. AdsPower:80W+跨境人的首选,您的跨境电商账号安全管理专家

    AdsPower最新官方介绍 这篇文章将带你了解AdsPower的: ● 产品信息  ● 使用场景 ● 技术优势  ● 核心功能 ● 操作方法  ● 价格方案 在跨境电商的业务场景中, 更多的账号往往 ...

  7. linux账号安全管理,保证Linux系统安全——帐号管理

    不论是Windows操做系统仍是Linux操做系统,想要登陆系统必需要有合法的帐户及密码.本篇博文主要介绍Linux系统下的帐户信息.web 博文大纲: 1.Linux系统的帐号及群组 1.UID与G ...

  8. BIEE11G系统数据源账号过期问题(默认安装步骤)

    BIEE默认完毕安装后处于安全的考虑会对BI系统账户设定180天的有效期设置.例如以下图所看到的: 当账户超过时间后会自己主动口令失效.而造成BI系统启动失败.无法正常訪问等相关问题,到时候又一次设置 ...

  9. 电子作业票系统:消除安全管理漏洞,科技赋能企业业务洞察

    电子作业票系统采用定位.物联网.人脸识别.大数据技术对现场作业进行严格管控:通过风险大数据风险辨识模型,实现作业风险辨识,对动火.高处.受限空间.临时用电.吊装.断路.管线打开.挖掘作业等特殊作业票证 ...

最新文章

  1. python任务队列 http_基于Python开发的分布式任务队列:Celery
  2. VC检测OLE控件是否已经注册,并注册它
  3. vrrp广播风暴_企业园区网MSTP+VRRP组合
  4. MyBatis--连接池模块
  5. Python面试题40问
  6. CodeIgniter学习笔记一
  7. html 页面友情提示,HTML参考
  8. SAP Spartacus Category Navigation的accessibility问题
  9. Java 8快多少?
  10. [MongoDB] MongoDB的安装以及问题
  11. 5G商用将满一年,6G研发开始了...
  12. python语言入门q-Python基础教程中的函数
  13. 为你的Web程序加个启动画面
  14. Windows Phone 项目实战之账户助手
  15. Table变量和临时表区别
  16. 医院耗材管理系统开发_0
  17. 遥感影像数据下载网址
  18. 数学三角形的所有定理!所有!
  19. idea 删除当一行或者选中行的快捷键
  20. LeetCode久不久来一题系列之Add Two Numbers

热门文章

  1. Raid常见级别(Raid 0、Raid 1、Raid 5、Raid 10)
  2. 第91届奥斯卡奖公布提名名单《罗马》《宠儿》10项提名领跑
  3. 高一计算机专业班主任工作总结,计算机班主任工作总结
  4. 随机过程 Markov 链(下)
  5. LADY M过了自己的“赏味期限”?
  6. 中国时光之美:旅途中的二十…
  7. HNUST-OJ-1806-图的遍历——广度优先搜索
  8. 非地面无线通信网络的增强技术
  9. C#读写导入导出Excel表格模板(NPOI)
  10. STM32Cube和HAL库使用初体验-第5季第2部分-朱有鹏-专题视频课程