保证 Linux 服务器安全基本措施

作为一种开放源代码的操作系统,Linux服务器以其安全,高效和稳定的显著优势而得以广泛应用,但是,若不加以控制,也不见得安全到哪里,这篇博文主要从账号安全控制、系统引导和登录控制的角度,来进行Linux系统安全优化。并且使用辅助工具来查找安全隐患,以便我们及时采取相应的措施。
基本安全措施:
1、 系统各种冗余账号,如“games”等,可直接删除,包括一些程序账号,若卸载程序后,账号没能被删除,则需要我们手动进行删除。

2、 当服务器中的用户账号已经固定,不再进行更改,可以直接锁定账号配置文件,锁定以后,便不可以添加用户及更改用户密码:

[[email protected] ~]# chattr +i /etc/passwd /etc/shadow             #锁定文件
[[email protected] ~]# lsattr /etc/passwd /etc/shadow                  #查看是否锁定
----i----------- /etc/passwd
----i----------- /etc/shadow
[[email protected] ~]# chattr -i /etc/passwd /etc/shadow             #解锁文件

3、密码的有效期控制:为了降低密码被暴力破解或被猜出的风险,可以设置密码有效期来限制密码最大有效天数,对于密码已过期的用户,登录时则必须重置密码,否则将拒绝登录。

[[email protected] ~]# vim /etc/login.defs                #适用于新建的用户,配置完毕后新建的用户则为30天
                     ........................
PASS_MAX_DAYS   30             #将该配置项默认的值“99999”改为所期望的值,如30天。
[[email protected] ~]# chage -M 30  zhangsan             # 适用于已经存在的用户,指定已经存在的用户为30天
[[email protected] ~]# chage -d 0 zhangsan               # 张三下次登录必须修改密码

4、命令历史、自动注销:

[[email protected] ~]# vim /etc/profile           #适用于新登录用户
                         ................
HISTSIZE=200                 #命令历史记录为200条
export TMOUT=600                        #自动注销时间为600秒  

 #适用于当前用户
[[email protected] ~]# export HISTSIZE=200       # 命令历史记录为200条
[[email protected] ~]# export TMOUT=600           # 自动注销时间为600秒        

注意:当正在执行程序代码编译、修改系统配置等耗时较长的操作时,最好不要设置TMOUT变量。必要时可以执行“unset TMOUT”命令取消TMOUT变量设置。
控制用户切换与提权:
1、su命令——切换用户
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,这样就有了安全隐患,为了避免这种情况,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证:

[[email protected] ~]# gpasswd -a admin wheel                  #添加授权用户admin
正在将用户“admin”加入到“wheel”组中
[[email protected] ~]# grep wheel /etc/group             #确认wheel组成员
wheel:x:10:admin
[[email protected] ~]# vim /etc/pam.d/su

#%PAM-1.0
auth            sufficient      pam_rootok.so
                        ...................
auth            required        pam_wheel.so use_uid          #去掉此行开头的 # 号

然后就只有wheel组中的用户可以使用su命令了,使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中,可以根据需要进行查看。
2、sudo命令——提升执行权限
使用su命令可以方便的切换为另一个用户,但前提条件是必须知道目标用户的登录密码。若想要切换到root用户,那么必须知道root用户的密码,对于生产环境中的Linux服务器来说,每多一个人知道root密码,其安全风险也就增加一分。所以sudo命令就由此而生了。

sudo命令的控制只需在/etc/sudoers配置文件中添加授权即可,需使用专门的visudo工具进行编辑,用vi也可以,但是保存时必须执行“ w!”命令来进行强制保存,否则系统将提示文件为只读文件而拒绝保存。
配置文件/etc/sudoers中,授权记录的基本配置格式如下所示:

user MACHINE=COMMANDS

具体含义如下:
user:直接授权指定的用户名,或采用“%组名”的形式(授权一个组中的所有用户)。
MACHINE:使用此配置文件的主机名称,这个部分主要是方便在多个主机间共用同一份sudoers文件,一般设置为localhost或实际的主机名即可。
COMMANDS:允许授权的用户通过sudo方式执行的特权命令,需填写命令的绝对路径,多个命令之间以逗号“ ,”进行分隔。

[[email protected] ~]# visudo
                      .........................
zhangsan   localhost=/sbin/ifconfig
%wheel  ALL=NOPASSWD:ALL

上述配置就是可以让用户能够执行ifconfig命令,而wheel组的用户不需验证密码即可执行任何命令。
当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。如:允许用户user1、user2、user3在主机smtp、pop中执行rpm、yum命令:
[[email protected] ~]# visudo


