[FreeBSD] 安全加固

一、安装操作系统

1.选择发行版本

安装生产服务器,应当尽量选择最新的稳定版本。本文将采用FreeBSD 4.8 RELEASE。

4.8-RELEASE是成文时候最新的-STABLE版本。5.0-RELEASE和即将推出的5.1-RELEASE都是-CURRENT分支的发行版本,其稳定性和性能可能不如-STABLE,仅适合于开发者和发烧友。对于生产服务器来说,miniinst或disc1就足够了。请下载4.8-RELEASE-i386-mini.iso这个文件,刻录成安装光盘。

本文所叙述操作系统的安装就将采用光盘安装方式。

2.安装要点

通过安装向导可以很轻松的完成系统安装,这里不加详细叙述,仅仅指出如下两点:

(1)硬盘分区的注意事项:

分区的大小根据应用的实际情况而异,特别指出的是,网站文件、数据库文件、日志文件、临时文件应当单独分区存储,以防止攻击者滥用磁盘空间导致系统崩溃。下面是一块容量为18G SCSI硬盘的分区例子:

分区 大小 备注

/ 128M

SWAP 1008M 至少是内存数量的2倍(本系统采用512M内存)

/tmp 256M

/usr 3G 系统和Apache等应用软件、源码存储于这个分区

/usr/home 7G 网站文件存储于此

/var 3G 数据库将使用这个分区

/var/log 2811M 日志文件单独分区

(2)选择要安装的文件(distributions):

只安装必要的基本系统即可,绝对不要安装全部软件。在custom项目中,选取如下安装内容:

bin,基本的FreeBSD系统文件;

man,系统帮助文件;

src—》sys,操作系统核心源码,定制内核时候将使用到。

接下来,安装程序询问是否安装PORTS,为了方便安装软件,我们选择安装。但在高安全要求的系统上,最好不要使用ports或者packages,尽量自己下载源代码在本地编译,手动安装。

提示:有时,安全和易用是相互矛盾的。

然后是拷贝文件,直至安装完毕。

3.安装后的初步设置

安装完之后,建议您安装cvsup-without-gui(从bento.freebsd.org可以下在最新版本),并同步代码。对系统进行初步设置:

增加用户帐号;

设置网络参数,将主机连接到网络上(全部设置完成后移动到Internet);

配置网络服务,打开FTP、SSH服务,后续的配置工作都将远程进行。

 

二、定制系统内核

定制系统内核内容:

支持特定硬件,如SMP、RAID、大容量内存;

删除多余硬件驱动支持;

增强系统安全性,增加IP过滤防火墙支持。

编辑内核设置文件,为增强安全特性,增添或修改如下内容:

#启用ipfw过滤

options IPFIREWALL #打开IPFW过滤功能

options IPFIREWALL_VERBOSE #设置过滤日志记录

options IPFIREWALL_VERBOSE_LIMIT=100 #设置日志记录限制

options IPFIREWALL_DEFAULT_TO_ACCEPT #设置缺省行为

options NOLKM#关闭LKM

options TCP_DROP_SYNFIN #丢弃SYNFIN包,需要在rc.conf中打开

#关于虚拟终端

#取消历史记录,在登出系统后刷新虚拟终端缓冲中的内容

SC_NO_HISTORY

#取消debug键

SC_DISABLE_DDBKEY

#取消ctl+alt+del键

SC_DISABLE_REBOOT

 

重新编译系统内核并使之生效。

三、系统配置

1.修改/etc/inetd.conf文件内容,配置inetd服务

(1)telnet服务

我们将使用SSH远程管理这台服务器,因此禁止telnet服务:在行前加"#"标记。

(2)FTP服务

使用系统自带的FTP服务,并作如下设置:

ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -h

-l 参数,记录每个成功或者失败的FTP登录尝试;

-l -l 参数,所有的下载、上传、删除更动作和文件名都会被记录下来(设置syslog.conf)

-h参数,将禁止主机相关信息的输出,例如ftpd版本、主机名等;

-P参数,指定FTPD进程监听端口号

FTP服务其他安全方面的设置:

