企业级 Linux 安全管理实例(1)
公司企业多用Linux服务器,其中涉及到的一些安全管理对于安全运维人员来说是必不可少的应知技能,
以下案例沿着背景->需求->具体要求->操作步骤的流程进行描述,可以加深对安全管理的理解。
1. 操作条件: (1)装有 Cent OS Linux 操作系统的虚拟机一台 2. 背景:
某企业有一台服务器,其信息如下:
(1) 该服务器上存在管理员 root,密码为 root,另存有一些具有 root 权限的
其他账户,经确认这些账户长期未使用;
(2) “/secure”文件夹为公司开发部的重要文件夹,目前权限为所有人完全
控制。实际使用需求为:只有 “develops”组的管理员“deadmin”和
“develops”小组成员能对组进行任何操作;其他用户组只能查看。
(3) 服务器默认可以通过所有的 TTY 进行登录,并且 root 用户可以通过 SSH进行远程登录;
(4) 任何用户可以切换 su 登录。
3. 需求: 现需要对该服务器进行安全加固,减少攻击面:
(1) 防止黑客爆破 root 用户密码,并防止黑客通过其他管理员用户入侵的可能性。对新建账户强制要求8位以上的复杂密码,
并至少每两个月修改一次密码,到期前一个礼拜 醒客户修改密码;
(2) 防止未经授权的文件访问;
(3) 防止未经授权的 TTY 登录,仅留 1,2 两个 TTY 登录入口;
(4) 防止 root 用户直接远程登录;
(5) 防止因忘记注销而产生的安全问题,超时 5 分钟后自动注销;
(6) 防止任意用户使用 su 切换成 root 账户;
(7) 防止账户文件被修改。
4. 具体要求:
(1) 找出并锁定未使用的管理员账户,并对管理员账户设置强密码 1qaz@WSX;
(2) 检查口令策略是否符合要求,并正确设置;
(3) 根据访问需求设置“/secure”文件夹权限;
(4) 正确部署登录策略(包括 TTY 登录、远程登录、和 su 切换限制);
(5) 正确设置自动注销;
(6) 正确限制 su 切换,仅限 wheel 组才能切换至 root;
(7) 锁定账户文件防止被修改。
5. 操作步骤:
步骤1. 安全管理账户:
(1) 为 root 用户设置强密码:打开终端,依次输入下列命令
passwd root
1qaz@WSX
1qaz@WSX
(2) 找出 UID 为 0 的用户,并锁定:在终端中依次输入下列命令
cat/etc/passwd //发现UID为0的用户为testadmin
passwd -l testadmin //锁定 testadmin 用户
(3) 创建/secure 文件夹的使用账户和组:在终端中依次输入下列命令
groupadd develops
useradd -g develops deadmin
passwd deadmin
zaq1@WSX
zaq1@WSX //这里密码任意 步骤2. 文件系统安全管理:
(1) 设置适当的用户文件权限:在终端中依次输入下列命令
chown deadmin:develops /secure
chmod 774 /secure
步骤3. 系统加固
(1) 设置口令策略:在终端中依次输入下列命令
cat /etc/login.defs
vi /etc/login.defs(按 i 进行编辑,qw 保存并推出) 修改如下行:
PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 8
PASS_WARN_AGE 7
(2) 防止 TTY 登录,仅留 1,2 两个 TTY 登录入口:在终端中输入下列命令
vi /etc/inittab (按 i 进行编辑,qw 保存并推出) 注释如下行:
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
(3) 设置自动注销超时时间:在终端中输入下列命令
vi /etc/profile (按 i 进行编辑,qw 保存并推出) 在 HISTSIZE=1000 下面加入行:
TMOUT=300
(4) 防止任意用户使用 su 切换到 root:在终端中输入下列命令
vi /etc/pam.d/su (按 i 进行编辑,qw 保存并推出) 在头部加入行:
auth required pam_wheel.so group=wheel
(5) 防止 root 用户远程登录:在终端中输入下列命令
vi /etc/ssh/sshd_config (按 i 进行编辑,qw 保存并推出) 修改如下行:
PermitRootLogin no
(6) 锁定账户文件:在终端中依次输入下列命令
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group
企业级 Linux 安全管理实例(1)的更多相关文章
- [企业级linux安全管理]- 安全管理基础(1)
1. 操作条件: (1)装有 Cent OS Linux 操作系统的虚拟机一台 2. 背景: 某企业有一台服务器,其信息如下: (1) 该服务器上存在管理员 root,密码为 root,另存有一些 ...
- Linux多线程实例练习 - pthread_cancel()
Linux多线程实例练习 - pthread_cancel 1.代码 xx_pthread_cancel.c #include <pthread.h> #include <stdio ...
- Linux多线程实例练习 - pthread_exit() 与 pthread_join()
Linux多线程实例练习 - pthread_exit 与 pthread_join pthread_exit():终止当前线程 void pthread_exit(void* retval); pt ...
- Linux多线程实例练习 - pthread_create()
Linux多线程实例练习 pthread_create():创建一个线程 int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, ...
- Linux:进程实例信息(/proc)
https://blog.csdn.net/test1280/article/details/73632333 Linux:进程实例信息(/proc) 问几个问题: 1.怎么知道一个进程对应哪个可执行 ...
- CentOS 7.1 中文正式版下载 - 最流行的免费开源企业级 Linux 服务器操作系统
如果说 Ubuntu 是现今最受桌面用户欢迎的 Linux 操作系统,那么 CentOS 就是最受公司.企业.IDC 喜爱的 Linux 发行版了.得益于极为出色的稳定性,全球范围内无数著名网站均选用 ...
- [AWS - EC2] 如何向 Amazon Linux 2 实例传输文件,下载文件。How to send/ download files from Amazon Linux 2 Instance
1. 需要: 安装 WinSCP 2. 需要: PuTTY 生成的ppk格式密钥, 没有的话请移步此文章,完成1, 2, 3步即可. 3. 打开 WinSCP , 如果提示已经有PuTTY配置是否导入 ...
- [AWS - EC2]如何使用 PuTTY 连接到 Amazon Linux 2 实例。How to Connect Amazon Linux 2 Instance from Windows Using PuTTY
1. 下载 PuTTY 2. 安装到任意目录 3. 打开 PuTTYgen (注意不是 PuTTY), 如图: 选择 RSA , 点击 Load. 找到从 AWS 创建实例的时候生成的 key,要选择 ...
- shell linux基本命令实例、笔记
1. 在当前文件夹下.查找20分钟内,被訪问过的文件, 并将文件的详情显示出来: find ./ -name '*.log' -mmin -20 -exec ls -l {} \; 当然,须要指出 ...
随机推荐
- 致vi老大 2011.1
文/安然 亲爱的,你即将离去 飞机起飞的一刻, 请珍藏起我们2010的回忆 桃源仙谷,曾留下我们踏青的足迹 难忘,石头上小憩 小北门外,我们在大排档里尽情欢喜 见证,杯盘狼藉 饺子店,是冬日里四面八方 ...
- 关于Fragment的使用与Androikd sdk版本之间的东东
第一个问题如何使用Fragment? 第二个问题哪些场景适合用Fragment? 第三个问题android.app.fragment与android.support.v4.app.Fragment 为 ...
- TreeView递归取值
string jingyuan = ""; string jinghui = ""; private void DiGui(TreeNode tn) { if ...
- 安装完MySQL后必须要调整的10项配置
2014年02月10日11:11 来源:开源中国 作者:BoydWang, 美好的2014, DrZ 编辑:徐志远 标签: 配置 , mysql , 数据库 [IT168 评论]当我们被人雇来监测My ...
- phpmailer 实现发送邮件
在注册的时候,常常会用到邮件验证,一直想弄明白这是怎么实现的,记得2年前曾经试过这个问题,没有实现,今天困到不行的时候开始决定搞明白这个,然后,然后就出来了. <?php require(&qu ...
- zhuan:点滴记录——Ubuntu 14.04中gedit打开文件出现中文乱码问题
在中文支持配置还不完整的Ubuntu 14.04中,使用gedit打开带有中文字符的文件有时会出现乱码的情况,这是由于gedit对字符编码匹配不正确导致的,解决方法如下: 在终端中输入如下命令,然后重 ...
- [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(二)
ASP.NET 请求生命周期 全局应用类也可以用来跟踪每个独立请求的生命周期,包括请求从 ASP.NET 平台传递到 MVC 框架.ASP.NET 框架会创建一个定义在 Global.asax 文件中 ...
- 微信公众号jssdk使用的惨痛经历
最近一直在做微信公众号开发,遇到个DT的问题: 大家都知道使用jssdk的时候开发人员必须在后台按照官方文档给定的规则生成签名,我前前个月就写好了这个测试demo页面,而且完全正常能用,像分享等这些功 ...
- CLR.via.C#第三版 读书笔记
第一章 CLR的执行模型 1.1将源代码编译成托管代码 决定将.NET Framework作为自己的开发平台之后,第一步是决定要生成什么类型的应用程序或组件.假定你已经完成了这些次要的细节:一切都已经 ...
- C# json to dynamic object
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(json); string greeting = obj.greeting; R ...