实验环境

CentosOS5.6试验台。

任务一:建立与删除普通用户账户,管理组

1)创建一个新用户user1

useradd user1

查看用户是否创建成功

2)创建一个新组group1

groupadd group1

3)创建一个新用户user2并将其加入用户组group1中

useradd -G group1 user2

4)创建一个新用户user3,指定登录目录为/www,不创建自家用户目录(-M)

useradd -d /www -M user3

5)将用户user2添加到附加组group1中

usermod -G group1 user1)

6)删除用户user3,用户uers3从用户组中消失

userdel user3

7)删除用户user2,同时删除自家目录

userdel -r user2

8)删除组group1,则组group1中的用户则被分配到其自己分配的私有组中。

groupdel group1

任务二:用户口令管理与口令时效管理

(1)passwd命令

passwd命令用来设置用户口令,格式为:passwd [] []

用户修改自己的用户密码可直接键入passwd,若修改其他用户密码需加用户名。超级用户还可以使用如下命令进行用户口令管理:

passwd -l //禁用用户帐户口令

passwd -S //查看用户帐户口令状态

passwd -u //恢复用户帐户口令

passwd -d //删除用户帐户口令

在创建完用户user1后,没给用户passwd口令时,账户默认为禁用状态:

1. 给用户user1创建口令,设置为:111111

passwd user1

密码已经设置,且为MD5加密

2. 禁用账户user1

passwd -l user1

恢复账户user1的账户口令:

passwd -u user1

删除用户账户口令

passwd -d user1

用户user1的密码即为空。

(2)chage命令

口令时效是系统管理员用来防止机构内不良口令的一种技术。在Linux系统上,口令时效是通过chage命令来管理的,格式为:chage []

下面列出了chage命令的选项说明:

-m days: 指定用户必须改变口令所间隔的最少天数。如果值为0,口令就不会过期。

-M days: 指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该帐号前就必须改变口令。

-d days: 指定从1970年1月1日起,口令被改变的天数。

-I days: 指定口令过期后,帐号被锁前不活跃的天数。如果值为0,帐号在口令过期后就不会被锁。

-E date: 指定帐号被锁的日期。日期格式YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。

-W days: 指定口令过期前要警告用户的天数。

-l: 列出指定用户当前的口令时效信息,以确定帐号何时过期。

查看用户user1当前的口令时效信息:chage -l user1

任务三:PAM可插拔验证模块

1. 指定密码复杂性

修改/etc/pam.d/system-auth配置:

(注意:在root用户下进行,其余用户对这个文件只有读的权限)

vi /etc/pam.d/system-auth

限制密码最少有:2个大写字母,3个小写字母,3个数字,2个符号

文件中有一行为:

password requisite pam_cracklib.so try_first_pass retry=3

在其后追加如下参数:

ucredit=-2 lcredit=-3 dcredit=-3 ocredit=-2

2. 验证时若出现任何与pam_tally有关的错误则停止登录

auth required pam_tally.so onerr=fail magic_root

3. 账号验证过程中一旦发现连续5次输入密码错误,就通过pam_tally锁定此账号600秒

account required pam_tally.so deny=5 lock_time=600 magic_root reset

1)思考还有哪些加强linux账户安全的管理方法?
设置密码最长使用期限
漏洞概述:如未设置密码最长使用期限,一段时间后密码很可能会流出,因而造成攻击者的非法访问;
安全对策:修改密码策略设置文件,将密码最长使用期限设置为90天(12周);
2)比较一下linux账户跟unix账户管理的异同。

1、开源情况

UNIX 是商业化的,而 Linux 是开源的,是免费、公开源代码的。

2、硬件适用

UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在 x86 服务器和个人计算机上的,而 Linux则可以运行在多种硬件平台上。

可以先学习linux后再学习unix,因为linux可以方便的在虚拟机上运行,防止新手的误操作。而在发行版本上可以选择Ubuntu、Linux Mint等。

关于密码策略有效性的验证了解:https://www.cnblogs.com/cheyunhua/p/8342819.html

关于Linux系统日志查看内容(来源于百度):

1.users#

users命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

2.who#

who命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who的默认输出包括用户名、终端类型、登录日期及远程主机。

3.w#

w命令用于显示当前系统中的每个用户及其所运行的进程信息,比users、who命令的输出内容要丰富一些。

4.last#

last命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过last命令可以及时掌握Linux主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。

5.lastb#

lastb命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。