把网站编辑帐号放到/etc/ftpchroot文件中,把他们限制在自己的HOME目录,防止浏览其他目录。

编辑/etc/hosts.allow 文件,限制对FTPD的访问。

可以编辑/etc/ftpwelcome,防止泄露系统信息。

2.修改/etc/rc.conf文件,配置系统初始参数

#配置开机器后自动启动或关闭的守护进程

#可以关闭inetd,使用SSH代替了telnet服务,使用其他的FTP服务程序代替系统的ftpd。

inetd_enable="NO"

#如果决定使用inetd则启动inetd的日志选项,并提高一个服务每分钟启动的上限数目(默认是256,建议提高到1024),防止DoS攻击;

inetd_enable="YES"

inetd_flags="-l -R 1024"

#打开SSHD

sshd_enable="YES"

#禁止syslogd记录其他主机日志(关闭端口514)

syslogd_enable="YES"

syslogd_flags="-s -s"

#关闭不必要的服务。本服务器没有NFS、NIS登需要,可以关闭portmap (关闭端口111)

portmap_enable="NO"

nfs_server_enable="NO"

nfs_client_enable="NO"

#使sendmail只监听localhost,允许邮件客户程序发送邮件

sendmail_enable="NO"

#设置为"NONE",将彻底关闭25端口

#设置内核安全级别(Securelevels)

#内核安全级别从-1到3,-1和0级别是非安全级别。

#系统在多用户模式下,安全级别只能提升不能降低。

#Securelevel -1,永久不安全模式

#Securelevel 0,不安全模式

#Securelevel 1,安全模式

#Securelevel 2,高安全模式

kern_securelevel_enable="YES"

kern_securelevel="2"

#计算机启动时候发现文件系统失效,将以-y参数运行fsck

fsck_y_enable="YES"

#打开磁盘配额

enable_quotas="YES"

check_quotas="YES"

#在系统启动时清空/tmp

clear_tmp_enable="YES"

#防止系统自动加入信息到motd

update_motd="NO"

#启动防火墙设置

firewall_enable="YES"

firewall_logging="YES"

firewall_script="/etc/firewall.rules"

#丢弃SYNFIN信息包。缺省时设置为”NO”,当设置为”YES”的时候,系统内核将忽略同时设置了syn和fin位的TCP桢(需要内核的支持:options tcp_drop_synfin)

tcp_drop_synfin="YES"

#丢弃ICMP重定向。可以防止DOS攻击或劫持进程(hijack sessions)

icmp_drop_redirect="YES"

icmp_log_redirect="YES" #记录ICMP重定向

#在CISCO路由器上关闭重定向:no ip send-redirects

log_in_vain="YES" #记录每一个到关闭端口的连接企图。

accounting_enable="YES" #打开系统审计功能

 

3.修改/etc/sysctl.conf文件,调整IP堆栈

 

#关闭对广播类型的响应,过滤ICMP响应后,服务器无法ping 通,可以提高部分安全性能

net.inet.icmp.bmcastecho=0

#对UDP包的校验和进行计算,防止不正确的UDP包的攻击

net.inet.udp.checksum=1

#在默认情况下,操作系统在关闭的端口上接受到TCP SYN段的时候,会发送RST信息包,告诉攻击者这个端口关闭了,导致攻击者继续扫描下一个端口,使端口扫描简单化,浪费了本机CPU时间在DOS上。我们可以使用blackhole来控制对没有socket监听的TCP或者UDP端口接受到连接请求时的行为。

#当设置这个选项后,系统将马上丢弃这个包而不发RST包,连接端将看到"Connection reset by peer."

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

4.防火墙规则设置

尽管按照上面的叙述已经能够形成一定的防护,但是若要实现安全程度更高的主机系统,就要借助于IPFW这样的包过滤软件,通过设置防火墙规则,严格限制对服务器的访问。

过滤ICMP服务,命令格式:

ipfw add pass log icmp from $ip to any [要处理的协议]

icmp是使用类型规定出站的信息。

0 echo-reply ping

3 destination unreachable Any TCP/UDP traffic(主机不可到达)

