Red Hat更安全

 

BIOS安全

记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样可以阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等。

LILO安全

在“/etc/lilo.conf”文件中添加3个参数:time-out、restricted 和 password。这些选项会在启动时间(如“linux single”)转到启动转载程序过程中,要求提供密码。

步骤1
编辑lilo.conf文件(/etc/lilo.conf),添加和更改这三个选项:

 
QUOTE:
boot=/dev/hda 
map=/boot/map 
install=/boot/boot.b 
time-out=00 #change this line to 00
prompt 
Default=linux 
restricted #add this line
password=<password> #add this line and put your password 
p_w_picpath=/boot/vmlinuz-2.2.14-12 
label=linux 
initrd=/boot/initrd-2.2.14-12.img 
root=/dev/hda6 
read-only
步骤2
由于其中的密码未加密,“/etc/lilo.conf”文件只对根用户为可读。
[root@kapil /]# chmod 600 /etc/lilo.conf (不再为全局可读)

步骤3
作了上述修改后,更新配置文件“/etc/lilo.conf”。
[Root@kapil /]# /sbin/lilo -v (更新lilo.conf文件)

步骤4
还有一个方法使“/etc/lilo.conf”更安全,那就是用chattr命令将其设为不可改:
[root@kapil /]# chattr +i /etc/lilo.conf
它将阻止任何对“lilo.conf”文件的更改,无论是否故意。

关于lilo安全的更多信息,请参考LILO。

禁用所有专门帐号

在lp, sync, shutdown, halt, news, uucp, operator, games, gopher等系统中,将你不使用的所有默认用户帐号和群组帐号删除。
要删除用户帐号:
[root@kapil /]# userdel LP

要删除群组帐号:
[root@kapil /]# groupdel LP

选择恰当的密码

选择密码时要遵循如下原则:
密码长度:安装Linux系统时默认的最短密码长度为5个字符。这个长度还不够,应该增为8个。要改为8个字符,必须编辑 login.defs 文件(/etc/login.defs):

PASS_MIN_LEN 5 
改为: 
PASS_MIN_LEN 8 
“login.defs”是登录程序的配置文件。 
启用盲区密码支持

请启用盲区密码功能。要实现这一点,使用“/usr/sbin/authconfig”实用程序。如果想把系统中现有的密码和群组改为盲区密码和群组,则分别用 pwconv 和 grpconv 命令。

根帐户

在UNIX系统中,根帐户具有最高权限。如果系统管理员在离开系统时忘了从根系统注销,系统应该能够自动从shell中注销。那么,你就需要设置一个特殊的 Linux 变量“TMOUT”,用以设定时间。
编辑“/etc/profile”文件在 
"HISTFILESIZE=" 
之后添加: 
TMOUT=3600 
为“TMOUT=”输入的值代表1小时的妙数(60 * 60 = 3600妙)。
在“/etc/profile”文件中加了这一行后,任何用户使用该系统时有1小时的休止状态,将自动执行注销操作。而如果用户要对该变量进行分别设定,可以在“.bashrc”文件中定义自动注销的时间。
修改了该参数后,必须退出并重新登录(为根帐户),更改才能生效。

禁止普通用户对控制台的所有访问

应该禁止服务器上的普通用户对关闭、重启、挂起等控制台级别程序的访问。运行如下命令:
[root@kapil /]# rm -f /etc/security/console.apps其中<servicename>为禁止访问的程序名称。

禁用 & 卸载所有不使用的服务

对所有不使用的服务,应该禁用并卸载,这样可以少些麻烦。查看“/etc/inetd.conf”文件,在不需要的项目行前加“#”号,即改为注释语句,就可以禁用它们了。然后给 inetd 过程发送一个 SIGHUP 命令,对“inetd.conf”文件进行更新。步骤如下:

步骤1
将“/etc/inetd.conf”文件许可改为600,使其只对根用户为可读写。
[Root@kapil /]# chmod 600 /etc/inetd.conf