linux帐户安全管理与技巧的更多相关文章

  1. 通过Google身份验证器加强Linux帐户安全

    下载Google的身份验证模块: # wget https://google-authenticator.googlecode.com/files/libpam-google-authenticato ...

  2. 谷歌身份验证器加强Linux帐户安全

    下载 Google的身份验证模块 # wget https://google-authenticator.googlecode.com/files/libpam-google-authenticato ...

  3. Linux运维人员共用root帐户权限审计

    Linux运维人员共用root帐户权限审计 2016-11-02 运维部落 一.应用场景 在中小型企业,公司不同运维人员基本都是以root 账户进行服务器的登陆管理,缺少了账户权限审计制度.不出问题还 ...

  4. (转)linux下控制帐户过期的多种方法

    linux下控制帐户过期的方法:原文:http://blog.51cto.com/oldboy/1289144企业里一般给无人管理的角色账户或开发人员临时需求等可以设定账户有效期,提升安全!法一:添加 ...

  5. 渗透技巧——Windows系统的帐户隐藏

    渗透技巧——Windows系统的帐户隐藏 2017-11-28-00:08:55  0x01 帐户隐藏的方法 该方法在网上已有相关资料,本节只做简单复现 测试系统:·Win7 x86/WinXP 1. ...

  6. Linux入门:usermod - 修改用户帐户信息

    一.什么是usermod? usermod 命令通过修改系统帐户文件来修改用户账户信息usermod [options] user_name选项(options)-a|--append ##把用户追加 ...

  7. linux基础命令--userdel 删除用户帐户和相关文件

    描述 userdel命令用于删除用户帐户和相关文件. userdel命令修改系统账户文件,删除所有涉及用户的信息,指定的用户(LOGIN)必须存在. 语法 userdel [options] LOGI ...

  8. usermod - linux修改用户帐户信息

    usermod - 修改用户帐户信息 modify a user account usermod [options] user_name usermod 命令修改系统帐户文件来反映通过命令行指定的变化 ...

  9. Linux批量生成生成帐户脚本,随机密码

    此脚本应用于生产环境下生成帐户,也可生成成百上千个密码相同的帐户.脚本代码如下: 批量生成: #!/bin/bash for name in tom jerry joe jane do useradd ...

随机推荐

  1. ACL的配置

    一.实验拓扑 实验要求: 二.实验编址 三.实验步骤: 1.启动设备(全选) 2.配置端口IP R1: R2: R3: R4: 2.搭建OSPF网络: R1: R2: R3: R4: 4.配置ACL控 ...

  2. 微信小程序中wx.login和wx.getUserProfile的使用

    在使用微信登录时,通常会在调用wx.login获取code后再通过wx.getUserProfile获取iv和encryptedData(加密数据)一起发到后端进行登录验证 在实际使用中如果在wx.l ...

  3. [ES6深度解析]15:模块 Module

    JavaScript项目已经发展到令人瞠目结舌的规模,社区已经开发了用于大规模工作的工具.你需要的最基本的东西之一是一个模块系统,这是一种将你的工作分散到多个文件和目录的方法--但仍然要确保你的所有代 ...

  4. 关于c#:如何在不同的命名空间中处理相同的类名?

    How to handle same class name in different namespaces? 我正在尝试创建一个通用的库结构. 我通过为我想要的每个公共库创建单独的项目来做到这一点 我 ...

  5. Seata–分布式事务

    10.1 分布式事务基础 10.1.1 事务 事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为,要么所有操作都成功,要么所有的操作都被撤销.简单地说,事务提供一种"要 ...

  6. WindowsService开发简单入门

    参考网址: https://www.cnblogs.com/wenlong512/p/7355971.html 一.简介 程序创建在 Windows 会话中,可长时间运行的可执行应用程序.这些服务可以 ...

  7. WPF教程(四)RelativeSource属性

    我们进行Bingding时,如果明确知道数据源的Name,就能用Source或者ElementName进行绑定,但是有时候我们需要绑定的数据源可能没有明确的Name,此时我们就需要利用Bingding ...

  8. Google 开发console查找元素或方法

    F12 后 在console中输入: $("#R")[0] 查找ID 为R的元素, 如需打印出元素属性值,则输入: console.dir($("#R")[0] ...

  9. cookie实现访问时间查看

    package day01.cookies; import java.io.IOException; import java.net.URLDecoder; import java.net.URLEn ...

  10. kettle 乱码问题处理方案

    一.同下图加上 "-Dfile.encoding=UTF-8" ,两都都加没有试过,可先加一处,如果没有处理到问题,再加另外一处