5 redirect routing if not running routing daemon(如果未运行路由守护程序,复位向路由)

8 echo-request ping (入站信息)

11 time-exceeded traceroute (traceroute 超时)

配置文件的例子:

ip="你自己的IP"

#强制清除所有规则

ipfw -f flush

ipfw add pass log udp from $ip to any

ipfw add pass log icmp from $ip to any icmp 8#接受回答

ipfw add pass log icmp from not $ip to $ip icmp 0#拒绝请求

ipfw add pass log icmp from not $ip to any icmp 11# traceroute 超时

ipfw add pass log icmp from not $ip to any icmp 3#目标主机不可到达

#SYN、FIN组合的包一般是nmap、queso扫描器使用,所以过滤。

ipfw add deny log tcp from any to any in tcpflags syn,fin

#检查通信状态

ipfw add check-state

ipfw add deny tcp from any to any in established

ipfw add allow ip from any to any out keep-state

#允许ident请求

ipfw add allow tcp from any to any 113 keep-state setup

5.日志管理

(1)启动日志

修改/etc/rc.conf文件。使用 "-s -s"标志启动syslogd,防止打开UDP 514端口;

(2)修改/etc/syslog.conf文件,配置syslogd

#可以将本地日志记录到其他主机loghost上:

*.*@loghost

#为FTP增加日志条目:

ftp.* /var/log/ftpd

#相关命令:touch /var/log/ftpd

#记录SSH连接记录

security.*;auth.info /var/log/security #记录连接到SSH的日志信息

auth.* /var/log/authlog

#使ipfw能够用syslog记录

!ipfw

*.* /var/log/ipfw.log

(3)使用newsyslog压缩日志

newsyslog程序能够定时压缩日志文件并清除旧的文件是,freebsd默认安装的,它是从crontab启动的:

#grep newsyslog /etc/crontab

0 * * * * root /usr/sbin/newsyslog

可以修改/etc/newsyslog.conf以符合你的需求。通常把文件属性从664变为640,不让一般用户查看系统记录。

/var/log/authlog root.wheel 640 7 100 * Z

/var/log/ipfw.log root.wheel 640 3 100 * Z

#这会在日志文件达到100K时将它压缩并编号,将mode改成640,chown成root.wheel,并删除旧的日志文件。

#相关操作:

#cd /var/log

#chmod g-w,o-r *;chmod a+r wtmp

#把所有文件的组属性改为wheel的。

#防止一般用户读日志配置文件

#chmod 600 /etc/syslog.conf

#chmod 600 /etc/newsyslog.conf

四、用户管理

 

1.限制登录条件

(1)把个人用户放到/etc/ftpchroot文件中,把他们限制在自己的HOME目录

(2)修改/etc/shells文件,增加不能用来登录的shell,如passwd或者nologin,赋予仅需要FTP功能的用户以/usr/bin/passwd的shell 阻止他们使用SHELL命令。

(3)拒绝直接以root身份登录:

在/etc/ttys文件中,将"secure"标记改为"insecure"标记,使系统在进入单用户模式时会要求root密码。但是这样以来也为恢复root密码制造了障碍——安全和易用再次形成了矛盾的两个对立面。

console none unknown off insecure

(4)使用 tcp wrapper (/etc/hosts.allow)允许/拒绝访问特定的TCP服务。

tcp_wrappers 可以在访问者要求服务前先检查/etc/hosts.allow 文件中设定的规则,符合放行规则的才会去启动服务程序,可以达到有条件开放系统服务的目的。

在/etc/host.allow文件中,注释掉"ALL:ALL:allow",去掉其他无关服务访问,增加如下内容:

sshd: localhost : allow

sshd: friendlycomputer : allow

sshd: all : deny

另外需要注意的是:

注意规则的先后顺序,因为tcp_wrappers的规则有first match 的特性,最好把放行的规则写在前面,然后在后面加一条全部禁止的规则;

为避免 DNS 欺骗,规则尽量使用IP表示;

FreeBSD缺省的/etc/hosts.allow中第一条规则是 ALL : ALL : allow,自己的规则一定要放在他前面才有效。

