≡ 典典 - 单机游戏攻略 ≡'s Archiver

admin 发表于 2006-10-27 10:10

FreeBSD系统安装及安全调整 [参考]

内容简介:本文将详细介绍一个网站服务器的系统安装、针对安全因素的系统调整。该服务器通过Apache+PHP4+MySQL提供动态网站服务,通过自带的FTPD提供网页上传服务,通过自带的OpenSSH提供管理维护服务。本文将不涉及Apache和MySQL的管理。 +Gk+G+i [fA
  一、安装操作系统 WG:]9F6S&U8dr
  1.选择发行版本 !Twhw.`d hd \e~"K
  安装生产服务器,应当尽量选择最新的稳定版本。本文将采用FreeBSD 4.8 RELEASE。
;jNk&PT   4.8-RELEASE是成文时候最新的-STABLE版本。5.0-RELEASE和即将推出的5.1-RELEASE都是-CURRENT分支的发行版本,其稳定性和性能可能不如-STABLE,仅适合于开发者和发烧友。对于生产服务器来说,miniinst或disc1就足够了。请下载4.8-RELEASE-i386-mini.iso这个文件,刻录成安装光盘。
*|e:XC$F 本文所叙述操作系统的安装就将采用光盘安装方式。 1PM ^ A3A
  2.安装要点
gIlp3q;pH   通过安装向导可以很轻松的完成系统安装,这里不加详细叙述,仅仅指出如下两点: awHR PvH
  (1)硬盘分区的注意事项:
*I rtQi"O"x t R   分区的大小根据应用的实际情况而异,特别指出的是,网站文件、数据库文件、日志文件、临时文件应当单独分区存储,以防止攻击者滥用磁盘空间导致系统崩溃。下面是一块容量为18G SCSI硬盘的分区例子:
yOxl4u 分区 大小 备注 B0y0`q3q|T&N'k,tm)b
/ 128M
vi+vLrOP!W SWAP 1008M 至少是内存数量的2倍(本系统采用512M内存)
ff4~4^:};b /tmp 256M
Y7S1WOt\ /usr 3G 系统和Apache等应用软件、源码存储于这个分区 8I%b F[1bl
/usr/home 7G 网站文件存储于此
A.{d#S-F]J6~9` /var 3G 数据库将使用这个分区
Ny g:I.{'Q,Sc X /var/log 2811M 日志文件单独分区
Q&S1w$o-L^   (2)选择要安装的文件(distributions):
dY+if'Q?f,l ^   只安装必要的基本系统即可,绝对不要安装全部软件。在custom项目中,选取如下安装内容:
6RW"`%^#rF&c   bin,基本的FreeBSD系统文件; 2oH%g;y OO
  man,系统帮助文件; 'U-u^HKj2P UZoB
  src—》sys,操作系统核心源码,定制内核时候将使用到。
qB/x}%l#D5a   接下来,安装程序询问是否安装PORTS,为了方便安装软件,我们选择安装。但在高安全要求的系统上,最好不要使用ports或者packages,尽量自己下载源代码在本地编译,手动安装。 ,p(DP Y}|7o:O&o,AZ
  提示:有时,安全和易用是相互矛盾的。 {'h xj+J4I
  然后是拷贝文件,直至安装完毕。
%kxLN+Y4Te   3.安装后的初步设置 #F/G4A}e&~4R4I
  安装完之后,建议您安装cvsup-without-gui(从bento.freebsd.org可以下在最新版本),并同步代码。对系统进行初步设置:
:F6\` I2e#To&_   增加用户帐号; :\e\W'm~0A$r^
  设置网络参数,将主机连接到网络上(全部设置完成后移动到Internet); 2NN&bu&e+jG? y
  配置网络服务,打开FTP、SSH服务,后续的配置工作都将远程进行。
Nt E9}#@w 'oS/pw'yo"M8z(b r
  二、定制系统内核 2m7^9w|[v+@[$M V R
  定制系统内核内容:
(GzJ8t [CT   支持特定硬件,如SMP、RAID、大容量内存; SM)k!ate7H
  删除多余硬件驱动支持; f I~)a:V#W
  增强系统安全性,增加IP过滤防火墙支持。
w!TgM%j'W   编辑内核设置文件,为增强安全特性,增添或修改如下内容:
h+J8~9JF   #启用ipfw过滤 t9[ ]2K^ ht$I3A
  options IPFIREWALL #打开IPFW过滤功能
~M8K.l)CwX   options IPFIREWALL_VERBOSE #设置过滤日志记录
u,f F`;QP5NB;O   options IPFIREWALL_VERBOSE_LIMIT=100 #设置日志记录限制
Yi)Bi+PLD akL!{k   options IPFIREWALL_DEFAULT_TO_ACCEPT #设置缺省行为 +^@C1m)N:m)W'Kc
  options NOLKM#关闭LKM f'kbk;j ^ bxBQ$@
  options TCP_DROP_SYNFIN #丢弃SYNFIN包,需要在rc.conf中打开 +N1Vc9\9Q$i-y
  #关于虚拟终端 I%ByB_$S|,@*B
  #取消历史记录,在登出系统后刷新虚拟终端缓冲中的内容 #c-J'fv+`
  SC_NO_HISTORY
5V)QW OmJ~   #取消debug键 @)YTJh/?,P&f
  SC_DISABLE_DDBKEY P hZ p|-b-I
  #取消ctl+alt+del键 5@8F7`PY
  SC_DISABLE_REBOOT hZ4ZgF
%Hm+P#{*P:b(Wb
  重新编译系统内核并使之生效。 1hX4z8GeWe,_ NUK T
  三、系统配置 xC8pS Vn
  1.修改/etc/inetd.conf文件内容,配置inetd服务 (h&SWub
  (1)telnet服务 #pF-\RyvO
  我们将使用SSH远程管理这台服务器,因此禁止telnet服务:在行前加"#"标记。
uLGVPd | hu;k   (2)FTP服务 ;i5s^)v+j({kR-nT
  使用系统自带的FTP服务,并作如下设置: &v+w3[(hu p
  ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -l -h
O6Y%Nu(m`(E:n   -l 参数,记录每个成功或者失败的FTP登录尝试; 4o:\(wf2?8Q
  -l -l 参数,所有的下载、上传、删除更动作和文件名都会被记录下来(设置syslog.conf) 'iTg)x6F {
  -h参数,将禁止主机相关信息的输出,例如ftpd版本、主机名等; !i(h3_hl3A
  -P参数,指定FTPD进程监听端口号
_Uw4r9z7V   FTP服务其他安全方面的设置: 8?k)@I#A2\
  把网站编辑帐号放到/etc/ftpchroot文件中,把他们限制在自己的HOME目录,防止浏览其他目录。
@/zQ!} UVAJn   编辑/etc/hosts.allow 文件,限制对FTPD的访问。 Ry-^:L(|sT*|
  可以编辑/etc/ftpwelcome,防止泄露系统信息。
s){k*t1Dk/[   2.修改/etc/rc.conf文件,配置系统初始参数
kpTei9y#Y.F]   #配置开机器后自动启动或关闭的守护进程 r'OJpt _I O
  #可以关闭inetd,使用SSH代替了telnet服务,使用其他的FTP服务程序代替系统的ftpd。
+j@h y&_J   inetd_enable="NO"
E b.Z\8C~ Pa7B   #如果决定使用inetd则启动inetd的日志选项,并提高一个服务每分钟启动的上限数目(默认是256,建议提高到1024),防止DoS攻击;
5T6sDaV%T p\%Da   inetd_enable="YES" LU,])E'X*G
  inetd_flags="-l -R 1024"
h%p1X)e?   #打开SSHD
.Wd-P"y6N   sshd_enable="YES" S3w)\'gd2Ti1hv
  #禁止syslogd记录其他主机日志(关闭端口514) /Z)KN_Vfq
  syslogd_enable="YES" "?:Q#Le"w#\C
  syslogd_flags="-s -s"
Q'}\'KAv6\ Z   #关闭不必要的服务。本服务器没有NFS、NIS登需要,可以关闭portmap (关闭端口111) *Il%FL0j-}@tR
  portmap_enable="NO" )p7]q/]3l/k2O {
  nfs_server_enable="NO" l'Y!hn)s[R\*A
  nfs_client_enable="NO"
9m.vC c vF%Z   #使sendmail只监听localhost,允许邮件客户程序发送邮件 1KOTG {8@
  sendmail_enable="NO"
E(]!Vy"um2SrqM   #设置为"NONE",将彻底关闭25端口
#|zb;l|f Q   #设置内核安全级别(Securelevels) 0QH_Bm'p3f?
  #内核安全级别从-1到3,-1和0级别是非安全级别。 .q~/\fw6g
  #系统在多用户模式下,安全级别只能提升不能降低。
)|2d8i[ D \M A   #Securelevel -1,永久不安全模式
W Mf[Z+Ti?\   #Securelevel 0,不安全模式 _7A Wf.kq"c
  #Securelevel 1,安全模式
8M Uy;Y&FaE1J   #Securelevel 2,高安全模式 krh6C;q+n;W;[0d
  kern_securelevel_enable="YES" Wk Mh)Y+Zm
  kern_securelevel="2" ,OOKpU e4k
  #计算机启动时候发现文件系统失效,将以-y参数运行fsck
? N+d1GdB-BWf   fsck_y_enable="YES" H6F5~6KqCxq&NQ
  #打开磁盘配额
8qxc OTS)ZW   enable_quotas="YES"
GJa/[qp   check_quotas="YES"
X}.F k h"?   #在系统启动时清空/tmp m XI8u'F ~c
  clear_tmp_enable="YES" 9W:yy;lf
  #防止系统自动加入信息到motd
$bWv4N$~*W;a   update_motd="NO"
lW/R6vQhP1I@ o   #启动防火墙设置 C6Zb)W PC
  firewall_enable="YES"
o'P.i a{ p$B   firewall_logging="YES"
PC*a vS'Y p   firewall_script="/etc/firewall.rules" 1F6`g hY!B3F
  #丢弃SYNFIN信息包。缺省时设置为”NO”,当设置为”YES”的时候,系统内核将忽略同时设置了syn和fin位的TCP桢(需要内核的支持:options tcp_drop_synfin) $n],o Y.ES*\d
  tcp_drop_synfin="YES" k W:PQ f
  #丢弃ICMP重定向。可以防止DOS攻击或劫持进程(hijack sessions)
U!C`d/f.x\o6vu   icmp_drop_redirect="YES" | N] vFO$\w9n
  icmp_log_redirect="YES" #记录ICMP重定向 cJ'N;ml'}
  #在CISCO路由器上关闭重定向:no ip send-redirects !C-oz2L};K
  log_in_vain="YES" #记录每一个到关闭端口的连接企图。 IuzU$F7C}{i
  accounting_enable="YES" #打开系统审计功能
.A9VH8Y5r)fJ 9kbWQY3A l*wS
  3.修改/etc/sysctl.conf文件,调整IP堆栈
*^2_O zUjO
Ks V4_'q d sz+J   #关闭对广播类型的响应,过滤ICMP响应后,服务器无法ping 通,可以提高部分安全性能
N w'l{:N net.inet.icmp.bmcastecho=0 )|_"?&MpR|pvV
  #对UDP包的校验和进行计算,防止不正确的UDP包的攻击
\*O,Oj!N8B   net.inet.udp.checksum=1
OpE8yC/sKH+d/\   #在默认情况下,操作系统在关闭的端口上接受到TCP SYN段的时候,会发送RST信息包,告诉攻击者这个端口关闭了,导致攻击者继续扫描下一个端口,使端口扫描简单化,浪费了本机CPU时间在DOS上。我们可以使用blackhole来控制对没有socket监听的TCP或者UDP端口接受到连接请求时的行为。 ^VW6NIqC
  #当设置这个选项后,系统将马上丢弃这个包而不发RST包,连接端将看到"Connection reset by peer."
$VWxv5ElNa#^;r"B8]   net.inet.tcp.blackhole=2 !k,yy%uo0U7y
  net.inet.udp.blackhole=1 -?aD(C\
  4.防火墙规则设置 "`^r`Ix7Xj
  尽管按照上面的叙述已经能够形成一定的防护,但是若要实现安全程度更高的主机系统,就要借助于IPFW这样的包过滤软件,通过设置防火墙规则,严格限制对服务器的访问。 q6h1I+I!o@4Su_4s
  过滤ICMP服务,命令格式: |~@ko#p/z7X
  ipfw add pass log icmp from $ip to any [要处理的协议] 8O8TbY*BQ)C/T:M#K3^
  icmp是使用类型规定出站的信息。
|eq$i-v\|   0 echo-reply ping
hC)g;n Ur^O'T/J   3 destination unreachable Any TCP/UDP traffic(主机不可到达) E Df)Y5e'N
  5 redirect routing if not running routing daemon(如果未运行路由守护程序,复位向路由) T6m1C c8`euh9qTz
  8 echo-request ping (入站信息)
ed7s;N Q4o   11 time-exceeded traceroute (traceroute 超时) )\zA]YFb.a
  配置文件的例子:
H,F Ct c,L^)H&wh   ip="你自己的IP"
8M UO1L,]?M   #强制清除所有规则 '[~4Bh{9nFD
  ipfw -f flush
7HJ)N?-rN-Z   ipfw add pass log udp from $ip to any yY(zbXS
  ipfw add pass log icmp from $ip to any icmp 8#接受回答
:e$B(i \}*VW   ipfw add pass log icmp from not $ip to $ip icmp 0#拒绝请求 +N6g\r:L4{)WIO
  ipfw add pass log icmp from not $ip to any icmp 11# traceroute 超时
L5Q2sS ri%E   ipfw add pass log icmp from not $ip to any icmp 3#目标主机不可到达 NJ \7S z
  #SYN、FIN组合的包一般是nmap、queso扫描器使用,所以过滤。
-riL {W4bo'wAt   ipfw add deny log tcp from any to any in tcpflags syn,fin
1U@q5LA5\   #检查通信状态
!f~q_0n6Ny`,B   ipfw add check-state 7O$`[dk
  ipfw add deny tcp from any to any in established ]!Q8O~ TC3h*b5l
  ipfw add allow ip from any to any out keep-state
8U1d!N;uG7?2Q7aF   #允许ident请求 0B"Q+O'X(i,f fCIAR
  ipfw add allow tcp from any to any 113 keep-state setup
PW/A.E`@| rq   5.日志管理 ;^(A%]Ha2w,V#U
  (1)启动日志
@6BM u1m u#TsV   修改/etc/rc.conf文件。使用 "-s -s"标志启动syslogd,防止打开UDP 514端口;
2v J"KY [;n7t_   (2)修改/etc/syslog.conf文件,配置syslogd
N Z`{I ~ A(s+Ry   #可以将本地日志记录到其他主机loghost上:
du%l}(s   [email=*.*@loghost]*.*@loghost[/email] `!Dg5\3ry.o VI%^e
  #为FTP增加日志条目: 4?+SPge K W;lO p
  ftp.* /var/log/ftpd {~e bKk
  #相关命令:touch /var/log/ftpd
a!g*^y'L0ar   #记录SSH连接记录
/le:]`j@ \   security.*;auth.info /var/log/security #记录连接到SSH的日志信息
6S0H#r h!u;P.b   auth.* /var/log/authlog KBV-r;xn
  #使ipfw能够用syslog记录
Sh(g$EKK1g7[0F   !ipfw
N NVb/Y#We0qS   *.* /var/log/ipfw.log 7^'S)V7p?
  (3)使用newsyslog压缩日志
4ia*Ii{$?y }   newsyslog程序能够定时压缩日志文件并清除旧的文件是,freebsd默认安装的,它是从crontab启动的: zG+CW ] ?Lx
  #grep newsyslog /etc/crontab
0_ ukY XW|x   0 * * * * root /usr/sbin/newsyslog f i7r:Zi2Uv
  可以修改/etc/newsyslog.conf以符合你的需求。通常把文件属性从664变为640,不让一般用户查看系统记录。 (H'K7L6~P![3v
  /var/log/authlog root.wheel 640 7 100 * Z (jL ].X+Y,cRi7X
  /var/log/ipfw.log root.wheel 640 3 100 * Z [wl_)IN
  #这会在日志文件达到100K时将它压缩并编号,将mode改成640,chown成root.wheel,并删除旧的日志文件。 -r:U8vyjV c,[!y
  #相关操作:
/R0dj,`l   #cd /var/log
a w5S+_Y|   #chmod g-w,o-r *;chmod a+r wtmp As;Rtq
  #把所有文件的组属性改为wheel的。 m'C&uhIL!G l
  #防止一般用户读日志配置文件
8A.P+NP;J m"z8X0Q|   #chmod 600 /etc/syslog.conf
J6[ s Pa,C.E\   #chmod 600 /etc/newsyslog.conf @#])U1\+l9?N0p
  四、用户管理
%HRW.^[`
~g.T?9{pA gc"o*|   1.限制登录条件 a iX"~I
  (1)把个人用户放到/etc/ftpchroot文件中,把他们限制在自己的HOME目录
1XU1},W u'kT r8v C   (2)修改/etc/shells文件,增加不能用来登录的shell,如passwd或者nologin,赋予仅需要FTP功能的用户以/usr/bin/passwd的shell 阻止他们使用SHELL命令。
U:HTEJ4o#Xh8v   (3)拒绝直接以root身份登录: dz{YHc%OZV
  在/etc/ttys文件中,将"secure"标记改为"insecure"标记,使系统在进入单用户模式时会要求root密码。但是这样以来也为恢复root密码制造了障碍——安全和易用再次形成了矛盾的两个对立面。 VPFBeP:J&M
  console none unknown off insecure sR:?F7t_
  (4)使用 tcp wrapper (/etc/hosts.allow)允许/拒绝访问特定的TCP服务。 v/u*z#]{[4N2zL
  tcp_wrappers 可以在访问者要求服务前先检查/etc/hosts.allow 文件中设定的规则,符合放行规则的才会去启动服务程序,可以达到有条件开放系统服务的目的。
6E$^HYQ `+V   在/etc/host.allow文件中,注释掉"ALL:ALL:allow",去掉其他无关服务访问,增加如下内容:
K#Z5K[@6GI   sshd: localhost : allow
a,T'CwN,e]   sshd: friendlycomputer : allow
lR3o2f&OQ   sshd: all : deny H5H%R0]w[I3a
  另外需要注意的是: J F5eR'}"A Y b G&V
  注意规则的先后顺序,因为tcp_wrappers的规则有first match 的特性,最好把放行的规则写在前面,然后在后面加一条全部禁止的规则; z-sv9_Qy/q
  为避免 DNS 欺骗,规则尽量使用IP表示;
*]M!G;F2P2sCRJ`   FreeBSD缺省的/etc/hosts.allow中第一条规则是 ALL : ALL : allow,自己的规则一定要放在他前面才有效。
hvT0sl:IY7C)M   (5)使用 allowuser/allowgroup SSH配置选项以允许特定的用户和组使用SSH连接。 3kcrw2K%bB.J @:[ y
  (6)限制登录的用户、组以及登录地方,修改/etc/login.access。
uV*K6I_k%uS`   (7)利用login.conf对用户的登录环境和资源许可进行设置。
2P}t7qu(N,n.k   FreeBSD系统使用/etc/login.conf中描述的数据将用户按照登录环境、强制性的资源限制以及记帐管理登分为不同的登录类别,每个用户的登录类别记录在/etc/master.passwd中该用户的设置中。 WZXE~UIl
  每次修改login.conf后,都要进行更新登录数据库的操作:
wn*KV%?.A2b?f WV @   #cap_mkdb /etc/login.conf
8J1U`Z*K_z M P"j1V   由于登录类别保存在master.passwd文件中,通常在使用adduser添加用户的时候设置用户的登录类别,如果要进行修改,必须使用vipw来修改/etc/master.passwd文件中的5个域。 V5aE0n'Pl"w
8z\$yYpi+_
  2.登录环境 R+a1~}Ap

5|({|4kV3}$v   (1)编辑/etc/motd文件,阻止计算机泄露系统信息 4}aK{2XQLk#l
  (2)删除版权信息 Qk'c T8q
  #touch /etc/COPYRIGHT ~FAZ$^6T c(}
  (3)防止系统自动加入信息,修改/etc/rc.conf
Fb-T!af0z   update_motd="NO"
_{D `7h{o#s+A   (4)修改登录提示,编辑/etc/gettytab,找到default:小节,他以下面的文字开头: 7T?g0y7K s
  :cb:ce:ck:lc *Kc:|pZ
  小心的修改r:之间的文字来适应自己的需要。 XoQ `,i&j m b
  3.crontab的问题 7z(AG(f;e+YD
  建议 www、nobody、bind等用户不能使用crontab,建立/etc/cron/allow文件把需要使用的用户放进去,如: i*H'\;^3L3J-w b
  #echo root>/var/cron/allow ?&p:Rx&V{:n^.g
  #chmod 600 /var/cron/allow
i'nKc#rdZ   如果不使用at命令,就关闭这个服务,在/etc/crontab文件中注释掉 CY6`3H[MS
  # */5 * * * * root /usr/libexec/atrun _,}5`"l0Kc,i
  4.保护文件系统 nnb"b&`1wn~L
  (1)锁住文件系统 QW W!\ w4o3IWT W%I
  A.修改/etc/fstab文件,设置系统启动时自动挂接的文件系统,使用nosuid参数挂接/usr 或 /(目的是/sbin)文件系统,尤其是一般用户可以写入的文件系统,应单独划分分区: \uP/O a;U _6O7tI
  /home or /usr/home
%G gOT S6Og   /tmp or /var/tmp
.Ce6fgn   /etc/fstab文件内容:
3kStq+NqO$L[   /dev/sd0s1e /var/tmp ufs rw,nosuid 2 2
_,EJ`Up_   B.搜寻并去除不用的二进制文件的suid位,(尤其是uucp——setgid)
3G h[$SZz9H   C.使用chflags设置变量,例如,给日志文件设置sappnd,给系统二进制文件设置schg标志;
`(U/eDAjAzL   #相关命令: Cw8FV/{"@g+d
  #找出你所有的可写入目录,
:Z `+g&H k6eh2Ts   #find / -perm -0777 -type d -ls
SG(H)ce0cZ@]   找出那些程序是suid 或者sgid的命令:
1H)|:J(vEU   #find / -perm -2000 -ls
|.AQk2\"q1py,l&G8c   #find / -perm -4000 –ls 4|_4EQ&z"lX }6V2S
  (2)文件保护,严格限制系统配置文件权限,只对root用户开放读写权利: };q6I2xq"PmG
  #chflags schg /bin/* h:s2QY6vc y
  #chflags schg /sbin/* y*{*J;RNW!d3?
  #chmod 600 /etc/firewall.rules
W1qU/e3s AI^   #chmod 600 /etc/crontab PA A j"tJC5d Zx0l
  #chmod 600 /etc/newsyslog.conf
v sF+E nE'oG   #chmod 600 /etc/rc.sysctl
z,r"{ L1I9p U,P   #chmod 600 /etc/rc.conf DEjUtCtS~
  #chmod 600 /etc/syslog.conf
Ik|;[tRyH   #chmod 600 /etc/sysctl.conf
f,S!fKq   #防止一般用户读日志文件
2v M$D3{ sgI0O   # chmod 640 /var/log/httpd-access.log )A EcQ K.^@-[1m.t#_
  (3)可以把不是很有用的程序 chmod 000,如uustat,uucico。如果你从来不碰uucp或是PPP和PPPD的话,你绝不会用到他们。如果不用打印机的话,把lpr lprd也chmod 000了吧。 ?$YyR1g
  5.其他相关
t6Ajm/lY   修改计算机相关设置,如BIOS,不允许软盘启动、CDROM启动,即在装载硬盘驱动之前不允许其他媒介启动,设置BIOS密码,保护机器物理安全。 *N/`4Y }R a#i
  五、配置SSH
WD-X"AY ?@$c8k6VH!_
  修改/etc/ssh/ssh_config文件 9M$?Ox6O:lH5mR]
  (1)使用protocol 2代替protocol 1,SSH2更加安全,可以防止攻击者通过修改携带的版本banner来劫持(hijacking)启动会话进程并降低到protocol 1。注释掉protocol 2,1 改用下面语句代替:
!x2~$E_oB$}8g8d   protocol 2 VPv3a;z!e
  (2)合理设置最大连接数量, 防止DOS攻击
~,y5S,PI _   MaxStartups 5:50:10
!M{.yA\\ {w b   (3)禁止远程root和空密码登录,建议关闭X11forwording atjKeN;b
  X11Forwarding no :zk,r7kI |
  (4)强烈建议不使用静态密码,而使用DSA 或RSA KEY,修改如下内容可以关闭使用密码认证:
gwZ M&f V   PasswordAuthentication no G@{?N.}:E6f
  (5)可以限制组或光是单个用户访问shell
gF6ab_ \8`+^9y   AllowGroups wheel
i$M6@%p5x;q"o   AllowUsers xundi
rZ%Rd[{*rB/e   (6)使用TCP wrappers来限制一些访问,修改/etc/hosts.allow文件,注释掉"ALL : ALL : allow",增加如下内容:
El;H&qo   sshd:localhost:allow
wyO'o"jEp;^   sshd:friendlcomputer:allow
.mq\ g-ea%D   sshd:all : deny
F c'ZV |0_"N n9Rk   #相关命令: 4_)Z-E3c%ay{
  #chsh -s /sbin/nologin user
-s6P3wZz ?| W   六、总结和补充 R o_,{c _:Or
  使用最新版本的操作系统;推荐使用STABLE或者最新RELEASE分支。 q3\&cr;f4T
  修改系统前,首先备份系统。 0r/l9F Q,J|d
  修改/etc/inetd.conf和rc.conf关闭可有可无和不必要的服务。
5__'^4N2s Y2u   立即禁用telnet,使用SSH代替之——OpenSSH在freebsd安装时即被包括。 ;q'|,PA!QcJ8u
  使用SSH2协议中内建的sftp服务代替标准的ftp
kT7P*T2? H   建立SSH公钥防止口令传输。
Cc6~ N'u7g&mT?   使用包过滤软件类如ipfw或者ipfilter限制服务的获取。 n? G,{~G.D-s B
  禁止不需要的帐户
bW{4ch hz(m)J   应用组和用户的概念
M?k ctK$OC1}2n   设置正确的文件权限
Q bUNw%@/i,A   以chroot环境运行具有潜在危险的程序,例如bind
,XW8BS:S'rH]   使用sudo,非严格root级访问 f-Ed [f2|w
  限制某些强大命令的访问
X6nVGC]b   如何检查你的安全性 D5wy ^%H ^eUg ?\N0u
  /usr/ports/security/nmap 对自己进行端口扫描,以发现异常服务
RT p ]3sBsY'?!M}   /usr/ports/security/whisker 对WEB服务器进行审计,防止潜在破坏 c%C|1Yg U kh
  /usr/ports/security/tripwire- Q$QAS {2h|-VU
  /usr/ports/security/snort
Q8AJ4i+Q Yp   日常操作
r"~$\h^}d,B-ZZ;N?   (1)经常查看[url=http://www.freebsd.org/security/index.html]http://www.freebsd.org/security/index.html[/url]的安全公告;
i,s6A d smFS3HE   (2)订阅security bugtraq和freebsd官方安全邮件列表了解安全动态; us+m!G,D cH5[9s(~
  (3)每天查看系统日志,关于检查系统日志,你可以通过其他工具增加多信息的捕获,如snort可以比较完全的记录信息; WTo q9a)~
  (4)如果你的硬盘够大,信息处理够快,可以定时使用 netstat -an >> /.../.../netstat.log来记录信息,因为netstat能记录连接信息,所以如有些后门日志不能记录,但netstat却在一定时间里总有连接记录。
g+u5].N,K&]   (5)如果你对文件系统有原始的记录,可以定时使用一些系统完整性检查工具进行检验; N0yP8DpeK#o
  (6)如果你有防火墙,经常查看防火墙信息。

taocsgs 发表于 2006-11-29 18:26

dddddddddd

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.