User_Alias      OPERATORS=user1,user2,user3                 #定义用户名列表
Host_Alias      MAILSVRS=smtp,pop                            #定义主机列表
Cmnd_Alias      PKGTOOLS=/bin/rpm,/usr/bin/yum               #定义命令列表
OPERATORS       MAILSVRS=PKGTOOLS                              #使定义的列表关联起来

sudo配置记录的命令部分可以使用通配符 “ * ” 、取反符号“ !”,也可以启用sudo日志记录以备运维人员查看,当需要授权某个目录下所有命令或取消其中个别命令时特别有用。例如:授权用户zhangsan可以执行/sbin/目录下除了ifconfig、route以外的其他命令,并且启用日志记录:

[[email protected] ~]# visudo

zhangsan        localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route             #通配符及取反符的应用。
Defaults logfile = "/var/log/sudo"                     #启用日志记录

注意:
1、第一次通过sudo命令执行命令时,必须以用户自己的密码进行验证,此后再次执行sudo命令,只要与前一次sudo操作的间隔时间不超过5分钟,则不需重复验证。
2、若想要查看用户自己获得哪些sudo授权,可以执行“ sudo -l”,若是某个用户的sudo权限列表中出现了(ALL) ALL字样,则表示授权有误,此时,该用户拥有所有命令的执行权限。若visudo命令编辑的授权列表没有错误的话,就需要看看是否将该用户添加到了wheel组中,并且启用了pam_wheel认证。
终端及登录控制:
1、禁止root用户登录:

login程序是通过读取 /etc/securetty文件,以决定允许root用户从哪些终端登录的,若要禁止root用户从tty5、tty6登录,只需将文件中对应的行注释掉即可:


[[email protected] ~]# vim /etc/securetty
#tty5
#tty6

2、禁止普通用户登录:

当正在调试服务器,不希望再有新用户登录系统的话,可以建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制)。这个方法只建议在服务器维护期间临时使用,当手动删除/etc/nologin文件或者重新启动主机后,即可恢复正常,(只对创建文件之后的才登陆的用户有效)如下:

[[email protected] ~]# touch /etc/nologin

开关机安全控制:
1、调整bios引导设置,给BIOS设置密码,并启用;
2、禁止Ctrl+Alt+Del快捷键重启主机:

[[email protected] ~]# systemctl mask ctrl-alt-del.target                   #注销ctrl-alt-del服务
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.
[[email protected] ~]# systemctl daemon-reload                #重载systemd配置

若要重新开启ctrl-alt-del快捷键功能,只需执行以下即可:

[[email protected] ~]# systemctl unmask ctrl-alt-del.target
Removed symlink /etc/systemd/system/ctrl-alt-del.target.
[[email protected] ~]# systemctl daemon-reload 

3、限制更改GRUB引导参数:

当Linux系统在启动时,到了下面这个界面,按“e”就可以进入GRUB引导菜单,并且通过修改配置后,无须任何密码就可以进入系统环境中,这个漏洞显然对服务器是一个极大的威胁,那么可以执行以下操作,为grub菜单设置一个密码,只有提供正确的密码才被允许修改引导参数:

[[email protected] ~]# grub2-mkpasswd-pbkdf2                         #根据提示指定密码
输入口令:                      #设置密码为“123456”
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC3E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD                       #经过加密的密码字符串
#为了防止更改grub菜单错误,所以先将相关文件进行备份
[[email protected] ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[[email protected] ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[[email protected] ~]# vim /etc/grub.d/00_header
#将以下内容添加到文件中的最后
cat << EOF
set superusers="change"
password_pbkdf2 change grub.pbkdf2.sha512.10000.F7169053E0A4C582D0D65D3181CBDF7306E56AAB4D5F6910A576FA42CAD66DE8A28019CC403E8A0A75C56B517325A10D63DF85BD018FEF345359677B403F9FE4.C1E18CA9FFB54BF3AAE7EC0A03B41DD384A5ECB38A42F651C9467442EB41F7319BF4B3C600EC8CC7562C3AF188DB77BDA5FDE4E978E72BD715A77F965CC9EFBD
[[email protected] ~]# grub2-mkconfig -o /boot/grub2/grub.cfg             #生成新的grub.cfg文件
Generating grub configuration file ...
/etc/grub.d/00_header: line 361: warning: here-document at line 359 delimited by end-of-file (wanted `EOF‘)
Found linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-095dca7b09764ecf91e366075c160144
Found initrd image: /boot/initramfs-0-rescue-095dca7b09764ecf91e366075c160144.img
done

现在重启服务器,进入grub菜单时,按e将无法修改引导参数,若要修改,还需输入正确的grub用户名及密码:

原文地址:https://blog.51cto.com/14227204/2434065

时间: 2024-11-13 10:28:16

保证 Linux 服务器安全基本措施的相关文章

多方面来保证Linux服务器的基本系统安全

作为一种开放源代码的操作系统,Linux服务器以其安全,高效和稳定的显著优势而得以广泛应用,但是,若不加以控制,也不见得安全到哪里,这篇博文主要从账号安全控制价.系统引导和登录控制的角度,来进行Linux系统安全优化.并且使用辅助工具来查找安全隐患,以便我们运维人员及时采取相应的措施. 安全方面确实需要注意的比较多,这篇博文从各个方面写了下来,比较琐碎,还需要耐心些看,根据需要来配置服务器的安全性 一.基本安全措施: 1. 系统各种冗余账号,如"games"等,可直接删除,包括一些程序

如何保证Linux服务器的基本系统安全?

博文目录一.账号安全控制二.基本安全措施三.用户切换与提权四.开关机安全控制五.终端及登录控制 一.账号安全控制 用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机.在Linux操作系统中提供了多种机制来确保用户账号的正当.安全使用. 二.基本安全措施 1.系统账号 各种非登录用户账号中,还有相当一部分是很少用到的,如"games"等,这些用户账号可以视为冗余账号,直接删除即可,包括一些程序账号,若卸载程序后,账号没能被删除,则需要我们手动

《Linux服务器的监控》

本文地址:http://www.cnblogs.com/aiweixiao/p/7131532.html 原文地址(公众号):http://t.cn/RKwmqUs 点击关注 微信公众号 1. 监控概要 Linux服务器要保证高可用性,就要对其进行有效的监控,实时了解到服务器的运行状况,各项性能指标是否正常,以防患以未然,进行运维日志的记录,图形化的监控,出现问题的消息报警机制,都是保证Linux服务器能正常对外提供服务的先决条件. 2. 监控的内容 监控,是预防的其中的一项重要工作.这里先说说

维护服务器系统的措施

服务器系统的安全重要性,不用我多说,我想大家都应该明白.在现在这个互联网时代,IT技术的革新,使得各种病毒更加猖狂,黑客的技术手段更是多种多样,而处于互联网开放环境中的服务器遭受的风险比以前更大了.所以我们必须采取措施维护服务器系统. 措施一:及时安装系统补丁,补漏洞 技术革新越快,服务器系统的漏洞也越多.不论是Windows还是Linux,任何操作系统都有漏洞,所以,及时打上补丁避免漏洞被蓄意攻击利用,是服务器安全最重要的保证之一. 措施二:安装和设置防火墙,防恶意程序 基于硬件或软件的防火墙

Linux服务器开发常用的命令以及遇到的问题

1. 什么是linux服务器load average? Load是用来度量服务器工作量的大小,即计算机cpu任务执行队列的长度,值越大,表明包括正在运行和待运行的进程数越多.参考资料:http://en.wikipedia.org/wiki/Load_average 2. 如何查看linux服务器负载 可以通过w,top,uptime,procinfo命令,也可以通过/proc/loadavg文件查看. 3. 服务器负载高怎么办? 服务器负载(load/load average)是根据进程队列的

【CentOS】CentOS Linux服务器安全设置

引言: 我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关闭.把系统权限设置到最小话,这样才能保证服务器最大的安全.下面是CentOS服务器安全设置,供大家参考.       系统运维  www.osyunwei.com  温馨提醒:qihang01原创内容版权所有,转载请注明出处及原文链接 http://wenku.baidu.com/link?url=KoXqwIPp76_QSaQRQPcSESFkpeWnGWZ1EaLX_NP5Kic7n

linux服务器分析优化

一.系统性能分析 1.系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.操作系统完成任务与系统自身设置.网络拓扑结构.路由设备.路由策略.接入设备.物理线路有关.当linux服务器出现问题,应该从应用程序.操作系统.服务器硬件.网络环境等方面排查. 2.性能优化方案提供:影响系统性能最大的因素是应用程序和操作系统两个方面,因为这两个方面出现的问题隐藏性好,不易察觉,而其他方面出现的问题一般会立刻定位到.系统硬件:(1).当硬件属于物理故障,直接更换硬件:(2).硬件性能不满足需求,升级硬

基于windows平台的linux服务器批量管理可视化工具

产生背景: 由于做服务器运维方面的工作,需要对近千台LINUX服务器进行统一的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINUX服务器download程序包.当前世面上也存在一些常见且功能强大的工具,如puppet,dsh,parallel-ssh等,但不得不说,他们的功能太重量了,重量到不得不学习他们的命令以及复杂的用法,且对于刚入LINUX门道的"菜鸟"来说无UI界面纯命令操作也显得太"重"了.故

向linux服务器上传下载文件方式收集

向linux服务器上传下载文件方式收集 1. scp [优点]简单方便,安全可靠:支持限速参数[缺点]不支持排除目录[用法] scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 . 命令格式: scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径> 举例: scp /home/work/source.