linux安全策略
概述
近几年来 Internet 变得更加不安全了。 网络的通信量日益加大, 越来越多的重要交易正在通
过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。
只要有值得偷窃的东西就会有想办法窃取它的人。 Internet 的今天比过去任何时候都更真实
地体现出这一点,基于 Linux 的系统也不能摆脱这个 “普遍规律 ”而独善其身。因此,优秀的
系统应当拥有完善的安全措施, 应当足够坚固、 能够抵抗来自 Internet 的侵袭, 这正是 Linux
之所以流行并且成为 Internet 骨干力量的主要原因。但是,如果你不适当地运用 Linux 的安
全工具, 它们反而会埋下隐患。 配置拙劣的安全系统会产生许多问题, 本文将为你解释必须
掌握的 Linux 安全知识。 本文讲述了如何通过基本的安全措施,使 Linux 系统变得可靠。
安装
让系统处理于单独(或者隔离)的网络中.以防止受保护的系统连接到其他网络或互联网中受到可能的攻击
安装完成后需要卸载下面的软件
pump apmd lsapnptools redhat-logos
mt-st kernel-pcmcia-cs Setserial redhat-relese
eject linuxconf kudzu gd
bc getty_ps raidtools pciutils
mailcap setconsole gnupg
用下面的命令卸载这些软件:
rpm -e softwarename
在卸载前最好先停掉三个进程:
/etc/rc.d/init.d/apmd stop
/etc/rc.d/init.d/sendmail stop
/etc/rc.d/init.d/kudzu stop
用户账号安全 Password and account security
密码安全策略
口令至少为 6 位,并且包括特殊字符
口令不要太简单, 不要以你或者有关人的相关信息构成的密码, 比如生日、 电
话、姓名的拼音或者缩写、单位的拼音或者英文简称等等。
口令必须有有效期
发现有人长时间猜测口令,需要更换口令
检查密码是否安全
可以使用以下几种工具检查自己的密码是否安全:
JOHN,crack等暴力猜密码工具
在线穷举工具,包括Emailcrk,流光
Password Shadowing
使用shadow来隐藏密文(现在已经是默认配置)
定期检查shadow文件,如口令长度是否为空
管理密码
设置口令的最长有效时限(编辑/etc/login.defs)
口令最短字符(如linux默认为5,可以通过编辑/etc/login.defs修改)
只允许特定用户使用su命令称为root
其他
清除不必要的系统账户
尽量不要在passwd文件中包含个人信息,防止被finger之类程序泄露.修改shadow,passwd,gshadow文件不可改变位置.
使用ssh来代替telnet.ftpd.pop等通用服务.传统的网络服务程序,如ftp,pop和telnet在本质上都是不安全的,因为他们在网络上用明文传递口令和数据.
网络服务安全(Network Service Security)
Linux系统对外提供强大,多样的服务,由于服务的多样性及其复杂性,在配置管理这些服务时特别容易犯错误,另外,提供这些服务的软件本身也存在各种漏洞,所以,在决定系统对外开放服务时,要牢记两个基本原则:
1. 只对外开放需要的服务,关闭所有不需要的服务.对外提供的服务越少,所面临额外部威胁越小.
2. 将所需的不同服务分布在不同的主机上,这样不仅提高系统的性能,同时便于配置和管理,减小系统的安全风险.
在上述两个基本原则下,还要进一步检查系统服务的功能和安全漏洞.
服务过滤 Filtering
在SERVER上禁止这些服务
如果一定要开放这些服务,通过防火墙,路由指定信任的IP访问.
要确保只有真正需要的服务才能被允许外部访问.并合法得通过用户的路由器过滤检查,尤其在下面的服务不是用户真正需要的时候,要从路由器上将其过滤掉
NAME PORT PROTOCOL
echo 7 TCP/UDP
systat 11 TCP
netstat 15 TCP
bootp 67 UDP
tftp 69 UDP
link 87 TCP
supdup 95 TCP
sunrpc 111 TCP/UDP
news 144 TCP
snmp 161 UDP
xdmcp 177 UDP
exec 512 TCP
login 513 TCP
shell 514 TCP
printer 515 TCP
biff 512 UDP
who 513 UDP
syslog 514 UDP
uucp 540 TCP
route 520 UDP
openwin 2000 TCP
nfs 2049 UDP/TCP
x11 6000 to 6000+n TCP
注意:有些UDP服务可能导致DOS攻击和远程溢出,如:
rpc.ypupdated
rpcbind
rpc.cmsd 100068
rpc.statd 100024
rpc.ttdbserver 100083
sadmind 100232/10
配置完成以后,利用网络扫描器模拟入侵者从外部进行扫描测试.如利用nmap.
/etc/inetd.conf
确保文件权限为 600
确保文件属性设置为 root
注释掉所有不需要的服务,需要重新启动inetd进程
使用netstat -an命令,查看本机所提供的服务,确保已经停掉不需要的服务.
R服务
不必使用R服务
关闭R服务,Red hat 6.2在/etc/inted.conf文件中注释一下服务,并且重新启动inetd服务.Rad hat7.0在/etc/xinetd.d目录中删除
exec 512 TCP
Rlogin 513 TCP
Rshell 514 TCP
必须使用R服务
使用更安全版本的R服务;
在路由或防火墙上禁止外部网络访问受保护的512,512and514(tcp)端口.
使用TCP WRAPPERS设置可访问受保护主机R服务的信任机器.
Tcp_wrapper
该软件的作用是在Unix平台过滤TCP/UDP服务,它目前已被广泛用于监视并过滤发生在主机上的ftp,telnet,rsh,rlogin,tftp,finger等标准TCP/UDP服务.
当系统安装TCP_wrapper之后,in.conf文件中/usr/sbin/in.telnetd会被TCP-wrapper附带的tcpd程序取代,该程序截获来自客户端的服务请求、记录请求发
生的时间和 IP 地址,并按访问控制进行检查。当本次连接的用户、请求源的 IP 等信息
符合管理员的预设值时,才将该次请求传递给系统 in.telnetd ,由系统 in.telnetd 完成后
续工作;若连接不符合要求,该连接请求将被拒绝。同样, ftp 、 rsh 等 TCP/UDP 服务
均可被 tcpd 取代,由 tcpd 充当二传手。
TCP/IP提供的主要用户应用程序
telnet程序
telent程序提供远程登录功能(不安全的).
文本传输协议
文本传输协议(FTP)允许用户将一个系统上的文件复制到另一个系统上.
简单的邮件传输协议
简单邮件传输协议(SMTP)用于传输电子邮件.
Kerberos协议
kerberos一个广泛支持的安全性协议.
域名服务器协议
域名服务器协议(DNS),能使一台设备具有的普通名字转换成为某个特定的网络地址.
简单网络管理协议
简单网络管理协议(SNMP)把用户数据报协议(UDP)作为传输机制,它使用和TCP/IP不同的术语,TCP/IP用户端和服务器,而SNMP用管理器(Manager)和代理(Agent),代理提供设备信息,而管理器管理网络通信.
普通文件传输协议
普通文件传输协议(TFTP)是一种缺乏任何安全性的,非常简单落后的文本传输协议.
传输控制谐音
传输控制协议(TCP/IP中的TCP部分)是一种数据可靠的通信协议.
网际协议
网际协议(ip)负责在网络上传输由TCP/UDP装配的数据包.
端口号分配
我们的TCP和UDP采用16bit的端口号来识别应用程序,那么这些端口号如何选择呢?
服务器的端口识别
服务器一般都是通过知名端口号来识别的。 例如, 对于 TCP/IP 实现来说, 每个 FTP 服务器的 TCP
端口号都是 21,每个 Telnet 服务器的 TCP 端口号都是 23,每个 TFTP(普通文件传输协议)服务器的
UDP 端口号都是 69。任何 TCP/IP 实现所提供的服务都用知名的 1~1 023 之间的端口号。这些知名端
口号由 Internet 号分配机构( Internet Assigned Numbers Authority, IANA )来管理。到 1992 年为止,知
名端口号介于 1~255 之间。 256~1 023 之间的端口号通常都是由 UNIX 系统占用,以提供一些特定的
UNIX 服务,也就是说,提供一些只有 UNIX 系统才有的,而其他操作系统可能不提供的服务。现在
IANA 管理 1~1 023 之间所有的端口号。
Internet 扩展服务与 UNIX 特定服务之间的一个差别就是 telnet 和 rlogin ,它们二者都允许通过计
算机网络登录到其他主机上。 telnet 是采用端口号为 23 的 TCP/IP 标准,且几乎可以在所有操作系统上
进行实现。相反, rlogin 最开始时只是为 UNIX 系统设计的(尽管许多非 UNIX 系统现在也提供该服
务),因此在 20 世纪 80 年代初,它的端口号为 513,客户端通常对它所使用的端口号并不关心,只
须保证该端口号在本机上是唯一的即可。客户端口号又称做临时端口号(即存在时间很短暂),这是
因为它通常只是在用户运行该客户程序时才存在,而服务器则只要主机开着,其服务就运行.
UDP 为运行于同一台或不同机器之上的两个或多个程序之间传输数据包提供了简单的、 不可靠的
连接。“不可靠” 意味着操作系统不保证每个发出的包都能到达, 也不保证包能够按序到达。 不过 UDP
是尽力传输的,在 LAN 中 UDP 通常能达到 100%的可靠性。 UDP 的优点在于它比 TCP 的开销少,较
少的开销使得基于 UDP 的服务可以用 TCP 10 倍的吞吐量传输数据。
linux的 TCP/IP网络配置文件
除非另外指出,在Red hat linux系统的配置文件大部分在/etc目录中.
网络配置工具
在安装 Linux 发行版本时,需要配置网络。你或许已经有一个来自初始配置的活动 eth0,这个配
置对于当前的使用也许足够, 但是随着时间的推移你可能需要做出更改。 下面将介绍与 IP 网络相关的
不同配置项,以及使用这些配置项的文件和工具。
手动修改配置文件
手动配置是最直接的,有以下优点:
1. 熟悉命令后,手动配置更加快捷,并不需要重新启动.
2. 能够使用配置命令的高级特性.
3. 更容易维护配置文件,找出系统故障.
4. 能更深刻的了解系统配置是如何进行的.
无论图形界面如何发展,原理是不会变的.linux网络配置的命令包括ifconfig,ip,ping,netstat,route,arp,hostname和arpwatch.
配置网络接口
- 网卡的选择,我们需要知道内核的版本.
- 检查网卡是否加载,驱动硬件是操作系统最基本的功能,操作系统通过各种驱动程序来驾驭硬件设备.我们可以通过命令lsmod来查看加载情况.
- 为新网卡设定IP地址,我们主要使用ifconfig命令,它主要设置修改ip地址
- 打开/etc/sysconfig/network-scripts/ifcfg-eth0 ,使用vi编辑器进行配置即可
- 最后我们需要重启network服务来然配置信息激活生效.
分级解析对Linux服务器的攻击
随着人们对安全问题的日益重视,网络安全已经不仅仅是技术问题,而是一个社会问题。企业应
当提高对网络安全的重视,不应被各种商业宣传所迷惑,认为安装了防火墙、认证授权和入侵检测系
统就可以保护网络免受各种攻击。实际上,并没有绝对安全的网络,也没有“无坚不摧”的安全解决
方案。从辩证法的角度来说,安全是相对的。如果一味地只依赖技术工具,那就会越来越被动;只有
运用社会和法律手段打击网络犯罪, 才能更加有效。
典型的攻击者有什么特征
- 能用c,c++或perl编写程序.大多数原始安全工具都是这些语言的一种或者几种编写的.攻击者必须能够解释,编译,执行这些代码.
- 深入掌握TCP/IP知识.攻击者必须知道internet是如何工作的.
- 每周使用internet多于72小时,攻击者不是临时用户,他们不仅了解自己的机器.有着丰富的网络使用经验.
- 至少熟知三种操作系统,其中一种操作系统毫无疑问Unix或linux.
- 大多数攻击者是(或曾经是)系统管理员或开发人员,具有客户服务器应用经验.
攻击者的典型目标是什么
攻击者因不同原因而攻击不同类型的网络。我们经常能从媒体上了解到一些大公司或政府的网
站遭到攻击。不过,实际上攻击者典型的目标大多是小型网络。防火墙的使用和维护费用昂贵且
需要技术支持,小网络不可能用或只能用一些低级产品。攻击大公司、政府的网站会造成比较大
的影响。
进行攻击的原因是什么
( 1)恶意— —他可能是某个公司的心怀不满的雇员,或许你曾在某个 Usenet组激怒了他。
( 2)娱乐— —或许你曾经夸耀过你的系统的安全性,告诉别人它是如何坚不可摧,这些都是攻击
者无法抗拒的挑战。
( 3)获利— —有人付给攻击者报酬,让他关掉某台机器或获取某公司的商业机密。
( 4)好奇— —许多攻击者纯粹由于好奇心的驱使,想享受一下攻击过程。
( 5)政治— —政治原因占攻击原因的很小比例(但是很重要的一种),他们搜寻杂志、新闻刊物
中特别的论点,他们通过攻击来表达自己的政治观点和世界观。
攻击级别
系统攻击有许多种类,本节从攻击级别的角度进行说明。 显示了攻击的 6 个等级,每一层
代表一个进入目标网络的深度,我们称之为敏感级( Levels of sensitivity ),箭头与层次相连的点标志
了对应于每一破译技术的危险程度,我们将它称为攻击状态( States of attack)。
1. 级别 1
—A 箭头:表示邮件炸弹的攻击。
—B 箭头:表示简单拒绝服务攻击。
在级别 1 范围内的攻击基本上互不相关。包括拒绝服务攻击和邮件炸弹,这些攻击一般比较好制
止,这是因为这些攻击是以垃圾信息方式进行的。在大多数情况下,只须应用排除模式设置就可以解
决这个问题。拒绝服务攻击包括:简单拒绝服务攻击、分布拒绝服务攻击、 DNS 分布拒绝服务攻击和
FTP 攻击。
对于这四种攻击可以采用以下措施:
— 关闭不必要的服务。
— 限制同时打开的 SYN 半连接数目。
— 缩短 SYN 半连接的 time out 时间。
— 及时更新系统补丁。
拒绝服务攻击经常发生, 解决此问题的最佳方法就是在 inetd.sec 文件 DENY 清单中加入入侵者源
主机 /网络名阻止入侵行为,除屏蔽网络连接外,还没有一种主动性的方法可以避免这种攻击。不过需
要注意的是,如果证实了一次拒绝服务攻击,应该检查系统是否可能遭受其他攻击,拒绝服务攻击常
常是电子欺骗的先行者(甚至是组成部分) 。如果观察到某台机器特定端口上的一次全面的 Flooding
攻击,请观测这个端口,弄清这个端口是干什么用的,检查它限制什么服务。如果那种服务是内部系
统的组成部分,那么要特别小心。那些貌似拒绝服务的攻击,事实上就是突破网络安全的开始。通常
情况下,拒绝服务攻击会持续很长一段时间。
如果是同步 Flooding 攻击, 这里有一些识别攻击者的方法。 攻击者在每一次实施 ping 时, 向目标
报出了他的 IP 地址。虽然没有给出攻击者的 E-mail 地址,但我们可以追踪其最终源(注意,追踪程
序将揭示攻击者出发的真实网络地址,这通常是反向追踪程序查找的最后一项内容)。
大多数拒绝服务攻击导致相对较低的危险,即便是那些可能导致重启的攻击也仅仅是暂时性的问
题。这类攻击在很大程度上不同于那些想获取网络控制的攻击。
邮件炸弹的攻击也叫邮件水灾攻击, 发生在当许多邮件被发送至一个目标, 发送代理人被覆盖时,
邮件水灾会破坏其他交流程序的稳定。用邮件来使一个系统蒙受灾难是残酷的,但却是有效的,攻击
者的目的就是要破坏邮件服务器。诱发邮件水灾攻击的有趣方法之一是利用一些邮件申请的自动反应
功能。一旦黑客发现对两个不同的系统能做出活跃的、自动的应答时,他就能指使一个邮件发送到另
一个。因为两者都是对每个信息做出自动应答,他们制造了一个信息回馈孔,这会比其他系统收集到
更多的邮件。至于邮件水灾,通常很容易追查到攻击者。此外, bozo files(kill 文件)和排除模式配置
基本上能阻止这些攻击。
2. 级别 2 和级别 3
—C 箭头:表示本地用户获得非授权访问。
—D 箭头:表示本地用户获得他们不该拥有的文件写入权限。
—E 箭头:表示远程用户获得了非授权账号。
级别 2 和级别 3 包括诸如本地用户获取到了他们本不可以访问的文件的读写权限这类事件。当
然,任何本地用户访问 /tmp 目录都具有危险性,它能够潜在地铺设一条通向级别 3 的路。在级别 3,
用户可以获取写访问权限(并由此过渡到级别 4 环境)。
级别 2 攻击是危险的,并很容易发展为级别 3、级别 4、级别 5和级别 6。如果运行这种网络,请
立即取得上述访问控制设备,如果不照此进行,某些人想破坏网络仅仅是时间问题。如果有可能,请
监控所有流经端口 137~139 的消息,其间将产生共享进程。
本地攻击的难度不太大。所谓本地用户( Local user),我们认为是相对而言的。在网络世界中,
本地用户是在本地网络的任一台机器上有口令,因而在某一驱动器上有一个目录的用户(无论那个目
录的服务目的是什么)。
由本地用户启动的攻击几乎都是从远程登录开始的。对于 ISP,最好的办法是将所有 shell 账号放
置于一个单独的机器上, 也就是说, 只在一台或多台分配有 shell 访问的机器上接受注册。 这可以使日
志管理、访问控制管理、释放协议和其他潜在的安全问题管理更容易些。还应该将存放用户 CGI 的系
统区分离出来。这些机器应该隔离在特定的网络区段,也就是说,根据网络的配置情况,它们应该被
路由器或网络交换机包围。其拓扑结构应该确保硬件地址不能超出这一特定区段。
针对这些利用访问控制营造所需环境的攻击,有两种涉及许可权的关键因素,每一种都能影响到
级别 2 是否会升级到级别 3、4 或 5。这些因素是:
① 端口的错误配置。
② 软件中的漏洞。
第一种情况的发生是没有正确理解许可模式,不是每一个 UNIX 或 NT 系统管理员都是专家,经
验是非常重要的。
第二种情况更加普遍,任何操作系统都有漏洞。对此问题尚未有直接的解决办法,因为大多数这
种漏洞在软件加载时并不出现。唯一的办法是订阅每一种与故障、漏洞、系统密切相关的邮件列表。
级别 2 和级别 3 的主要攻击方法是社会管理邮件(电子邮件攻击的一种):黑客会诱骗合法用户
告知其机密信息或执行任务,有时黑客会假装为网络管理人员向用户发送邮件,要求用户提供系统升
级的密码。
3. 级别 4
—F 箭头:表示远程用户获得了特定文件的读权限。
级别 4 通常与外界能够访问内部文件相关。这种访问能做到的不只是核实特定文件是否存在,而
且还能读这些文件。级别 4 还包含这样一些弱点,即远程用户无需账号就可以在服务器上执行有限数
量的命令。由于服务器配置失误,有害 CGI 及溢出问题都可能引发这些漏洞大量出现。
密码攻击法是级别 4 中的主要攻击法, 损坏密码是最常见的攻击方法。 用户常常忽略他们的密码,
密码政策很难得到实施。黑客有多种工具可以击破技术所保护的密码。一旦黑客拥有了用户的密码,
他就拥有很多用户的特权。“密码猜想”是指手工敲入普通密码或通过编好的程序取得密码。一些用
户选择简单的密码— —如生日、纪念日或配偶名字,不遵循字母、数字混合的规则。对黑客来说要猜
一串 6 个字生日数据不用花多长时间。最好的防卫方法便是严格控制进入特权。
4. 级别 5、级别 6
—H 箭头:表示远程用户获得了特定文件的写权限。
—G 箭头:表示远程用户获得了根权限。
级别 5 和级别 6 产生于那些绝不应该发生的事被允许发生了的情况下。任何级别 5 和级别 6 的漏
洞都是致命的。在这一阶段,远程用户可以读、写并执行文件(通常,他们综合各种技术来达到这一
阶段)。级别 6 表示攻击者拥有这台机器的超级用户或管理员许可权。换句话说,攻击者具有对机器
的全部控制权,可以在任何时刻完全关闭甚至毁灭此网络。
级别 5 和级别 6 的主要攻击是 TCP/IP 连续偷窃、被动通道听取和信息包拦截。这些都是为进入网
络收集重要信息的方法, 不像拒绝服务攻击, 这些方法有更多类似偷窃的性质, 比较隐蔽、 不易被发现。
TCP/IP 连续偷窃指抓住连续数字,这些数字用来让黑客的信息包看起来合法化, 当一个系统要求
与其他系统对话,系统会交换 TCP 同时产生的数据, 如果这些数据不是具有随意性的,黑客会收集这
些数据的算法,被偷的突发事件会被用来把黑客伪装成一个或两个原始系统,允许他连接防火墙信息
包的过滤器,这在连接 IP 时更有效。
一次成功的 TCP/IP 攻击能让黑客阻拦两个团体之间的交易, 提供中间人袭击的良好机会, 然后黑
客会在不被受害者注意的情况下控制一方或双方的交易。
通过被动窃听,黑客会操纵和登记信息,也会从目标系统上所有可通过的通道找到可通过的致命
要害。黑客会寻找联机和密码的结合点,认出申请合法的通道。
信息包拦截是指在目标系统中约束一个活跃的听者程序,以拦截和更改所有的或特别的信息的地
址。信息可被改送到非法系统阅读,然后不加改变地送回给黑客。
反击措施
( 1)级别 1 攻击的处理方法主要是:过滤进入地址并与攻击者的 ISP 联系。对防范拒绝服务攻击
的方法感兴趣的读者请查看徐一丁先生的文章“分布式拒绝服务攻击( DDoS )原理及防范”,
http://www-900.ibm.com/developerWorks/cn/security/se-ddos/index.shtml ,此处不再赘述。
( 2)级别 2 攻击可以在内部处理。根据 Gartner 调查表明,目前, 70%的攻击仍然来自组织内部。
基本做法就是冻结或清除攻击者的账号。级别 2 攻击者一般常伴随使用内部嗅探器,防范方法可以参考
“防范网络嗅探”, http://www-900.ibm.com/developerWorks/cn/security/se-profromsniff/index.shtml 。
( 3)对级别 3、级别 4 和级别 5、级别 6 攻击的反应,如果经历过高于级别 2 的攻击,问题就严
重了。
— 首先备份重要的企业关键数据。
— 隔离该网络网段,使攻击行为仅出现在一个小范围内。
— 允许行为继续进行。如有可能,不要急于把攻击者赶出系统,为下一步做准备。
— 记录所有行为,收集证据。
收集的证据包括系统登录文件、应用登录文件、 AAA (Authentication, Authorization, Accounting
认证、授权、计费)登录文件, RADIUS (Remote Authentication Dial-In User Service )登录、网络单元
登录( Network Element Logs)、防火墙登录、 HIDS (Host-base IDS,基于主机的入侵检测系统)事
件、 NIDS (网络入侵检测系统)事件、磁盘驱动器、隐含文件等。
收集证据时要注意,在移动或拆卸任何设备之前都要拍照;在调查中要遵循两人法则,即在信息
收集中要至少有两个人,以防止篡改信息;应记录所采取的所有步骤,以及对配置设置的任何改变,
要把这些记录保存在安全的地方。
( 4)进行各种尝试(使用网络的不同部分)以识别出攻击源。
( 5)为了使用法律武器打击犯罪行为,必须保留证据。而形成证据需要时间,为了做到这一点,
必须忍受攻击的冲击(虽然可以制定一些安全措施来确保攻击不损害网络)。对此情形,我们不但要
采取一些法律手段,而且还要至少请一家权威的安全公司协助阻止这种犯罪。这类操作的最重要特点
就是取得犯罪的证据,并查找犯罪者的地址,提供所拥有的日志。对于所搜集到的证据,应进行有效
地保存。在开始时制作两份,一个用于评估证据,另一个用于法律验证。
一句名言“你的服务器永远可能在第二天被黑客接管”。