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= #add this line and put your password

  image=/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 命令。

/////////////2///////////////////

根帐户

  在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其中为禁止访问的程序名称。

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

  对所有不使用的服务,应该禁用并卸载,这样可以少些麻烦。查看“/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

///////////////////////3//////////////////////

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前面加“#”,禁用这些设备。

///////////////4///////////////////

禁止任何人使用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]

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

让你的linux操作系统更加安全【转】的更多相关文章

  1. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份

    前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...

  2. Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

    http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...

  3. 安装linux操作系统

    安装双操作系统; 1 0. 介绍: 1 1 实验环境: 2 2. 实验准备: 2 3.开始安装: 2 1 制作U盘启动工具: 2 2.安装LinuxOS. 3 2.1在windowOS中划分60G空间 ...

  4. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  5. 献给初学者:谈谈如何学习Linux操作系统

    本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329. 为了能把这篇不错的文章分享给大家.所以请允许我暂时用原创的形式 ...

  6. Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份

    这里我们讨论Linux操作系统的备份. 在生产环境,客户都会要求做全系统的数据备份,用于系统崩溃后的一种恢复手段.这其中就包含操作系统数据的备份恢复. 由于是生产环境,客户都会要求备份不中断业务,也就 ...

  7. 安装Kali Linux操作系统Kali Linux无线网络渗透

    安装Kali Linux操作系统Kali Linux无线网络渗透 Kali Linux是一个基于Debian的Linux发行版,它的前身是BackTrack Linux发行版.在该操作系统中,自带了大 ...

  8. 使用 /proc 文件系统来访问 linux操作系统 内核的内容 && 虚拟文件系统vfs及proc详解

    http://blog.163.com/he_junwei/blog/static/19793764620152743325659/ http://www.01yun.com/other/201304 ...

  9. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  10. Linux操作系统基础(四)保护模式内存管理(2)【转】

    转自:http://blog.csdn.net/rosetta/article/details/8570681 Linux操作系统基础(四)保护模式内存管理(2) 转载请注明出处:http://blo ...

随机推荐

  1. LINUX 产生PPM 驱动例子

    APP: //author:DriverMonkey //phone:13410905075 //mail:bookworepeng@Hotmail.com //qq:196568501 #inclu ...

  2. 一个html5开发工具

    今天推荐一个Html5开发工具 sublimetext3 找了一个注册码 可用 —– BEGIN LICENSE —– Michael Barnes Single User License EA7E- ...

  3. tomcat异常: Cannot get a connection, pool exhausted

    1 问题描述Web程序在tomcat刚开始运行时速度很快,但过一段时间后发现速度变得很慢. 检查日志输出,发现异常如下:org.apache.commons.dbcp.SQLNestedExcepti ...

  4. EasyUI 格式化DataGrid列

    easyui DataGrid中格式化列,如果单价低于20,则使用定义列formatter为红色文本.格式化DataGrid列,我们应该设置formatter属性,这个属性是一个函数.格式化函数包括两 ...

  5. centos 001

    CentOS6.5中修改yum源 在自己安装的CentOS6.5中使用yum安装软件,总是提示404错误信息,百度后发现原来要设置yum源. 在安装完CentOS后一般需要修改yum源,才能够在安装更 ...

  6. C# 正则表达式 转自-每日一bo

    最近写爬虫时需要用到正则表达式,有段时间没有使用正则表达式现在渐渐感觉有些淡忘,现在使用还需要去查询一些资料.为了避免以后这样的情况,在此记录下正则表达式的一些基本使用方法附带小的实例.让以后在使用时 ...

  7. 给table设置滚动条

    <div  scroll="no" style="width:1200px;overflow-x:scroll;overflow-y:hidden"> ...

  8. CodeForces 490C Hacking Cypher

    Hacking Cypher Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Sub ...

  9. jquery选择器 :first与:first-child区别

    一个例子: <ul>  <li>John</li>  <li>Karl</li>  <li>Brandon</li> ...

  10. Linux常用命令大杂烩(持续更新)

    1.vimn,$s/findstr/targetstr/g #替换n到文档末尾的所有字符串:% s/^.\{4\}//g #将当前缓冲区的所有行的前4个字符删除 2.每周日早上3:30删除日志30 3 ...