Linux系统安全及应用

实验案例

某公司新增了一台企业级服务器,已安装运行RHEL6操作系统,由系统运维部、软件开发部、技术服务部共同使用。由于用户数量众多,且使用时间不固定,要求针对账号和登录过程采取基本的安全措施。

需求描述

1.允许用户radmin使用su命令进行切换,其他用户一律禁止切换身份。

2.授权用户zhangsan管理所有员工的账号,但禁止其修改root用户的信息。

3.授权用户lisi能够执行/sbin、/usr/sbin目录下的所有特权命令,不需要密码验证。

4.所有的su、sudo操作,必须在系统日志文件中进行记录。

5.禁止使用Ctrl+Alt+Del快捷键,只开放tt3、tt5终端,为GRUB引导菜单设置密码。

1.限制使用su命令

(1)修改认证文件/etc/pam.d/su,启用pam_wheel.so认证模块。

去掉此行开头的#号

(2)将radmin用户加入到wheel组。

(3)验证除了root、radmin以外,均不能使用su命令进行切换。

补充:

1.切换用户时,使用的选项”-”等同于”--login”或”-l”,表示切换用户后进入目标用户的登录Shell环境(切换到目标用户的宿主目录),若缺少此选项则仅切换身份、不切换用户环境。

2.使用su命令切换用户的操作将会记录到安全日志/var/log/secure文件中。

2.设置sudo授权

(1)授权用户zhangsan使用useradd、userdel、passwd、usermod命令,但禁止其执行”passwd root”、”usermod * root”操作。

/etc/sudoers文件的默认权限为440,所以需要执行”:w!”命令强制保存。

可以使用专门的visudo工具进行编辑。

授权记录的基本格式

User    MACHINE=COMMANDS(用户    主机=命令)

具体含义:

User:授权的用户名,授权一个组可以采用”%组名”的形式。

MACHINE:使用此配置文件的主机名,可以方便多个主机间共用同一份sudoers文件。

COMMANDS:允许授权的用户通过sudo方式执行的特权命令,需要填写命令程序的完整路径,多个命令之间以”,”分隔。可以使用通配符“*”,取反符号“!”。