步骤2
确保“/etc/inetd.conf”文件的所有者为根用户。

步骤3
编辑 inetd.conf 文件(/etc/inetd.conf),禁用如下服务:
ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。
如果不打算用,禁用了这些服务可以减少风险。

步骤4
给 inetd 过程发送HUP信号:
[root@kapil /]# killall -HUP inetd

步骤5
将“/etc/inetd.conf”文件设为不可更改,chattr 命令可以使任何人都无法对其进行修改:
[root@kapil /]# chattr +i /etc/inetd.conf 
唯一可以设置或清除该属性的用户只有根用户。要修改inetd.conf文件,必须去掉不可更改标记:
[root@kapil /]# chattr -i /etc/inetd.conf

TCP_WRAPPERS

通过 TCP_WRAPPERS,可以使服务器更好地抵制外部侵入。最好的办法是拒绝所有主机:在“/etc/hosts.deny”文件中加入“ALL:&nbspALL@ALL, PARANOID”,然后在“/etc/hosts.allow”列出允许访问的主机。TCP_WRAPPERS 受控于两个文件,搜索时停在第一个匹配的地方。
/etc/hosts.allow
/etc/hosts.deny

步骤1
编辑 hosts.deny 文件(/etc/hosts.deny),加入如下行:
# Deny access to everyone. 
ALL:&nbspALL@ALL, PARANOID 
语句的意思是,除非在 allow 文件中说明允许访问,所有服务、所有主机都被拒绝。

步骤2
编辑 hosts.allow 文件(/etc/hosts.allow),例如在文件中添加如下行:
ftp: 202.54.15.99 foo.com
对于你的客户机来说:202.54.15.99为IP地址,foo.com为允许使用ftp的一个客户机。

步骤3
tcpdchk 程序是tcpd wrapper配置的检查程序。它对tcpd wrapper的配置进行检查,并报告所发现的潜在的和实际存在的问题。配置完成后,运行tcpdchk 程序:
[Root@kapil /]# tcpdchk

不要显示系统发行文件

当别人远程登录时,不应该显示系统发行文件。做法是在“/etc/inetd.conf”文件中更改telnet选项:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
改为:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

在末尾加“-h”标记使后台程序不显示任何系统信息,而只给用户提供一个 login: 提示符。

更改“/etc/host.conf”文件

“/etc/host.conf”文件用来指定如何解析名称的方法。编辑 host.conf 文件(/etc/host.conf),添加如下各行:
# Lookup names via DNS first then fall back to /etc/hosts. 
order bind,hosts 
# We have machines with multiple IP addresses. 
multi on 
# Check for IP address spoofing. 
nospoof on

第一个选项首先通过DNS解析主机名称,然后解析主机文件。multi 选项用于确定“/etc/hosts”文件中的主机是否有多个IP地址(多接口以太网)。
nospoof 选项指明该机器不允许假信息。

为“/etc/services”文件免疫

必须为“/etc/services”文件进行磁盘免疫,以避免对文件未经授权的删除或添加。使用如下命令:
[root@kapil /]# chattr +i /etc/services

不接受从不同控制台的根用户登录

“/etc/securetty”文件可以指定“root”用户允许从哪个TTY设备登录。编辑“/etc/securetty”文件,在不需要的tty前面加“#”,禁用这些设备。

禁止任何人使用su命令

su命令(Substitute User,替代用户)可以使你成为系统的现有用户。如果不希望别人使用su进入根帐户,或者对某些用户限制使用“su”命令,则在“/etc/pam.d/”目录的“su”配置文件顶部加上下文中给出的两行代码。

编辑su文件(/etc/pam.d/su),在文件顶部添加如下两行:
auth sufficient /lib/security/pam_rootok.so debug 
auth required /lib/security/Pam_wheel.so group=wheel

意思是,只有“wheel”组的成员可以用su命令;其中还包括了日志。你可以在wheel组中添加允许使用该命令的用户。

shell日志

