欢迎光临
我们一直在努力

Linux安全配置

通过脚本实现 ↑ 。

对 su 命令的访问受到限制。

分配给组有无权限,通过组的划分来限制su命令的使用.

确保系统帐户未登录

1. 使用w命令查看登录用户正在使用的进程信息 w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括: 用户名称 用户的机器名称或tty号 远程主机地址 用户登录系统的时间 空闲时间(作用不大) 附加到tty(终端)的进程所用的时间(JCPU时间) 当前进程所用时间(PCPU时间) 用户当前正在使用的命令 w命令还可以使用以下选项 -h忽略头文件信息 -u显示结果的加载时间 -s不显示JCPU, PCPU, 登录时间

[root@localhost /]# w
11:29:48 up 3:37, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 07:55 3:37m 2.14s 2.14s /usr/bin/Xorg :0 -nr -verb
root pts/0 192.168.19.1 09:42 0.00s 0.38s 0.00s w
root pts/1 192.168.19.1 09:48 3:31 0.08s 0.08s -bash
[root@localhost /]# w -h
root tty1 :0 07:55 3:37m 2.14s 2.14s /usr/bin/Xorg :0 -nr -verb
root pts/0 192.168.19.1 09:42 0.00s 0.38s 0.00s w -h
root pts/1 192.168.19.1 09:48 3:35 0.08s 0.08s -bash
[root@localhost /]# w -u
11:29:56 up 3:38, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 :0 07:55 3:37m 2.14s 2.14s /usr/bin/Xorg :0 -nr -verb
root pts/0 192.168.19.1 09:42 0.00s 0.38s 0.00s w -u
root pts/1 192.168.19.1 09:48 3:39 0.08s 0.08s -bash
[root@localhost /]# w -s
11:29:59 up 3:38, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM IDLE WHAT
root tty1 :0 3:37m /usr/bin/Xorg :0 -nr -verbose -audit 4 -auth /
root pts/0 192.168.19.1 0.00s w -s
root pts/1 192.168.19.1 3:42 -bash
[root@localhost /]#

使用who命令查看(登录)用户名称及所启动的进程

who命令用于列举出当前已登录系统的用户名称。其输出为:用户名、tty号、时间日期、主机地址。

[root@localhost /]# who root tty1 2017-11-12 07:55 (:0) root pts/0 2017-11-12 09:42 (192.168.19.1) root pts/1 2017-11-12 09:48 (192.168.19.1) 

补充:users命令,可用于打印输出登录服务器的用户名称。该命令除了有help和version选项外,再没有其他选项。如果某用户使用了多个终端,则相应的会显示多个重复的用户名。

[root@localhost /]# users root root root 

使用whoami命令查看你所使用的登录名称

whoami命令用于显示登入的用户名。

[root@localhost /]# whoami root [root@localhost /]# who am i root pts/0 2017-11-12 09:42 (192.168.19.1) 

whoami命令能显示当前登入的用户名称,以及当前所使用的tty信息。该命令的输出结果包括如下内容:用户名、tty名、当前时间日期,同时还包括用户登录系统所使用的链接地址。

[root@localhost /]# who am i root pts/0 2017-11-12 09:42 (192.168.19.1) [root@localhost /]# who mom likes root pts/0 2017-11-12 09:42 (192.168.19.1) 

4. 随时查看系统的历史信息(曾经使用过系统的用户信息)

last命令可用于显示特定用户登录系统的历史记录。如果没有指定任何参数,则显示所有用户的历史信息。在默认情况下,这些信息(所显示的信息)将来源于/var/log/wtmp文件。该命令的输出结果包含以下几列信息:

  • 用户名称
  • tty设备号
  • 历史登录时间日期
  • 登出时间日期
  • 总工作时间