(5)使用 allowuser/allowgroup SSH配置选项以允许特定的用户和组使用SSH连接。

(6)限制登录的用户、组以及登录地方,修改/etc/login.access。

(7)利用login.conf对用户的登录环境和资源许可进行设置。

FreeBSD系统使用/etc/login.conf中描述的数据将用户按照登录环境、强制性的资源限制以及记帐管理登分为不同的登录类别,每个用户的登录类别记录在/etc/master.passwd中该用户的设置中。

每次修改login.conf后,都要进行更新登录数据库的操作:

#cap_mkdb /etc/login.conf

由于登录类别保存在master.passwd文件中,通常在使用adduser添加用户的时候设置用户的登录类别,如果要进行修改,必须使用vipw来修改/etc/master.passwd文件中的5个域。

 

2.登录环境

 

(1)编辑/etc/motd文件,阻止计算机泄露系统信息

(2)删除版权信息

#touch /etc/COPYRIGHT

(3)防止系统自动加入信息,修改/etc/rc.conf

update_motd="NO"

(4)修改登录提示,编辑/etc/gettytab,找到default:小节,他以下面的文字开头:

:cb:ce:ck:lc

小心的修改r:之间的文字来适应自己的需要。

3.crontab的问题

建议 www、nobody、bind等用户不能使用crontab,建立/etc/cron/allow文件把需要使用的用户放进去,如:

#echo root>/var/cron/allow

#chmod 600 /var/cron/allow

如果不使用at命令,就关闭这个服务,在/etc/crontab文件中注释掉

# */5 * * * * root /usr/libexec/atrun

4.保护文件系统

(1)锁住文件系统

A.修改/etc/fstab文件,设置系统启动时自动挂接的文件系统,使用nosuid参数挂接/usr 或 /(目的是/sbin)文件系统,尤其是一般用户可以写入的文件系统,应单独划分分区:

/home or /usr/home

/tmp or /var/tmp

/etc/fstab文件内容:

/dev/sd0s1e /var/tmp ufs rw,nosuid 2 2

B.搜寻并去除不用的二进制文件的suid位,(尤其是uucp——setgid)

C.使用chflags设置变量,例如,给日志文件设置sappnd,给系统二进制文件设置schg标志;

#相关命令:

#找出你所有的可写入目录,

#find / -perm -0777 -type d -ls

找出那些程序是suid 或者sgid的命令:

#find / -perm -2000 -ls

#find / -perm -4000 –ls

(2)文件保护,严格限制系统配置文件权限,只对root用户开放读写权利:

#chflags schg /bin/*

#chflags schg /sbin/*

#chmod 600 /etc/firewall.rules

#chmod 600 /etc/crontab

#chmod 600 /etc/newsyslog.conf

#chmod 600 /etc/rc.sysctl

#chmod 600 /etc/rc.conf

#chmod 600 /etc/syslog.conf

#chmod 600 /etc/sysctl.conf

#防止一般用户读日志文件

# chmod 640 /var/log/httpd-access.log

(3)可以把不是很有用的程序 chmod 000,如uustat,uucico。如果你从来不碰uucp或是PPP和PPPD的话,你绝不会用到他们。如果不用打印机的话,把lpr lprd也chmod 000了吧。

5.其他相关

修改计算机相关设置,如BIOS,不允许软盘启动、CDROM启动,即在装载硬盘驱动之前不允许其他媒介启动,设置BIOS密码,保护机器物理安全。

五、配置SSH

 

修改/etc/ssh/ssh_config文件

(1)使用protocol 2代替protocol 1,SSH2更加安全,可以防止攻击者通过修改携带的版本banner来劫持(hijacking)启动会话进程并降低到protocol 1。注释掉protocol 2,1 改用下面语句代替:

protocol 2

(2)合理设置最大连接数量, 防止DOS攻击

MaxStartups 5:50:10

(3)禁止远程root和空密码登录,建议关闭X11forwording

X11Forwarding no

(4)强烈建议不使用静态密码,而使用DSA 或RSA KEY,修改如下内容可以关闭使用密码认证:

PasswordAuthentication no

(5)可以限制组或光是单个用户访问shell

AllowGroups wheel

AllowUsers xundi

(6)使用TCP wrappers来限制一些访问,修改/etc/hosts.allow文件,注释掉"ALL : ALL : allow",增加如下内容:

sshd:localhost:allow

sshd:friendlcomputer:allow

sshd:all : deny

#相关命令:

#chsh -s /sbin/nologin user

六、总结和补充

使用最新版本的操作系统;推荐使用STABLE或者最新RELEASE分支。

修改系统前,首先备份系统。

修改/etc/inetd.conf和rc.conf关闭可有可无和不必要的服务。

立即禁用telnet,使用SSH代替之——OpenSSH在freebsd安装时即被包括。

使用SSH2协议中内建的sftp服务代替标准的ftp

建立SSH公钥防止口令传输。

使用包过滤软件类如ipfw或者ipfilter限制服务的获取。

禁止不需要的帐户

应用组和用户的概念

设置正确的文件权限

以chroot环境运行具有潜在危险的程序,例如bind

使用sudo,非严格root级访问

限制某些强大命令的访问

如何检查你的安全性

/usr/ports/security/nmap 对自己进行端口扫描,以发现异常服务

/usr/ports/security/whisker 对WEB服务器进行审计,防止潜在破坏

/usr/ports/security/tripwire-

/usr/ports/security/snort

日常操作

(1)经常查看http://www.freebsd.org/security/index.html的安全公告;

(2)订阅security bugtraq和freebsd官方安全邮件列表了解安全动态;

(3)每天查看系统日志,关于检查系统日志,你可以通过其他工具增加多信息的捕获,如snort可以比较完全的记录信息;

(4)如果你的硬盘够大,信息处理够快,可以定时使用 netstat -an >> /.../.../netstat.log来记录信息,因为netstat能记录连接信息,所以如有些后门日志不能记录,但netstat却在一定时间里总有连接记录。

(5)如果你对文件系统有原始的记录,可以定时使用一些系统完整性检查工具进行检验;

(6)如果你有防火墙,经常查看防火墙信息。




FreeBSD基本安全加固:

1.修改 /etc/rc.conf:

sendmail_enable="NONE"   //关闭sendmail

syslogd_enable="YES"     //开户syslogd

syslogd_flags="-ss"      //禁止syskogd接受来自远程主机的记录并关闭端口,但仍然允许 localhost 进行日志记录

tcp_drop_synfin="YES"    //阻止OS指纹识别的企图,需在内核中加入"options  TCP_DROP_SYNFIN "

log_in_vain="YES"        //记录每一个到关闭端口的连接企图,这个最好是在启用了防火墙功能之后再打开.

accounting_enable="YES"  //打开系统审计功能

clear_tmp_enable="YES"   //在系统启动时将清空 /tmp

icmp_drop_redirect="YES"  //丢弃ICMP重定向。可以防止DOS攻击或劫持进程

icmp_log_redirect="YES"   //记录ICMP重定向

fsck_y_enable="YES"      //计算机启动时候发现文件系统失效,将以-y参数运行fsck

update_motd="NO"         //防止系统自动加入信息到motd

 

修改/etc/sysctl.conf文件,调整IP堆栈

net.inet.icmp.bmcastecho=0   #关闭对广播类型的响应,过滤ICMP响应后,服务器无法ping 通,可以提高部分安全性能

net.inet.udp.checksum=1      #UDP包的校验和进行计算,防止不正确的UDP包的攻击

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

#在默认情况下,操作系统在关闭的端口上接受到TCP SYN段的时候,会发送RST信息包,告诉攻击者这个端口关闭了,导致攻击者继续扫描下一个端口,使端口扫描简单化,浪费了本机CPU时间在DOS上。我们可以使用blackhole来控制对没有socket监听的TCP或者UDP端口接受到连接请求时的行为。

#当设置这个选项后,系统将马上丢弃这个包而不发RST包,连接端将看到"Connectionreset by peer."

2.限制远程登录的终端数量:

修改 /etc/ttys,如果不想打开太多的终端,请把对应的 "on" 改为 "off" ,当然,只是一部分 ttys .保持至少1 "on," 否则会无法登录,这将导致系统无法使用.ttyv8 默认情况下是"off" .

3.限制远程登录地址和用户:

限制远程登录,可以通过编辑 /etc/login.access 实现的:

如果禁止一切远程登录(这意味着必须物理地坐在机器前面),删除下面这一行前面的#号:

#-:wheel:ALLEXCEPT LOCAL .win.tue.nl

并把 .win.tue.nl 去掉,于是它看起来将像这样:

-:wheel:ALLEXCEPT LOCAL

如果你需要从远程登录,那么把.win.tue.nl 替换为相应的IP或域名。如果有多个地址,用空格分开。

如果只有一两个用户的话,那么可以拒绝其他人登录:

-:ALLEXCEPT user1 user2:ttyv0 ttyv1 ttyv2 ttyv3 ttyv4

用具体的用户名替换掉 user1 user2 。如果需要的话,增加相应的tty

4.升级源码:

创建stable-supfile:

*defaulthost=cvsup4.freebsdchina.org

*defaultbase=/usr

*defaultprefix=/usr

*defaultrelease=cvs tag=RELENG_4

*defaultdelete use-rel-suffix

src-all

ports-alltag=.

执行:

cvsup -g-L 2 stable-supfile

完成后在/usr/src中执行:

makeworld

完成后,再编译内核,如果发生错误:

执行:

mergemaster-p

makeworld

mergemaster-i

5.内核编译:

加入:

options        IPFILTER               #ipfilter support

options        IPFILTER_LOG           #ipfilter logging

options         TCP_DROP_SYNFIN        #drop TCP packets with SYN+FIN  丢弃SYNFIN包,需要在rc.conf中打开

options         SC_NO_HISTORY          #取消历史记录,在登出系统后刷新虚拟终端缓冲中的内容

options        SC_DISABLE_DDBKEY       # disable `debug' key  取消debug

options        SC_DISABLE_REBOOT       # disable reboot keysequence  取消ctl+alt+del

6.修改/etc/sysctl.conf文件,调整IP堆栈

net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

在默认情况下,操作系统在关闭的端口上接受到TCP SYN段的时候,会发送RST信息包,告诉攻击者这个端口关闭了,导致攻击者继续扫描下一个端口,使端口扫描简单化,浪费了本机CPU时间在DOS上。我们可以使用blackhole来控制对没有socket监听的TCP或者UDP端口接受到连接请求时的行为。

当设置这个选项后,系统将马上丢弃这个包而不发RST包,连接端将看到"Connectionreset by peer."

7.使用 tcp wrapper /etc/hosts.allow)允许/拒绝访问特定的TCP服务。

tcp_wrappers 可以在访问者要求服务前先检查/etc/hosts.allow 文件中设定的规则,符合放行规则的才会去启动服务程序,可以达到有条件开放系统服务的目的。

/etc/host.allow文件中,注释掉"ALL:ALL:allow",去掉其他无关服务访问,增加如下内容:

sshd:localhost : allow

sshd:friendlycomputer : allow

sshd: all: deny

另外需要注意的是:

注意规则的先后顺序,因为tcp_wrappers的规则有first match 的特性,最好把放行的规则写在前面,然后在后面加一条全部禁止的规则;

为避免DNS 欺骗,规则尽量使用IP表示;

FreeBSD缺省的/etc/hosts.allow中第一条规则是 ALL : ALL : allow,自己的规则一定要放在他前面才有效。

8.登录环境:

freebsd#rm -rf /etc/motd

freebsd#ee /etc/motd

I amadministrator , Who are you ?

freebsd#touch /etc/COPYRIGHT

freebsd#ee /etc/gettytab

default:下面一行改为:

:cb:ce:ck:lc#1000:im=\r\Thisis

www.lingfengcn

!\n\r\n:sp#1200:\

9、配置SSH

修改/etc/ssh/ssh_config文件