shell可存储500个旧命令在“~/.bash_history”文件中(其中“~/”代表主目录),这样可以便于重复前面的长命令。系统中的每个帐号用户在各自的主目录中都有这个“.bash_history”文件。为安全起见,应使shell存储较少的命令,并在注销用户时将其删除。

步骤1
“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 行决定了系统中所有用户的“.bash_history”文件可容纳的旧命令个数。建议将“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 设为比较小的数,比如30。
编辑 profile 文件(/etc/profile),并更改:
HISTFILESIZE=30 
HISTSIZE=30

步骤2
系统管理员还应在“/etc/skel/.bash_logout”文件中加进“rm -f $HOME/.bash_history”行,这样就可以在每次用户退出时删除“.bash_history”文件。
编辑 .bash_logout 文件(/etc/skel/.bash_logout),并添加如下行:
rm -f $HOME/.bash_history

禁用 Control-Alt-Delete 键盘关机命令

只要在该行前面加“#”,改为注释行。在“/etc/inittab”文件中找到:
ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
改为:
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
然后,为使更改生效,在提示符下输入:
[root@kapil /]# /sbin/init q

修正脚本文件在“/etc/rc.d/init.d”目录下的权限

对脚本文件的权限进行修正,脚本文件用以决定启动时需要运行的所有正常过程的开启和停止。添加:
[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/* 
这句指的是,只有根用户允许在该目录下使用 Read、Write,和 Execute 脚本文件。

隐藏系统信息

默认情况下,当用户登录到 Linux 中时,会显示 Linux 发行名称、版本、内核版本,以及服务器名称。这些已经足够让***获取服务器的信息了。正确的做法是只为用户显示“Login: ”提示符。

步骤1
编辑“/etc/rc.d/rc.local” 文件,并将“#”标在下列行的前面:

 
QUOTE:
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue 
#echo "$R" >> /etc/issue 
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue

#cp -f /etc/issue /etc/issue.net 
#echo >> /etc/issue
步骤2
然后在“/etc”目录下删除“issue.net”和“issue”文件:
[root@kapil /]# rm -f /etc/issue 
[root@kapil /]# rm -f /etc/issue.net

禁用通常不用的 SUID/SGID 程序

如果设为 SUID 根用户,普通用户也可以作为根用户运行程序。系统管理员应该减少 SUID/GUID 程序的使用,并禁用那些不需要的程序。

步骤1
要从根用户的程序中搜索所有包含“s”字符的文件,使用命令:
[root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

要在搜索到的程序中禁用 suid 程序,键入如下命令:
[root@kapil /]# chmod a-s [program]

按照上述的一些安全指南,系统管理员就可以达到基本的系统安全要求。上述的一些操作是一个连续的过程。系统管理员必须保持它们的连续性,才能使系统真正安全。

转载于:https://blog.51cto.com/linuxx/186243

让你的linux操作系统更加安全相关推荐

  1. 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc

    linux操作系统实验报告全部 计算机操作系统 实验报告 学 号:姓 名:提交日期:2014.12.15成 绩: 东北大学秦皇岛分校 [实验题目]熟悉Linux/UNIX操作系统[实验目的]1.熟悉L ...

  2. Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似

    正如你在截图中所看到的那样,Linuxfx的外观和感觉与Windows 10非常类似,甚至还可以得到一个带有Windows开始按钮的开始菜单,然而,这个实际上可能是一个问题,因为微软可能不喜欢在另一个 ...

  3. 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)

    作为初学者想变为计算机大牛非一朝一夕,但掌握基本的计算机操作和常识却也不是多么难的事情.所以作为一名工科男,为了把握住接近女神的机会,也为了避免当白痴,学会装系统吧!of course为避免把自己的电 ...

  4. linux操作系统的特点有哪些,LINUX操作系统有哪些概念和特点?

    嵌入式LINUX操作系统的概念 以应用为中心,以计算机技术为基础,软件.硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗要求严格的专用计算机系统,称为嵌入式系统.一个最小的嵌入式系统的基本组成 ...

  5. linux六种进程状态,Linux操作系统中进程的七种状态

    Linux操作系统中进程的七种状态 发布时间:2018-05-07 20:43, 浏览次数:741 , 标签: Linux 1 Linux中进程的七种状态(1)R运行状态(runing):并不意味着进 ...

  6. mysql用户权限与安装Linux操作系统

    用户与权限: 关于用户的创建: 我们都知道安装数据库服务器的时候,一般默认的情况下只有一个root用户,但是在公司里一个数据库会有多个人使用,所以自然的一个数据库里需要有多个用户,并且在使用数据库的过 ...

  7. linux 卸载yaf,LINUX操作系统怎么搭建YAF框架

    如何在已经搭建好的php环境下,继续搭建yaf框架环境?那么小编就在本文给大家介绍下搭建方法 LINUX操作系统怎么搭建YAF框架 命令: wget 地址参考图片 命令: tar zxvf yaf-2 ...

  8. Linux操作系统选择:Debian or Ubuntu

    此文首发于我的个人博客:Linux操作系统选择:Debian or Ubuntu - zhang0peter的个人博客 我最开始使用Linux系统的时候选择的是Ubuntu,因为Ubuntu名气大,而 ...

  9. linux课程设计死锁避免,linux操作系统课程设计—车辆死锁.doc

    linux操作系统课程设计-车辆死锁.doc 键入文字"操作系统原理"课程设计BX090709吴沛儒操作系统原理课程设计报告姓名吴沛儒班级BX0907学号9指导老师胡静二〇一一年十 ...

  10. 无人值守u盘安装linux,从U盘无人值守安装linux操作系统(纯实践笔记)

    作者:曲宝全 本文的目的是:实现从U盘无人值守安装Linux操作系统 环境说明:1个4G的U盘(根据自己的操作系统ISO大小来定),本文试验的操作系统是RHEL4.8-x86_64-AS-DVD.is ...

最新文章

  1. SpringBoot注解大全 转
  2. 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
  3. 列表逆向排列的几种实现形式
  4. C++ 深复制与浅复制 RVO问题
  5. php 开启命令模式,如何启用PhpStorm中的命令行工具
  6. python3.6 websocket异步高并发_在Python3.6上的websocket客户端中侦听传入消息时出现问题...
  7. WCF宿主与服务托管
  8. linux上部署最新版本zookeeper伪分布式集群
  9. oracle中创建表的自增ID
  10. golang 之 import 和 package 的使用
  11. 微信棋牌H5游戏开发教程以及如何有效防止被人恶意攻击
  12. threejs 绘制球体_threejs地球仪制作
  13. 中医基础理论第二章藏象(心)
  14. 初中英语语法(010)-分词
  15. 51 个漂亮的电子商务网站设计分享
  16. 灰太狼大王讲java之抽象类
  17. t6UFO资产负债表
  18. 【R】【课程笔记】04+05 数据预处理+收益率计算
  19. node.js毕业设计安卓校园代办助手app(程序+APP+LW)
  20. python中文件读写mode参数

热门文章

  1. java 鼠标动眼睛动_js动画_看着鼠标移动的眼球_眼睛_跟着随鼠标移动
  2. 我的世界服务器名称被占用,为什么我的世界服务器说此用户名已被注册我都换了很多用户了都没用 爱问知识人...
  3. 正则表达式中或关系表示及查找英文字母最后一个
  4. 用VB实现带图片的XP风格的按钮控件
  5. vbScript中WScript.Shell对象的 run 和 exec
  6. 英语总结系列(二十四):历经GCT的一月
  7. 63万张!旷视发布最大物体检测数据集Objects365,物体检测竞赛登陆CVPR
  8. 吴恩达团队新研究!用MRNet进行膝关节磁共振影像诊断 已媲美医生 | 论文
  9. 刚刚,Facebook开源了星际争霸AI代码
  10. 这台相机没镜头!美国教授新发明,一块玻璃可成像,拍照给计算机看