| 环境 RedHat 7.3 在网上越来越多的 hacker 的出现, 越来越多的高手出现的情况下.如何才能确保自己能够保存一份完整的 log 呢?稍微有点概念的 hacker 都知道,进入系统后的第一见事情就是去清理 log, 而发现入侵的最简单最直接的方法就是去看系统纪录文档.现在我们来说说如何设定一个安全的 log 服务器. 想想看,假如入侵者无法连崮?log 服务器,又如何能改您的 log 呢?现在我们来学习如何设定一个无 ip 的 log 服务器. 现在,来介绍一下如何用 Snort 来做三件事情∶ Stealth sniffer stealth NIDS porbe stealth logger 这一切都是用在一台没有 ip 的服务器上面的. NIDS 是 Network Intrusion Dectection Server 的简称,也就是说入侵检测服务器. 为什么要 stealth 呢? 在 internet 中运行任何一种服务,都是有一定的危险的.不管是 http 也好, ftp 也好, telnet 也好,总之都会有机会被 hack 入侵. stealth logger 的独特性能够让我们在接收资料的同时,不发送任何的资料.这样外界的电脑(被 hack 入侵的电脑)就根本无法去更改 loger server 所收到的信息.也就是说确保了我们信息的完整性,连同原始性. 为了确保 log 服务器的安全,最好不要将 log 服务器连接在网路中.也就是说,当您需要检查 logger 服务器上得东西的时侯,您需要到电脑前,打开屏幕.而不是远端 login 进来.但是,假如说您一定要连接网路的话的话,那么请用两个的介面来做.也就是说两片网卡.并且注意,第一, IP forwarding 一定要关闭.第二就是,用来做 stealth logger 的介面是没有 ip 的一张网卡,这张网卡必须不能跟另外一个有 ip 的网卡在同一网路下面. 设定 首先当然是确定您的网卡安装无误,并且能够被 kernel 抓到.然后把网卡所需要的 module 写到 /etc/modules.conf 文档中. 现在我们来设定一个没有 ip 的网卡介面. 编辑文档 /etc/sysconfig/network-scripts/ifcfg-eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 USERCTL=no ONBOOT=yes BOOTPROTO= BROADCAST= NETWORK= NETMASK= IPADDR= 存档后,用 ifconfig 来 active 我们的 eth0 介面. 初试 stealth 这里我们用到了 snort 这个程式.假如您的电脑中没有这个程式,能够到 www.snort.org 下载. 现在我们运行 snort -dvi eth0 这里 -d 的选项告诉 snort 对资料进行 decode (解码) -v 告诉 snort 将结果显示在屏幕上面 -i 则是指定所需要的 interface 能够用 -C 选项告诉 snort 只显示 ASCII 部份. 忽略 hexadecimal 资料. $snort -dviC eth0 Log directory= /var/log/snort Initializing Network Interface eth0 kernel filter, protocol ALL, TURBO mode (63 frames), raw packet socket --== Initializing Snort ==-- Decoding Ethernet on interface eth0 --== Initialization Complate ==-- -*> Snort! <*- Version 1.8.4 (Build 99) By Martin Roesch (roesch@sourcefire.com, www.snort.org) ...... ...... NIDS(入侵侦测) 入侵检测本身是一件很复杂的事情. snort 本身也提供了强大的入侵检测的功能. 这里我只做一个简单的介绍,好让大家有一个概念.假如真正实体去做一个 NIDS 的话.需要些更复杂的动作.例如设定更完善的 rules, 定时更新 snort.conf 中所定义的 rules (当新的攻击方式出现以后,要及时更新) 首先,我们需要更改一下 /etc/snort/snort.conf 具体需要参照您自己的机器来设定. #设定 log 存放的地方 config logdir: /var/log/snort #设定网路 var HOME_NET 192.168.1.0/24 var EXTERNAL_NET any var SMTP $HOME_NET var HTTP_SERVERS $HOME_NET var SQL_SERVERS $HOME_NET var DNS_SERVERS 192.168.1.250/32 var RULE_PATH ./ #设定 preprocessors preprocessor frag2 preprocessor stream4: detect_scans preprocessor stream4_reassemblt preprocessor portscan: $HOME_NET 4 3 portscan.log #设定 output output database: log, mysql, user=root dbname-snort host=localhost #rules alert tcp $HOME_NET 7161 -> $EXTERNAL_NET any (msg: "MISC Cisco Catalyst Remote Access"; flags: SA; reference:arachnids, 129; reference:cve, CVE-1999-0430; classtype:bad-unknow; sid:513; rev:1;) #设定 patch , 这些都是些附加的 rules 的文档 include $RULE_PATH/bad-traffic.rules include $RULE_PATH/exploit.rules include $RULE_PATH/scan.rules include $RULE_PATH/ftp.rules #这些 rule 其实更有很多.您能够自己去写,也能够找人家写好的下载拿来用. 现在让我们把 snort 跑起来∶ snort -c /etc/snort/snort.conf -D -i eth0 现在 snort NIDS 的模式跑起来了. 在 default 的情况下∶ alerts 会放在 /var/log/snort/alert 中 port-scanning 会放在 /var/log/snort/portscan.log 当您真正跑 NIDS 的时侯,需要把 snort 以 daemon 的模式来跑. 假如您安装的是 rpm 的东西,那么 rpm 文档中已包含了一个 snortd 的文档,并且会帮您安装在 /etc/rc.d/init.d/ 下面. 当您设定好 snort 的 configure 文档以后,只要用 chkconfig 把 snortd 打开就能够了: 加入 snortd chkconfig --add snortd 打开 snortd chkconfig snortd on 或 chkconfig --level 3 snortd on 这里的 level 请自行更改到您所跑的 runlevel 您能够用 cat /etc/inittab | grep id 来看自己在哪个 runlevel 上面. cat /etc/inittab | grep id id:5:initdefault: 这里就是说跑在 run level 5 上面. 设定服务器 我们需要对服务器做一些设定,让服务器把 log 送到我们的 logger 服务器去. 首先,我们需要设定 /etc/syslog.conf 把 log 送到一个有效的,但是不存在的 ip 下面.例如我们的网路是 192.168.1.0/24 其中并没有 192.168.1.123 这台机器,也就是说这个 ip 实际上是空的.我们就把 log 指向这里.您能够指向任意一个空的有效 ip. vim /etc/syslog.conf 加入 *.info @192.168.1.123 假如您的系统是用 syslog-ng 的话 vim /etc/syslog-ng/syslog-ng.conf destination d_loghost { udp(ip(192.168.123) port (514)); }; filter f_info { level(info); }; log {filter(f_info); destination(d_loghost);}; 我们还需要加入 static ARP entry 才能够. 假如您的网路只是接了记个 Hub 而已, 那么 ARP 地址相同能够好象 ip 相同,设定成虚构的. 假如您有连结 switch, 您需要加入 log 服务器的真实 MAC 地址. 我们这里加入我们 logger 服务器的真实 MAC 地址就能够了. arp -s 192.168.1.123 00:D0:B7:DB:BF:95 在 Logger 服务器设定 snort /etc/snort/snort.conf var EXTERNAL_NET any #等于 snort -d config dump_payload #等于 snort -C config dump_chars_only #设定 log 存放的 path config logdir: /var/log/snort # frag2 所做的动作就是把 fragmented 给我们 re-assembly preprocessor frag2 log udp 192.168.1.1/32 any -> 192.168.1.123/32 514 (logto: "logged-packets";)
文章整理:西部数码--专业提供域名注册、虚拟主机服务 相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源 网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧 行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒 网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它 服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护 软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer 网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash 程序设计 Java技术 C/C++ VB delphi 网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术 操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD |
如何设定安全log服务器呢?
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!