1)使用protocol 2代替protocol 1SSH2更加安全,可以防止攻击者通过修改携带的版本banner来劫持(hijacking)启动会话进程并降低到protocol 1。注释掉protocol 2,1 改用下面语句代替:

protocol2

2)合理设置最大连接数量, 防止DOS攻击

MaxStartups5:50:10

3)禁止远程root和空密码登录,建议关闭X11forwording

X11Forwardingno

10、检视系统记录:

/var/log 中,记录了许多系统的信息,我们应该要时常检视它们:

adduser      使用 adduser 的记录。

cron         定时排程的记录。

maillog      邮件记录。

messages     系统讯息记录。

security     安全性记录,如防火墙。

FreeBSD 预设每天定时执行一些分析的工作,并将结果寄给 root,建议你最好每天阅读它们。我们可以在 /etc/mail/aliases 的开头中加入下面这一行:

freebsd#ee /etc/mail/aliases

加入:

root:

wanglin.sun@163.com

freebsd# newaliases     //让设定生效

这样,所有寄给 root 的信件,都会自动转给所设定的信箱。root 每天会收到 "daily run output" "security check output" 这二封信,这是依照我们在/etc/defaults/periodic.conf 中所设定的定时执行工作输出的结果。

11、漏洞修补:

FreeBSD 总部会不定期公布己知的安全漏洞,并提供修补方式,我们必须时常到 FreeBSD 的网站注意关于安全性的消息,该网站的位置是

http://www.freebsd.org/security/index.html

例如:

FreeBSD-SA-05:17.devfs.asc

FreeBSD-SA-05:16.zlib.asc

FreeBSD-SA-05:15.tcp.asc

FreeBSD-SA-05:14.bzip2.asc

FreeBSD-SA-05:13.ipfw.asc

FreeBSD-SA-05:12.bind9.asc

FreeBSD-SA-05:11.gzip.asc

FreeBSD-SA-05:10.tcpdump.asc

FreeBSD-SA-05:09.htt.asc

Solution:

Performone of the following:

1)Upgrade your vulnerable system to 5-STABLE, or to the RELENG_5_4,

orRELENG_5_3 security branch dated after the correction date.

2) Topatch your present system:

Thefollowing patches have been verified to apply to FreeBSD 5.3, and

5.4systems.

a)Download the relevant patch from the location below, and verify the

detachedPGP signature using your PGP utility.

freebsd#fetch

ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:17/devfs.patch

freebsd#fetch

ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:17/devfs.patch.asc

b) Applythe patch.

freebsd#cd /usr/src

freebsd#patch

c)Recompile your kernel as described in

andreboot the

system.

我们可以选择下列二种方式其中之一来进行修补,第一种方式是将您的 FreeBSD 升级至 5-STABLERELENG_5_4、或 RELENG_5_3。第二种方式是我们最常用的方法,也就是下载修补的原始码。通常我们必须依照所使用的 FreeBSD 系统来下载不同版本所使用的补丁。上述范例中,其修补文件分别供 FreeBSD 5.3 5.4 使用。

我们以 FreeBSD 5.4 为例,首先,我们必须下载更新档,请使用下列指令下载:

freebsd#cd /usr/src

freebsd#fetch

ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-05:17/devfs.patch

我们将档案下载到 /usr/src 目录下,这个档案是修补的档案,而 devfs.patch.asc 是用来检查 pgp 签名的签名档,如果您不使用 pgp 检查所下载的档案是否正确,您可以忽略这个档案。

我们所下载的 patch 档是将漏洞修补前及修补后的原始码差异存成一个档案,接下来我们必须将这个差异和我们系统中的原始码合并。因此,我们系统中一定要安装 FreeBSD 的原始码,也就是/usr/src 这个目录下有原始码的数据,如果您在安装 FreeBSD 时并未安装原始码,您可以使用 sysinstall 来安装原始码套件。接下来我们就可以将所下载的档案合并到系统中:

freebsd#cd /usr/src

freebsd#patch

12.FreeBSD,IPMAC绑定命令:

arp-s  

arp -s99:de:dd:88:od:cc 192.168.1.5

arp -s99:de:d4:68:od:cc 192.168.1.8


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值