30 十一月, 2007 01:32
忙中偷闲,出去走廊看看天空。
无意间看到一群飞鸟从天空飞过,它们轻快、优雅的掠过天空,很快就从我的视线里消失。毕竟走廊外左右楼房阻碍的视线,很有限。就像一口井。
正想转身时,又一只飞鸟挣扎着飞进我的视线。很明显, 掉队了。是一只掉队的飞鸟。
28 十一月, 2007 00:18
在各虚拟主机的配置文件里添加如下语句:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* -
不需要支持rewrite模块
SetEnvIfNoCase Request_Method ^(TRACE|TRACK) IS_TRACE
<Directory /docroot>
Order Allow,Deny
Allow from all
Deny from env=IS_TRACE
</Directory>
27 十一月, 2007 22:01
安全风险分析
企业的网络安全评估以远程与本地相结合的方式进行。按照相关国际标准采用定性与定量相结合的方法,通过对远程网络层存在的网络安全漏洞进行扫描分析,进行评估;对本地采用抽样代表性节点的方式,通过各种评估工具,进行评估,获知风险。
安全信息库
根据对企业安全风险分析与风险评估的结果,建立企业全网的安全信息数据库,将网络评估结果入库保存,为安全管理和问题追踪提供数据基础。安全信息库包括设备漏洞库和漏洞资料库。安全信息数据库提供WEB方式的用户操作界面。
安全风险报告
提交企业安全风险报告,获知企业安全风险状况是本次对安全评估的主要目标。通过上述描述的重要过程,主要向企业提交企业远程评估报告;企业本地评估报告;企业安全现状报告等;主要目的是提供风险列表,归类风险等级。
风险控制
根据企业安全风险报告,结合企业特点,针对企业面对的安全风险,分析将面对的安全影响,提供相应的安全控制。风险控制包括降低、控制、转移风险,以及不加 控制的残余风险。通过风险控制最终使系统风险转变为可以接受的残余风险。在降低风险的需求和风险控制的代价之间取得平衡。
监控审核
在整个企业的风险评估过程中,每一个步骤都需要进行监控和审核程序,保证整个评估过程的规范,安全,可信。监控和审核任务将由企业组建的企业风险评估项目组以及特别专家组执行。
沟通、咨询与文档管理
对于整个风险评估过程的沟通、咨询是保证风险评估项目成功实施很关键的因素。在整个风险管理、评估过程中,针对每一个步骤应该交流风险管理经验,同时形成相关文档,保留资料。在项目进展过程中,风险评估的方法和结果可能发生变化,所以,详细而完整的文档和材料非常重要。
安全需求分析
根据企业安全风险评估报告,确定企业的有效安全需求。获知企业需要立即解决的安全问题,获知企业面临的巨大安全威胁,获知企业将有可能面临的巨大经济损失,和潜在的重要安全影响等。同时在考虑企业安全建设投资的合理性、针对性、适当性、有效性。
安全策略
本部分属于企业安全风险管理的内容,是在完成企业安全风险评估之后,根据企业有效安全需求,结合企业安全现状,制定相应的安全策略。包括人员组织策略、安全管理策略、访问控制策略、网络管理策略、数据安全策略、紧急响应策略等,动态的、整体的考虑企业的安全策略。
安全解决方案
在未来制定企业整体动态的安全策略之后,构建企业安全体系结构,结合企业本地、远程网络架构,依据策略制定企业完整动态的安全解决方案。包括物理环境、网 络结构、网络服务、网管系统、主机系统、数据、应用系统、安全系统、安全相关人员、处理流程、安全管理制度、安全策略等。并且注重高可用性、动态性、整体 性。
27 十一月, 2007 06:28
在公司申请了台新的机器,做为安全评估服务器,同时也作为网关和文件共享服务器。
几经摸索,终于搞定用pf+nat做网关了。
开始几次没有成功,竟然就少了执行 pfctl -e 导致网络不通。
看来学习还不到位,不够仔细啊。
26 十一月, 2007 06:23
今天看自己的wiki的时候,竟然发现打开报错!
再仔细检查时,发现原来是有发垃圾广告的烂人在wiki里贴了很多广告,不仅仅覆盖了文章,还导致打开报错。
实在是太让人郁闷了。
顺便在恢复数据的时候,升级wiki到最新版本1.11.0版。
不过似乎还有些问题,预览文章是,换行很正常。但是提交到数据库再显示时,却将换行符转义成\n输出,导致不能正常换行。
24 十一月, 2007 22:38
ath0: link state changed to DOWN
interrupt storm detected on "irq11:"; throttling interrupt source
ath0: link state changed to UP
ath0: link state changed to DOWN
ath0: link state changed to UP
出现上面IRQ冲突提示,网卡不断重启。换DLINK DWL-G650 108M的无线网卡来就好了。
暂时记起,有必要的话再处理。
24 十一月, 2007 16:05
24 十一月, 2007 05:10
1、 全球DNS负载均衡(GLSB)功能
允许用户针对某个具体的记录域名来设定负载均衡。
要达到的目标:
A 健康检测,如果发现异常,将屏蔽该IP地址
B 负载检测,如果发现超过权值,则屏蔽该IP地址
C 允许调用接口发送报警信息,报警该服务器异常
2、 嵌入入侵检测
在系统里嵌入入侵检查,管理员可以提供客户端来进行入侵检测。
23 十一月, 2007 06:24
最近发现 F5 这样的负载均衡设备可能请求时间会出现抖动现象,最长的请求经常可以达到好几秒。考虑到 F5 会对所有数据进行 NAT ,有可能处理能力不足,打算研究一下 LVS 会不会有类似现象。
小知识:什么是 LVS?
LVS 是 Linux Virtual Server 的缩写,是章文嵩主持开发的基于 Linux 的类似 F5 这样的连接管理软件,它将接收到的数据包进行部分修改后,发送给后端多台服务器,实现了多台服务器共享同一个 IP 的效果,通过一些配套的 HA 软件互相监测,可以自动剔除失败的后端结点,或者启动备份的前端转发系统。为了避免所有数据都经过前端转发结点造成瓶颈,LVS 在类似 F5 那样的 NAT 模式之上,还提供了隧道模式和直接路由模式两种配置方式,后两种方式巧妙的利用了 Linux kernel 的路由处理逻辑和交换机的工作原理,使得只有入流量经过转发结点,出流量直接从后端处理结点返回给用户。一般 WWW 服务都是出流量远大于入流量,这种情况下面 LVS 可以获得很好的性能。
LVS 的直接路由模式配置:
LVS 直接路由模式是性能最好的一种方式,他的工作原理是这样的, 服务入口 IP 配置在转发结点上面,这样入流量都会被交换机送到转发结点上面,转发结点上面 LVS 模块会处理入流量数据,跟踪其中的TCP连接,将这些 TCP 连接数据分发到多台后端上面,后端的 Linux 系统在自己的lo设备上面也绑定服务入口 IP ,并打开 IP 转发,最后还要加一条路由,将服务入口 IP 指向 lo 设备上面,从前端发送过来的数据被后端收到以后,后端机器按照路由转发数据, 数据就被转发到 lo 设备上面,因为 lo 设备绑定了服务入口 IP, 这些数据就被后端机器的协议栈捡起来了。后端机器处理完数据以后,将数据发送到外网路由器上面直接发送回客户端。
从以上过程可以看出来,LVS 的直接路由模式有这些特点:
1: 前端处理逻辑比起 NAT 模式来要简单一些,只需要跟踪连接,并修改 mac 就可以。
2: 依赖于后端操作系统的路由功能,
3: 后端机器要和前端机器处于同一局域网内,否则前端无法通过不修改网络层数据来将数据发送给后端。
LVS 的简单配置方法,假设公共服务 IP 是 10.0.0.10, 前端机器是 10.0.0.11, 后端机器是 10.0.0.12-14, 前端机器上面已经安装了 ipvsadm 包,内核也已经编译支持 LVS, 配置方法如下:
# 打开前端机器的 ip_forward , 这个是 LVS 需要的
echo 1 > /proc/sys/net/ipv4/ip_forward
# 添加一个位于公网 IP 80 端口的虚拟服务, 负载均衡协议是 weighted lease connection
ipvsadm -A -t 10.0.0.10:80 -s wlc
# 添加后端 IP 们, -g 表明使用的是 direct routing 模式
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.12 -g
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.13 -g
ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.14 -g
后端机器上面
# 打开 ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# 防止后端机器应答虚拟 IP 的 arp 信息
echo ‘2′ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘2′ > /proc/sys/net/ipv4/conf/all/arp_announce
echo ‘1′ > /proc/sys/net/ipv4/conf/all/arp_ignore
# 在 lo:0 上面配置虚拟 IP
ifconfig lo:0 10.0.0.10 netmask 255.255.255.255
# 增加到 lo:0 的路由
route add -host 10.0.0.10 dev lo:0
如此 LVS 应该就工作正常了,可惜用 ab 的测试结果并不是非常好,后端用 squid 来做服务,用相同的压力压在单台 squid 上面一点都没有抖动现象,通过 LVS 打,马上就能看出来抖动。sigh
18 十一月, 2007 05:43
今天将一台服务器和自己的笔记本的系统,都升级到最新的FreeBSD 7.0-BETA3了。
FreeBSD7.0-BETA2到BETA3,半个月,升级速度够快的。
也许年底或者08年年初,就出RELEASE了。期待。
16 十一月, 2007 22:54
当你用ipfilter和ipnat做NAT路由器及防火墙,而且路由器的客户端有BT在运行,在BT运 行了一段时间后容易造成浏览网页和下载其它东西的阻塞。其原因是BT会产生大量的连接和会话,超过了NAT表和状态表的容量。解决的方法就是增大NAT表 和状态表的容量和减少连接空闲的时间。
增大NAT表和状态表的容量:
ipf_nattable_sz=2047->30011(素数)
ipf_nattable_max=30000->300000
fr_statesize=5739->11471(素数)
fr_statemax=4013->8039(素数)#fr_statesize的70%
减少连接空闲的时间:
fr_tcptimeout=480->180
fr_tcpclosewait=480->60
fr_tcphalfclosed=14400->300
fr_tcpclosed=120->60
fr_tcplastack=480->120
fr_tcpidletimeout=864000->7200
fr_udptimeout=240->90
fr_icmptimeout=120->35
在命令行下修改参数:(假设已经在内核中加载了ipl.ko模块)
/sbin/ipf -D -T ipf_nattable_sz=30011,ipf_nattable_max=300000,
fr_tcptimeout=180,fr_tcpclosewait=60,fr_tcphalfclosed=300,
fr_tcpidletimeout=7200,fr_tcpclosed=60,fr_tcplastack=120,
fr_udptimeout=90,fr_icmptimeout=35,
fr_statemax=8039,fr_statesize=11471 -E
再看一下是否已经改好:
sysctl net.inet.ipf
net.inet.ipf.fr_minttl: 4
net.inet.ipf.fr_chksrc: 0
net.inet.ipf.fr_defaultauthage: 600
net.inet.ipf.fr_authused: 0
net.inet.ipf.fr_authsize: 32
net.inet.ipf.ipf_hostmap_sz: 2047
net.inet.ipf.ipf_rdrrules_sz: 127
net.inet.ipf.ipf_natrules_sz: 127
net.inet.ipf.ipf_nattable_sz: 30011*
net.inet.ipf.fr_statemax: 8039*
net.inet.ipf.fr_statesize: 11471*
net.inet.ipf.fr_running: 1
net.inet.ipf.fr_ipfrttl: 120
net.inet.ipf.fr_defnatage: 1200
net.inet.ipf.fr_icmptimeout: 35*
net.inet.ipf.fr_udpacktimeout: 24
net.inet.ipf.fr_udptimeout: 90*
net.inet.ipf.fr_tcpclosed: 60*
net.inet.ipf.fr_tcptimeout: 180*
net.inet.ipf.fr_tcplastack: 120*
net.inet.ipf.fr_tcpclosewait: 60*
net.inet.ipf.fr_tcphalfclosed: 300*
net.inet.ipf.fr_tcpidletimeout: 7200*
net.inet.ipf.fr_active: 0
net.inet.ipf.fr_pass: 134217730
net.inet.ipf.fr_flags: 0
打*号表示已经修改过了。
或者另一种方法看一下:
ipf -T list
fr_flags min 0 max 0xffffffff current 0
fr_active min 0 max 0 current 0
fr_control_forwarding min 0 max 0x1 current 0
fr_update_ipid min 0 max 0x1 current 0
fr_chksrc min 0 max 0x1 current 0
fr_minttl min 0 max 0x1 current 4
fr_icmpminfragmtu min 0 max 0x1 current 68
fr_pass min 0 max 0xffffffff current 134217730
fr_tcpidletimeout min 0x1 max 0x7fffffff current 7200*
fr_tcpclosewait min 0x1 max 0x7fffffff current 60*
fr_tcplastack min 0x1 max 0x7fffffff current 120*
fr_tcptimeout min 0x1 max 0x7fffffff current 180*
fr_tcpclosed min 0x1 max 0x7fffffff current 60*
fr_tcphalfclosed min 0x1 max 0x7fffffff current 300*
fr_udptimeout min 0x1 max 0x7fffffff current 90*
fr_udpacktimeout min 0x1 max 0x7fffffff current 24
fr_icmptimeout min 0x1 max 0x7fffffff current 35*
fr_icmpacktimeout min 0x1 max 0x7fffffff current 12
fr_iptimeout min 0x1 max 0x7fffffff current 120
fr_statemax min 0x1 max 0x7fffffff current 8039*
fr_statesize min 0x1 max 0x7fffffff current 11471*
fr_state_lock min 0 max 0x1 current 0
fr_state_maxbucket min 0x1 max 0x7fffffff current 28
fr_state_maxbucket_reset min 0 max 0x1 current 1
ipstate_logging min 0 max 0x1 current 1
fr_nat_lock min 0 max 0x1 current 0
ipf_nattable_sz min 0x1 max 0x7fffffff current 30011*
ipf_nattable_max min 0x1 max 0x7fffffff current 300000*
ipf_natrules_sz min 0x1 max 0x7fffffff current 127
ipf_rdrrules_sz min 0x1 max 0x7fffffff current 127
ipf_hostmap_sz min 0x1 max 0x7fffffff current 2047
fr_nat_maxbucket min 0x1 max 0x7fffffff current 30
fr_nat_maxbucket_reset min 0 max 0x1 current 1
nat_logging min 0 max 0x1 current 1
fr_defnatage min 0x1 max 0x7fffffff current 1200
fr_defnatipage min 0x1 max 0x7fffffff current 120
fr_defnaticmpage min 0x1 max 0x7fffffff current 6
ipfr_size min 0x1 max 0x7fffffff current 257
fr_ipfrttl min 0x1 max 0x7fffffff current 120
ipl_suppress min 0 max 0x1 current 1
ipl_buffer_sz min 0 max 0 current 0
ipl_logmax min 0 max 0x7fffffff current 7
ipl_logall min 0 max 0x1 current 0
ipl_logsize min 0 max 0x80000 current 8192
ippr_ftp_debug min 0 max 0xa current 0
打*号表示已经修改过了。
由于使用了ipf -D 的参数,ipf的过滤规则和NAT规则都已清除。所以需要重新加载:
ipf -f /etc/ipf.rules
ipnat -f /etc/ipnat.rules
修改后可以大大地减少网络堵塞的机会。
_________________
原文地址:
http://www.freebsdchina.org/forum/viewtopic.php?t=38611
15 十一月, 2007 23:07
这几天在freebsd上安装inprotect,碰到n多问题。
装的是最新的inprotect 0.81.0-bate版,从安装到更新nessus 的plugin到运行扫描,N多问题。
幸亏还有点运道,几经摸索,一一排除了。又是修改shell代码 ,又是修改perl代码又是改php代码。头大……
现在可以扫描了,report只能看html结果。pdf,execl都还有问题。
15 十一月, 2007 22:03
●常用网络服务安全
■DNS
■WWW
■WEB
■FTP
●LINUX帐户安全
■LINUX系统帐户文件
■LINUX系统帐户安全
●LINUX文件系统安全
■文件权限分类
■文件和目录的访问对象
■UMASK值
■不可改变位
■SUID/SGID文件
■文件完整性
■文件加密
■备份策略
1 常用网络服务安全
1.1 域名(dns)服务
1.1.1 DNS基本原理
1、DNS术语、特性:
●互连网上主机信息的分布式数据库
●域名服务器
●解析器即客户机
●域名查询采用UDP协议,而区域传输采用TCP协议
●域名解析过程分为两种方式:递归模式和交互模式
2、域名解析过程
典型的域名解析过程。
3、BIND主要配置文件
BIND的主要配置文件包括:
●named配置文件:/etc/named.boot、etc/named.conf
●DNS数据文件
●反向解析顺序文件/etc/resolv.conf
1.1.2 DNS服务器的常见攻击方法
DNS服务器的常见攻击方法包括:
●地址欺骗
●远程漏洞入侵
●拒绝服务
1、地址欺骗
2、缓冲区溢出漏洞
解决办法:
●安装最新BIND
■http://www.isc.org/products/BIND/bind9.html
3、DNS服务器的拒绝服务攻击
●针对DNS服务器软件本身
●利用DNS服务器作为中间的"攻击放大器",去攻击其它intetnet上的主机
1.1.3 Bind服务器安全配置
●基本安全配置
■隐藏版本信息
■named进程启动选项:
-r:关闭域名服务器的递归查询功能(缺省为打开)。
-u 和-g :定义域名服务器运行时所使用的UID和GID。
-t :指定当服务器进程处理完命令行参数后所要chroot()的目录。
●Bind服务器的访问控制
■限制查询
■限制区域传输
■关闭递归查询
■Bind服务器安全配置
/etc/named.conf
options {
directory "/var/named";
allow-query 202.96.44.0/24;
allow-transfer {
192.168.100.1;
202.96.44.0/24;
recursion no;
};
};
●设置chroot运行环境
■chroot 是 "change root" 的缩写
■chroot重定义了一个程序的运行环境。重定义了一个程序的"ROOT"目录或"/"。也就是说,对于chroot了的程序或shell来说,chroot环境之外的目录是不存在的。
■Chroot方法步骤:
建立"监狱式"目录
拷贝本身服务软件和其他要求的文件
拷贝所需要系统库文件
变换启动脚本,使系统启动正确环境
●及时更新安装bind的最新版本
1.2 WWW服务
1.2.1 常见安全威胁
对于WWW服务,常见安全威胁包括:
■HTTP拒绝服务:攻击者通过某些手段使服务器拒绝对HTTP应答
■缓冲区溢出
1.2.2 Web服务器(apache)配置文件
控制着服务器各个方面的特性的三个配置文件:
■httpd.conf主配置文件,是对守护程序httpd如何运行的技术描述
■srm.conf是服务器的资源映射文件,告诉服务器各种文件的MIME类型,以及如何支持这些文件
■access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制
1、Apache的基本安全配置
■及时更新安装Apache的最新版本
■设置chroot运行环境
■隐藏版本信息
2、Apache服务器访问控制
■文件的访问控制
■目录的访问控制
■主机的访问控制
■access.conf文件包含一些指令控制允许某个用户、某个域、IP地址或者IP段的访问访问Apache目录。
■order deny,allow
■deny from all
■allow from sans.org
■使用.htaccess文件,可以把某个目录的访问权限赋予某个用户
1.3 mail服务
1.3.1 Sendmail的主要安全问题
■邮件转发与垃圾邮件
■避免未授权的用户滥用noexpn,novrfy
■限制可以审核邮件队列内容的人员
■(/etc/sendmail.cf: PrivacyOptions=authwarnings,noexpn,novrfy,restrictmailq)
■关闭relay选项
■及时更新安装最新版本的Sendmail
■文件系统安全
■拒绝服务攻击
1、关闭relay选项
sendmail提供了许多在编译期间选择的功能特性
在/etc/sendmail.mc中与安全相关的特性有:
■FEATURE(*)
■promiscuous_relay
■accept_unqualified_senders
■loose_relay_check
■accept_unresolvable_domains
■blacklist_recipients
■relay_entire_domain
2、邮件转发与垃圾邮件
设置smtp身份验证。
3、文件系统安全
重要的文件设置不可更改位
■[root@deep]# chattr +i /etc/sendmail.cf
■[root@deep]# chattr +i /etc/sendmail.cw
■[root@deep]# chattr +i /etc/sendmail.mc
■[root@deep]# chattr +i /etc/aliases
■[root@deep]# chattr +i /etc/mail/access
4、Sendmail配置抵御DOS
■/etc/sendmail.cf üMinFreeBlocks--配置最少的自由块数
■MaxMessageSize--最大邮件大小
■AutoRebuildAliases--自动重建别名
■QueueLA--队列平均负荷
■RefuseLA--平均负荷拒绝临界点
■MaxDaemonChildren--最大的守护进程的子进程数
■MaxHeadersLength --最大的报头长度
■MaxMimeHeaderLength --最大MIME编码报文长度
■MaxRecipientsPerMessage --每封邮件的最多接收者
1.4 FTP
了解那些FTP有安全问题:
■wu-ftpd -(wu-ftpd 2.6.0 输入验证漏洞、site newer 内存耗尽问题)
■proftpd
1.4.1 Ftp安全要点
■使用最新版本 -http://www.wu-ftpd.org/ 2.6.2 -http://www.proftpd.org/ 1.2.9
■使用ftpuser限制ftp用户
■使用ftpaccess控制用户行为,流量等等
■设置chroot运行环境 o使用ssh或sftp代替ftp
2 UNIX系统帐号安全
2.1 UNIX系统帐号文件
2.1.1 Passwd文件剖析
■name:coded-passwd:UID:GID:user-info:home-directory:shell
passwd文件字段含义:
■7个域中的每一个由冒号隔开。
■name-给用户分配的用户名。
■Coded-passwd-经过加密的用户口令。如果一个系统管理员需要阻止一个用户登录,则经常用一个星号( : * :)代替。该域通常不手工编辑。
■UID-用户的唯一标识号。习惯上,小于100的UID是为系统帐号保留的。
■UNIX系统帐号安全
■GID-用户所属的基本分组。通常它将决定用户创建文件的分组拥有权。
■User_info-习惯上它包括用户的全名。邮件系统和finger这样的工具习惯使用该域中的信息。
■home-directory-该域指明用户的起始目录,它是用户登录进入后的初始工作目录。
■shell-该域指明用户登录进入后执行的命令解释器所在的路径。注意可以为用户在该域中赋一个/bin/false值,这将阻止用户登录。
2.1.2 shadow文件
其内容中各字段含义:
■上一次修改口令的日期,以从1970年1月1日开始的天数表示。
■口令在两次修改间的最小天数。口令在建立后必须更改的天数。
■口令更改之前向用户发出警告的天数。
■口令终止后帐号被禁用的天数。
■自从1970年1月1日起帐号被禁用的天数。
■保留域。
2.2 UNIX系统帐号安全
2.2.1 禁用的口令
■不要选择简单字母序列组成的口令(例如"qwerty"或"abcdef")。
■不要选择任何指明个人信息的口令(例如生日、姓名、配偶姓名、孩子姓名、电话号码、社会保障号码、汽车牌号、汽车执照号、居住的街道名称等)。
■不要选择一个与要替换的口令相似的新口令。
■不要选择一个包含用户名或相似内容的口令。
■不要选择一个短于6个字符或仅包含字母或数字的口令。
■不要选择一个所有字母都是小写或大写字母的口令。
■不要选择一个被作为口令范例公布的口令。
2.2.2 好的口令
■选择一个至少有10个字符长度的口令。
■选择一个包含非字母字符的口令,包括数字和特殊字符,如~ ! @ $ % ^ * ( ) _ - + ={ } [ ] | \ : ; ' " , . ? / 。
■选择一个容易记住而不必写下来的口令。
■选择一个不用看键盘而能迅速键入的口令,使偷看的人不能识别出键入的字符。
■禁止写下口令
2.2.3 安全缺省帐号
Linux系统中安全缺省帐号。
2.2.4 UNIX系统帐号安全事项
UNIX系统帐号安全注意事项:
●禁用和删除帐号
■禁用帐号最快的方式是在/etc/passwd或影子口令文件中用户加密口令的开始加一个星号(*)。该用户将不能再次登录。
■删除帐号
■userdel jrandom
删除一个帐号时要完整。
杀死任何属于该用户的进程或打印任务。
检查用户的起始目录并为任何需要保存的东西制作一个备份。
删除用户的起始目录及其内容。
删除用户的邮件文件(/var/spool /mail)。
把用户从邮件别名文件中删除(/usr/lib/aliases)。
如果事先知道用户帐号将在哪天终止,则考虑在/etc/shadow中设置口令和帐号终止域。
●Root帐号安全性
■确保root只允许从控制台登陆
■限制知道root口令的人数
■使用强壮的密码
■三个月或者当有人离开公司是就更改一次密码
■使用普通用户登陆,用su取得root权限, 而不是以root身份登录
■设置 umask 为077 ,在需要时再改回022
■请使用全路径执行命令
■不要允许有非root用户可写的目录存在root的路径里
■确保root没有~/.rhosts文件
■确保root的cron job文件里没有执行属于其它用户或人人可写的文件
■修改/etc/securetty,去除终端ttyp0-ttyp9,使root只能从console或者使用ssh登陆。
■禁止root用户远程登录
linux下: -/etc/pam.d/login -auth required pam_securetty.so
其它多数系统: -/etc/default/login -CONSOLE=/dev/console
■自动帐号封锁-能够声明尝试登录失败的最大次数;一旦到达这个次数就封锁该帐号
■日期和时间限制-能够声明在一周或一天的什么时候可以使用一个用户的帐号;这是为了防御深更半夜的黑客
■自动登录退出-可以使长时间无反应的用户会话自动终止;这是有风险的,因为可能因一个合法的原因使一个会话显得不活跃
●密码策略
■密码长度的强制定义 -修改 /etc/login.defs -PASS_MIN_LEN 5
■为 PASS_MIN_LEN 8
■设置root登陆的timeout -/etc/profile: export TMOUT=7200
■用chage命令管理口令周期
chage -l username
[-m 最短周期] [-M 最长周期] [-I 口令到期到被锁定的天数]
[-E到期日期] [-W 口令到期之前开始警告的天数] username
●受限制的登录shell:
■编辑profile文件(vi /etc/profile),把这些行改成:
■HISTSIZE=20
●策略传播
●进行口令检查
●产生随机口令
●提前进行口令检查
●口令更换
3 UNIX文件系统安全
3.1 文件权限分类
■读:允许读文件和目录内容。
■写:允许修改、删除文件。
■执行:允许执行二进制程序和脚本
■目录粘着位:用户不能删除该目录下没有写权限的文件,尽管他对目录有写权限。
■SUID: 程序以所有者而不是执行者的身份执行。
■SGID(文件): 类似SUID,程序以所在组的权限运行。
3.2 文件和目录的访问对象
■文件所有者;
■文件所有组;
■其它人。
其中,文件权限的8进制表示。属主,组,其它分别以一个8进制位表示,其中: -r - 4 -w - 2 -x - 1
例子: "-rwxr-x---" 8进制表示为0750 0400 0200 0100 0040 0000 0010 +0000 ------------- 0750
文件权限命令
■chmod (改变权限)
■#chmod o+r file
■(用户(u)、分组(g)、其他(0))
■c h o w n(改变拥有权)
■#chown user1 file
■c h g r p(改变分组)
■#chgrp group1 file
3.3 umask值
当创建了一个新文件或目录时,它基于用户的权限屏蔽"umask"来确定缺省的权限设置。chmod命令用来声明要打开的权限,而umask命令用来指明要禁止的权限。
它用一个简单的三位数变元来声明在一个文件或目录被创建时应该被禁止的访问权限-或被屏蔽的。
umask主要在系统范围及个人的登录文件.login或.profile中建立。
3.3.1 文件权限
■应该设置root用户的umask为077,这使其它用户不能读写root新创建的文件。
■在多数系统中,u m a s k的缺省值是0 2 2。
3.3.2 附加的文件权限属性
■linux的ext2/ext3文件系统 -lsattr -chattr
■i 禁止修改
■#chattr +i files
■#chattr -i files
3.4 给口令文件和组文件设置不可改变位,
■[root@cnns]# chattr +i /etc/passwd
■[root@cnns]# chattr +i /etc/shadow
■[root@cnns]# chattr +i /etc/group
■[root@cnns]# chattr +i/etc/gshadow
3.5 SUID和SGID文件
■SUID表示"设置用户ID",SGID表示"设置组ID"。当用户执行一个SUID文件时,用户ID在程序运行过程中被置为文件拥有者的用户ID。如果文件属于root,那用户就成为超级用户。同样,当一个用户执行SGID文件时,用户的组被置为文件的组。
■Unix实际上有两种类型的用户ID。
■"real user ID"是在登录过程中建立的用户ID。 "effective user ID"是在登录后的会话过程中通过SUID和SGID位来修改。
■#find /-type f \ (-perm -4000 -o -perm -2000\) -ls
■这告诉find列出所有设置了SUID("4000")或SGID("2000")位的普通文件("f")。应该在每个本地系统中运行它。
■[root@kcn]# chmod a-s /usr/bin/chage
3.6 文件完整性
■确保操作系统文件,尤其可执行程序/bin,/sbin,/usr/bin/usr/sbin)不被修改。
■许多rootkit都要替换系统程序(如login,netstat,ps,ls等)来隐藏自己及安装后门
■一般通过计算文件校验码(如MD5码)的方式来检验文件完整性
■#md5sum --check bin.sum
■RPM检验和签名检查(linux)
■# rpm --verify timed -0.10-2
3.7 文件加密
Unix常用的加密算法有crypt(最早的加密工具)、DES(目前最常用的)、IDEA(国际数据加密算法)、RC4、Blowfish(简单高效的DES)、RSA。
PGP还可以用来加密本地文件。现在常用的Linux下的PGP工具为:pgpe(加密)、pgps(签名)、pgpv(确认/解密)、pgpk(管理密钥)
3.8 备份策略
3.8.1 备份策略包括
■第0天备份
■完全备份
■增量式备份
■特别备份
3.8.2 备份命令
■cp
■Tar(用于磁带机)
■Dump(把整个文件系统拷贝到备份介质上)
■-#dump 0f0 /dev/rst0 1500 /dev/sd0a
■把一个SCSI硬盘(/dev/rsd0a)以0级备份到磁带(/dev/rst0)。
■Restore(恢复整个文件系统或提取单个文件)
3.8.3 备份要注意的问题
■检验备份
■保护备份介质
■把备份磁带写保护
■定期把备份送到远离站点的地方
■要留神介质的限制
14 十一月, 2007 02:39
《PHP5权威编程》用通俗易懂的文笔,深入浅出的介绍PHP5的新特性——面向对象编程。除此之外,还囊括其他高级的应用。因此它不仅仅适合初学PHP的朋友,也非常适合从PHP4转向PHP5编程的朋友。是学习PHP5编程者的一本不可多得的读物。
我写的书评。也许编辑会再修改,也许不会被使用。
但是我确实很喜欢这本书。它的英文原著书名是《PHP 5 Power Programming》 ,我现在虽然更多的时间是在从事Unix/Linux系统方面的工作。但是PHP仍然是我的最爱,因此学习和应用过程中,仍然需要不断的学习,这本书确实很好。
13 十一月, 2007 05:43
xdm默认的背景,说实话,太丑了。亏我还能忍受,用了一年。今天换换吧,弄漂亮些。呵呵。
%cat /usr/local/lib/X11/xdm/Xsetup_0
#!/bin/sh
# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
#xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
xsetroot -solid "#215CAD"