(2)授权lisi用户使用/sbin/*、/usr/sbin/*命令,添加NOPASSWD,以取消验证。

(3)添加”Defaults logfile”配置行,以启用sudo日志。

注意:通过sudo方式执行的操作并不记录,若要启用sudo日志记录,应在/etc/sudoers文件中增加”Defaults logfile”设置。

(4)分别以zhangsan、lisi用户登录,验证授权的sudo 操作,并查看日志。

验证用户zhangsan权限

验证用户lisi权限

查看sudo日志

3.限制引导及登录过程

(1)禁止ctrl+alt+del快捷键(防止主机以外重启)

需要重启才生效

(2)禁用tty1、tty2、tty4、tty6这四个终端

控制tty终端开启数量的配置文件有两个

控制终端配置文件:

/etc/init/tty.conf//控制tty终端的开启

/etc/init/start-ttys.conf//控制tty终端的开启数量、设备文件

/etc/sysconfig/init//控制tty终端的开启数量、终端颜色

重新读取文件,以更新配置,可以不用重新启动系统。

(3)在grub.conf文件中的第一个title行之前添加密码配置。

“grub-md5-crypt”可以生成经过MD5算法加密的密码字符串,安全性更好。

将密码配置项添加到第一个title之前

注意:为GRUB设置密码时,”--md5...”部分可以替换为明文的密码字符串,但是按选型稍差。

(4)重启后进入到GRUB菜单界面,验证直接按e键已无法编辑引导参数。

知识点补充:

1.文件锁定

chattr +i 文件名       //锁定文件

chattr -i 文件名       //解锁文件

lsattr 文件名          //查看文件状态

例如:

锁定账号配置文件,就不能再添加、更改账号。

2.密码安全控制

修改配置文件/etc/login.defs,可以将密码有效期设为30天(适用于将要新建的用户)。

设置已有账号密码的有效期

设置用户下次登录时必须更改密码(适用于批量创建的用户)

3.命令历史

Bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。

命令:export HISTSIZE=历史命令条数            //适用于当前用户

历史命令条数为15

修改配置文件/etc/profile,可以影响系统中的所有用户//适用于新登陆的用户

当用户退出已登录的bash环境后,自动清空历史纪录。

4.闲置超时

命令:设置超时时间,指定时间没有任何输入就自动注销        //适用于当前用户

修改配置文件/etc/profile,可以影响所有用户//适用于所有用户

注意:闲置超时由变量TMOUT来控制的,默认单位为秒。

必要时可以执行”unset TMOUT”取消TMOUT变量设置。

5.sudo命令--提升执行权限

典型的sudo配置记录中,每一行对应一个用户或组的sudo授权配置。特殊情况:

(1)wheel组的用户不需要验证密码即可执行任何命令,可以执行:

Vim /etc/sudoers

用户radmin属于wheel组,所以可执行任何命令。

(2)当使用相同授权的用户较多时,或者授权的命令较多时,可以采用集中定义的别名。

例如:

含义:允许用户fjc、jerry、tom在主机smtp、pop中执行rpm、yum命令

注意:User_Alias、Host_Alias、Cmnd_Alias为关键字

OPERATORS(用户)、MAILSVRS(主机)、PKGTOOLS(命令)分别定义为别名,必须大写。

6.禁止root用户登录

在linux系统中,login程序会读取/etc/securetty文件,以决定允许root用户从哪些终端登录系统。若要禁止root用户从指定终端登录,从该文件中注释掉对应的行即可。例如:

禁止root用户从tty5和tty6终端登录

7.禁止普通用户

只需要建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统(root用户不受限制)。

8.弱口令探测(john  the ripper)

(1)下载并安装

注意编译所在的路径

John the Ripper的官方网站是http://www.openwall.com/john/

查看是否安装成功

在子目录run/生成john程序

(2)检测弱口令

检测结果,可以按ctrl+c强制终止

结合选项”--show”查看破解出的账户列表

9.网络扫描—NMAP

(1)安装NMAP包

(2)扫描语法及类型

nmap    [扫描类型]    [选项]    扫描目标

注意:扫描目标可以是主机名、IP地址、或网络地址等,多个目标用空格分隔;

常用的选项有  -p:指定扫描的端口

-n:禁用方向DNS解析(加快扫描速度)

常用的扫描类型

-sS,TCP SYN扫描(半开):只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。

-sT,TCP 连接扫描(全开):这是一个完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听,否则认为目标端口并为开放。

-sF,TCP FIN扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。

-sU,UDP扫描:探测目标主机提供了哪些UDP服务。

-sP,ICMP扫描:类似于ping检测,快速判断目标主机是否存活,不做其他扫描。

-P0,跳过ping检测:这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。

时间: 2024-10-15 07:48:52

Linux系统安全及应用的相关文章

查看Linux系统版本信息

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [[email protected]CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2.uname -a [

制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统

转自网络,供学习记录使用,红色部分是我实验时,这篇文章和网站稍有出入的地方. 目的:制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统 在http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/quickstart/zynq(姑且把这个链接成为链接1吧)链接中找到 图1 点击绿色字体的链接,下载镜像原始文件.这里有不同时期的版本,本说明中选择 图2 下载的原始文件为:2014_R2-

Linux系统基础.作业

要求以root用户登录系统,右击桌面打开终端,查看当前登陆Linux系统所使用的用户名 查看哪些用户在系统上工作 修改当前时间为2018年8月26号11:28 查看2015年10月份日历 使用两种方法查看ls命令的使用说明 清除屏幕 ctrl+L 使用"useradd tom"命令新建tom用户,为tom用户设置密码"123" 切换当前用户为tom 查看当前登陆Linux系统所使用的用户名

小白文科生眼中的Linux系统

我是一个正统的文科生,基本上在win的基础上长大,最开始接触的是Windows98(95虽然知道,但那时候太小了)然后是me,2000,再到XP,然后是vista,再然后就是使用量最大的7,然后是8,8.1,10,...基本上每个版本都用(玩)过,对win也可以说是有了基础的了解,13年暑假的时候,Android迅速崛起,从那个时候,刚刚知道Linux.在然后就开始疯狂的搜索Linux 的资料,那时候刚刚高中毕业,网上的资料基本都看不懂,虽然看不懂但还是找的津津有味. 记得2013年最先开始了解

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

​查看Linux系统的所有配置命令

查看Linux系统的所有配置命令     1.查看主板的序列号: dmidecode | grep -i 'serial number'     2.查看CPU信息: cat /proc/cpuinfo dmesg | grep -i 'cpu' dmidecode -t processor     3.查看内存信息: cat /proc/meminfo free -m vmstat     5.查看网卡信息: dmesg | grep -i 'eth' cat /etc/sysconfig/h

Linux系统下的shutdown命令用于安全的关闭/重启计算机

Linux系统下的shutdown命令用于安全的关闭/重启计算机,它不仅可以方便的实现定时关机,还可以由用户决定关机时的相关参数.在执行shutdown命令时,系统会给每个终端(用户)发送一条屏显,提示关机操作.定时关机只需要一个简单的参数,既可以是倒计时,也可以是确切的时间. 命令格式 1 shutdown [选项] [时间] [消息] 并有如下选项: - k 不执行任何关机操作,只发出警告信息给所有用户 - r 重新启动计算机 - h 关机并彻底断电 - f 快速关机且重启动时跳过fsck

自动调整linux系统时间和时区与Internet时间同步

调整linux系统时间和时区与Internet时间同步 一.修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# vi /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=falseARC=false 二.配置新的时间日期设定:# date -s 2008/05/06 时间设定:# date -s 18:40:00 查看硬件时间(BIOS的):    hwclock

Linux系统时间管理

一.时区配置 显示时区 [[email protected] ~]# date -R Mon, 19 Dec 2016 14:02:47 +0800 [[email protected] ~]# [[email protected] ~]# date +%z +0800 [[email protected] ~]# 主要就是后面的+0800,东八区 修改时区 [[email protected] ~]# vim /etc/sysconfig/clock [[email protected] ~]

VMware 中linux系统上搭载ftp服务器

本文讲述最基本vsftp搭载方法,另有yum命令快速安装另外深究 1.下载安装VMWare,安装linux系统 2.获取vsftpd安装包 安装盘的packages包里面找到所需vsftp组件,复制到linux目录下 使用命令:rpm -vih rpm文件名 安装vsftpd 3.使用su 命令进入root用户,使用adduser test,passwd test添加同户名密码 4.在windows dos 下使用ftp ip 访问linux下的ftp服务会发现无法访问ftp 这是因为Linux