[root@localhost /]# last root root pts/1 192.168.19.1 Sun Nov 12 09:48 still logged in root pts/0 192.168.19.1 Sun Nov 12 09:42 still logged in root pts/0 192.168.19.1 Sun Nov 12 07:56 - 09:42 (01:45) root tty1 :0 Sun Nov 12 07:55 still logged in root pts/1 192.168.19.1 Thu Nov 9 11:02 - 11:28 (00:26) root pts/0 192.168.19.1 Thu Nov 9 10:47 - 11:28 (00:40) root tty1 :0 Thu Nov 9 10:45 - 11:28 (00:42) root pts/1 192.168.19.1 Thu Nov 9 09:57 - down (00:23) root pts/0 192.168.19.1 Thu Nov 9 08:55 - down (01:24) root pts/1 192.168.19.1 Thu Nov 9 07:13 - 08:55 (01:41) root pts/0 192.168.19.1 Thu Nov 9 03:56 - 08:28 (04:32) root pts/1 192.168.19.1 Thu Nov 9 03:04 - 03:54 (00:49) root pts/0 192.168.19.1 Thu Nov 9 03:01 - 03:54 (00:52) root pts/1 192.168.19.1 Thu Nov 9 02:59 - 02:59 (00:00) root pts/0 192.168.19.1 Thu Nov 9 02:56 - 02:59 (00:02) root tty1 :0 Thu Nov 9 02:50 - down (07:30) wtmp begins Thu Nov 9 02:47:58 2017

收集会话启动信息

shell超时设置

为了增强linux系统的安全性,我们需要在用户输入空闲一段时间后自动断开,这个操作可以由设置TMOUT值来实现。将以下字段加入到/etc/profile 中即可(对所有用户生效)。 export TMOUT=900 # 设置900秒内用户无操作就字段断开终端 readonly TMOUT # 将值设置为readonly 防止用户更改 注意:设置了readonly 之后在当前shell下是无法取消的,需要先将/etc/profile 中设置readonly行注释起来或直接删除,logout 后重新login 。 $ export TMOUT=900 $ readonly TMOUT $ unset TMOUT -bash: unset: TMOUT: cannot unset: readonly variable 方式一:设置服务器端 1、echo $TMOUT 如果显示空白,表示没有设置,等于使用默认值0, 一般情况下应该是不超时. 如果大于0,可以在如/etc/profile或者~/.bash_profile之类文件中设置它为0. Definition: TMOUT: If set to a value greater than zero, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive readonly TMOUT # 将值设置为readonly 防止用户更改。记得设置完后执行source /etc/profile //立即生效 2、修改/etc/ssh/sshd_config文件,将 ClientAliveInterval 0和ClientAliveCountMax 3的注释符号去掉,将ClientAliveInterval对应的0改成60,ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送.而ClientAliveInterval 60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了.ClientAliveCountMax, 使用默认值3即可.ClientAliveCountMax表示服务器发出请求后客户端没有响应的次数达到一定值, 就自动断开. 正常情况下,客户端不会不响应.最后记得执行/etc/init.d/sshd restart 哦,否则刚才的修改是不会生效的。 想参考更多,请输入man sshd_config了解更多信息 方式二:设置CRT参数(反空闲和屏幕日志记录功能) 1、反空闲 使用SecureCRT远程登录,经常会出现断掉的情况,一般采用top,或者ping某个ip的方式保证ssh连接处于激活状态,其实SecureCRT有一个选项可以设置每隔多少秒自动发送一个信息到服务器端,告诉服务器端客户端还在连接中。服务器的超时时间要大于CRT设置的反空闲时间,不然CRT还没反超时自动连接就被自动断开,那就没啥意义了。具体配置为: 选项------会话选项-----终端-----反空闲,可以设置发送字符串为\n、null或其他信息过去,每10秒发送一次,这样就可以达到每10秒发送一个回车,保证ssh连接处于激活状态。 2、屏幕日志记录功能 屏幕日志记录,可以记录自己执行过的所有命令和输出,便于以后追踪查找问题。 具体配置为: 选项-----全局选项-----默认会话-----编辑默认设置,弹出会话选项框,选择日志文件,可以配置日志文件名、选项、自定义日志数据,具体格式见日志文件名和自定义日志数据替换部分。

配置了密码创建要求。

