赞
踩
1.系统账号清理:在linu系统中有大量的账号,有些账号是不经常使用的或卸载程序之后未能正确删除的,这些账号就需要管理员手动清理,一般使用"userdel"命令进行删除。除了删除之外还有以下情况:
注意使用chattr命令时要指定文件的路径。
chattr -/+i 要锁定的文件的路径
chattr也能够使用一些其他选项,如:
2.密码安全控制
在不安全的网络环境中,要避免长期使用同一个密码,而管理员可以设置用户的密码的最大有效天数,但时间必须要修改密码,否则就会拒绝登录。使用chage命令可以实现此操作:
chage [选项] 限制的天数 username
而要批量设置用户密码的可用期限,可以修改/etc/login.defs文件,通过将里面的PASS_MAX_DAYS设置为想要的期限,即可控制该主机上所有用户的密码可用期限。而chage命令使用的选项有:
3.命令历史、自动注销
在Bash终端环境中,历史命令的记录条数由/etc/profile文件中的变量HISSIZE控制,可以影响系统中所有的用户。通过修改该变量的值,可以允许history可以记录的命令的数量。此外,还可以在用户家目录中的bash_logoutw文件中添加清空历史命令的操作语句,在用户退出时可以清空命令记录。通过这两项配置,能有效防止用户通过history查看自己的命令操作过程。
用户也可以设置终端的闲置超时时间,防止自己在离开时忘记关闭终端而可能导致的风险。通过在/etc/profile文件中添加:export TMOUT并设置时间,单位为秒。
大多数Linux服务器并不建议用户直接以root用户的身份登陆,所以需要为普通用户提供一种身份切换或权限提升机制,以便在必要时执行管理任务。Linux也提供了用户切换的指令su和提升用户权限的命令sudo:
su username su - username
第一种只切换身份而不切换用户环境,第二种则连用户环境一起切换。而su命令切换用户没有限制,从而有机会反复尝试其他用户的登录密码,这样带来了安全风险,故需对su命令进行限制。通过启用pam_wheel认证,使非wheel组内的用户无法使用su命令,从而将切换用户的权限控制在最小范围内,且只需将一个用户加入wheel组,就可以继续使用su命令。启用pam_wheel认证需要将/etc/pam.d/su文件中的"auth required pam_wheel.so use_uid"取消注释即可。
行认证;
而控制类型有以下四种,用于PAM验证类型的返回结果:
PAM验证流程图如下所示:
要自己设置PAM的密码策略,需要在/etc/pam.d/system-auth中添加"password requisite pam_cracklib.so",其后可以跟"minlen=n"来设置密码的最小长度、"dcredit=-1"来设置密码最小要有一位数字、"ucredit=-1"设置密码最少要有一个大写字母、"ocredit=-1"设置密码至少要有几个特殊符号。
注:PAM仅存在于redhat系统中。
通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的密码,如果是root用户为目标用户,则就需要root用户的密码,而每多一个人知道root的密码,安全风险也就增加一分。而使用sudo命令不仅可以提权,还可以指定允许哪些用户以超级用户的身份来执行哪些命令。
要对用户进行提权,需要配置/etc/sudoers文件,而该文件一般使用visudo命令进行编辑。在配置文件中,授权记录的j基本配置格式如下所示:
user MACHINE=COMMANDS
授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行命令。各部分的具体含义如下:
用户)。
典型的sudo配置记录中,每行对应一个用户或组的sudo授权配置。例如,若要授权用户zhangsan能够执行ifconfig命令修改IP地址,而wheel组的用户无需验证密码即可执行任何命令,可以执行以下操作:
- visudo zhangsan localhost=/sbin/ifconfig #将此文本添加进sudoers文件中
- %wheel ALL=NOPASSWD:ALL #将此文本添加进sudoers文件中
而当使用相同授权的用户较多,或者授权的命令较多时,可以使用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须大写),分别通过关键字User_Alias、Host_Alias、Cmmd_Alias进行设置。例如以下操作通过别名方式来添加授权记录,允许用户zhangsan、lisi、wangwu在主机smtp、pop中执行rpm、yum命令。
- visudo User_Alias OPERATORS=zhangsan,lisi,wangwu #将此文本添加进sudoers文件中
- Host_Alias MAILSVRS=smtp,pop #将此文本添加进sudoers文件中
- Cmmd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum #将此文本添加进sudoers文件中
- OPERATORS MAILSVRS=PKGTOOLS #将此文本添加进sudoers文件中
sudo配置记录的命令部分允许使用通配符"*"、取反符号"!",当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。如,若要授权用户zhangsan可以执行/sbin/日录下除 ifconfig、route 以外的其他所有命令程序,可以执行以下操作:
visudo #将下行文本添加进sudoers文件中 zhangsan localhost=/sbin/*,!/sbin/ifconfg,!/sbin/route
默认情况下,通过 sudo 方式执行的操作并不记录。若要启用 sudo日志记录以备管理员查看,应在/etc/sudoers文件中增加“Defaults logfile”设置。
visudo Defaults logfile ="/ar/log/sudo" #将此文本添加进sudoers文件中
对于已获得授权的用户,通过sudo 方式执行特权命令时,只需要将正常的命令行作为sudo 命令的参数即可。由于特权命令程序通常位于sbin、/usr/sbin 等目录下,普通用户执行时应使用绝对路径。在当前会话过程中,第一次通过 sudo 执行命令时,必须以用户自己的密码(不是 root用户或其他用户的密码)进行验证。此后再次通过 sudo 执行命令时,只要与前一次sudo操作的间隔时间不超过 5min(分),则不再重复验证。
对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程。在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。
1. 调整BIOS引导设置
(1)将第一优先引导设备(First Boot Device)设为当前系统所在磁盘。
(2)禁止从其他设备(如光盘、U盘、网络等)引导系统,对应的项设为“Disabled”。
(3)将 BIOS的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改。
2. 限制更改GRUB参数
在没有任何限制的情况下,任何人都可以修改GRUB参数,对服务器本身显然是一个大的威胁。为了加强对引导过程的安全控制,可以为GRUB菜单设置一个密码,只有输入正确的密码才被允许修改参数。
为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过PBKDF2算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00_header配置文件中的末尾,添加root用户,格式为:
set superusers="root"
之后再将用grub2-mkpasswd-pbkdf2命令生成的密码写在用户的下一行,格式为:
passwd_pbkdf2 root 生成的密码
最后使用grub2-mkconfig命令在/boot/grub2/下生成新的grub.cfg配置文件,格式为:
grub2-mkconfig -o /boot/grub2/grub.cfg
输出的信息有:
- Generating grub configuration file...
- 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-b15df1eb8205483f9f70c79709810abc
- Found initrd image: /boot/initramfs-0-rescue-b15df1eb8205483f9f70c79709810abc.img done
通过上述的配置,重新开机进入GRUB菜单时,按E键则需要先输入密码,才能修改参数。
在 Linux 服务器中,默认开启了六个tty终端,允许任何用户进行本地登录。关于本地登录的安全控制,可以从以下几个方面着手:
1. 禁止root用户登录
在 Linux 系统中,login 程序会读取/etc/securetty文件,以决定允许root 用户从哪些终端(安全终端)登录系统。若要禁止root用户从指定的终端登录,只需从该文件中删除或者注释掉对应的行即可。例如,若要禁止 root 用户从tty5、tty6登录,可以修改/etc/securety文件,将tty5、tty6行注释掉。
2. 禁止普通用户登录
当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要在下简单地建立/etc/nologin文件即可。login程序会检査/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统(root用户不受限制)。当手动删除/etc/nologin文件或者重新启动主机以后,即可恢复正常。
在网络环境中,过于简单的口令是服务器面临的最大风险,对于任何一个承担着安全责任的管理员,及时找出这些弱口令账号是非常必要的,这有助于采取进一步的安全措施。John the Ripper是一款开源的密码破解工具,通过使用John the Ripper,可以检测Linux/UNIX系统用户账号的密码强度。
John the Ripper的官方网站是http://www.openwal.com/iohn/,通过该网站可以获取稳定版源码包,如john-1.8.0.tar.gz。
1. John the Ripper的下载安装过程
在安装有John the Ripper中,只需执行 run 目录下的 john 程序,将待检测的 shadow 文件作为命令行参数,就可以开始弱口令分析了。
在执行过程中,分析出来的弱口令账号将即时输出,第一列为密码字串,破解出的密码信息自动保存到john.pot 文件中,可以使用John命令结合“--show"选项进行查看(需要指定文件路径)。
NMAP是一个端口扫描l类安全测评工具,被设计为检测众多主机数量的巨大网络,支持ping扫描、多端口检测、OS识别等多种技术。使用 NMAP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险。在使用之前需要先安装NAMP软件包。
1. 扫描语法及类型
NAMP命令的使用格式为:
namp [扫描类型] [选项] <扫描目标...>
其中,扫描目标可以是主机名、IP地址或网络地址等,多个目标以空格分隔;常用的选项有“-p”“-n”,分别用来指定扫描的端口、禁用反向DNS解析(以加快扫描速度);扫描类型决定着检测的方式,也直接影响扫描的结果。
比较常用的几种扫描类型如下:
2. 扫描操作示例:
在扫描结果中,STATE列若为open则表示端口为开放状态,为filtered表示可能被防火墙过滤,为closed表示端口为关闭状态。
图中显示192.168.10.101、192.168.10.102和192.168.10.254都提供FTP服务。
显示192.168.10.1、192.168.10.101、192.168.10.102、192.168.10.254都可以ping通。
显示192.168.10.101和192.168.10.102并没有开启文件共享服务。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。