对于linux可能大家都很少知道有密码策略这回事吧,好多人都认为linux安全机制已经很强大了,而且大多数linux采用可插拔密码认证来加强密码的安全策略,下面就来说说linux的密码策略,linux密码策略要比windows密码策略要强大许多 linux密码策略有以下设置: 密码的最大有效期 密码最长使用时间 密码最小长度 密码失效前提前多少天进行提醒 密码大小写以及数字、特殊字符等限制 新旧密码不能相同 新旧密码长度不能相同 账号锁定时间 账号自动解锁时间 密码策略配置文件路径: 在centos/redhat等系统中路径:/etc/pam.d/system-auth ubuntu等系统中路径:/etc/pam.d/common-password 文件内容如下:(版本不同,内容有一些差别) # /etc/pam.d/common-password - password-related modules common to all services # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services to be # used to change user passwords. The default is pam_unix. # Explanation of pam_unix options: # The "sha512" option enables salted SHA512 passwords. Without this option, # the default is Unix crypt. Prior releases used the option "md5". # The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in  # login.defs. # See the pam_unix manpage for other options. # As of pam 1.0.1-6, this file is managed by pam-auth-update by default. # To take advantage of this, it is recommended that you configure any # local modules either before or after the default block, and use # pam-auth-update to manage selection of other modules. See # pam-auth-update(8) for details. # here are the per-package modules (the "Primary" block) password [success=1 default=ignore] pam_unix.so obscure sha512 # here's the fallback if no module succeeds  password requisite pam_deny.so # prime the stack with a positive return value if there isn't one already;  # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around password required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config 密码过期时间以及有效期等配置文件:/etc/login.defs,文件部分内容: PASS_MAX_DAYS:一个密码可使用的最大天数。 PASS_MIN_DAYS:两次密码修改之间最小的间隔天数。 PASS_MIN_LEN:密码最小长度。 PASS_WARN_AGE:密码过期前给出警告的天数 下面为大家举例说明linux用户密码策略: 设置密码最大使用时间(PASS_MAX_DAYS) 这个用来限制密码最大可以使用的天数。时间到了会强制进行密码锁定。如果忘记修改,那么就无法登录系统。需要使用管理员账户进行解锁后才能继续使用。这个可以在 /etc/login.defs 文件中的PASS_MAX_DAYS参数设置。在企业中一般把这个值设置为30天,也就是一个月修改一次密码。 root@test:/etc# vim login.defs PASS_MAX_DAYS 30 //单位为天数  设置密码最小天数(PASS_MIN_DAYS) 这个是限制多长时间无法进行密码修改。当值为15时,表示15天内无法修改密码,也就是两次密码修改中间最少隔15天,这个可以在 /etc/login.defs 文件中PASS_MIN_DAYS参数设置。企业中一般不对此项进行控制,这个根据自己需求进行修改,我这里设置10天。 root@test:/etc# vim login.defs PASS_MIN_DAYS 10 //单位为天数  设置密码过期前警告(PASS_WARN_AGE) 这个用来提醒用户该进行密码修改了,也就是在密码即将过期的时候,会给用户一个警告提示,在未到最大密码使用时间,会每天进行提醒,这可以提醒用户在密码过期前修改他们的密码,否则我们就需要联系管理员来解锁密码。这个可以在 /etc/login.defs 文件中PASS_WARN_AGE参数设置。 这个企业中一般设置为3天,我这里就设置为3天 root@test:/etc# vim login.defs PASS_WARN_AGE 3 //单位为天数  避免重复使用旧密码 这个用来防止更改密码时设置为旧密码,寻找同时包含“password”和"pam_unix.so"的行,然后再这行后面加上“remember=天数”。这将防止N个最近使用过的密码被用来设置为新密码,这个配置文件是在 /ect/pam.d/common-password 文件中(主要,centos/redhat需要修改:/etc/pam.d/system-auth文件),这个在企业中一般设置为5,我这里就设置5 ubuntu: root@test/etc# vim pam.d/common-password password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5 centos/redhat: root@test/etc# vim pam.d/common-password password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5 设置密码复杂度 这个用来控制密码的复杂程度的,应安全性要求,企业里面要求大小写、特殊字符、数字等最受三个进行组合并且长度最少为8。寻找同时包含“password”和“pam_cracklib.so”的一行,并在后面加上“ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1”。这将迫使你在密码中至少包括一个大写字母、两个小写字母、一个数字和一个符号。 ubuntu: root@test/etc# vim pam.d/common-password password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1 centos/redhat: root@test/etc# vim pam.d/system-auth password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1

 收集登录和注销事件

SSH 相关设置

 禁止普通用户使用su命令

提高Linux服务器主机的SSH防爆破能力

了解用户通过sudo做过哪些操作

提高LAMP网站的防护能力

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《Linux安全配置》
文章链接:https://www.456zj.com/22036.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址