微信订阅号二维码

本页内容二维码:

本栏目热门内容
  • Acrobat虚拟PDF打印机执行...
  • LINKSYS交换机登录WEB界面...
  • 又一次RAID 5阵列故障记录...
  • 解决VMware vSphere ESXi ...
  • 修改CentOS发行信息以绕过...
  • Windows Server 2008 重命...
  • 解决虚拟化运行的 Windows...
  • Intel Nehalem CPU Errata...
  • 某卢瑟装机搞得一踏糊涂,...
  • 解决MySQL Cluster 备份总...
  • MegaCli安装及使用杂记
  • 解决WSUS显示客户端不全的...
  • 解决 VMWare vSphere 6 客...
  • 解决Windows Server 2008 ...
  • 本站服务器RAID 5阵列双硬...
  • 网站数据库从MySQL 5.0升...
  • 解决MariaDB使用Percona X...
  • 修改arpwatch使通知邮件主...
  • Linux 下的分区调整工具GP...
  • DELL PowerEdge 820 报CPU...
  • 程序员漫画:如何用8种不...
  • 解决很好用的多合一即时通...
  • 使用 GParted 进行虚拟机...
  • 解决Samba WINS服务的错误...
  • 解决Squid代理HTTP时在浏...
  • 用Delphi编写使用到ADO的D...
  • 网站简单改版
  • 索尼系列手提电脑备份失败...
  • Dell R900服务器 BMC firm...
  • 更多...

    修改arpwatch使通知邮件主题显示IP地址(我的CentOS 源码包修改实例)

    作者:Sender  来源:WaveCN.com  发布日期:2014-11-19  最后修改日期:2014-11-19

    一直在用arpwatch这个服务,但它发通知邮件时只有在IP地址能解释为主机名时才在邮件主题中出现,对于不能解释为主机名的IP地址则不显示。这样实在不方便。因为对于内网,并不一定允许客户端自动登记到DNS。于是着手进行小修改。

    1、准备一套CentOS的开发环境。这个不啰嗦了。

    2、下载源码包。需要注意,对于CentOS 5,arpwatch是和tcpdump、libpcap的源码放在一个包里面的。因此,我们首先要下载tcpdump 的源码包:

    wget ftp://frisal.switch.ch/pool/4/mirror/redhat/linux/enterprise/5Server/en/os/SRPMS/tcpdump-3.9.4-15.el5.src.rpm
    

    3、安装源码包:

    rpm -ivh  tcpdump-3.9.4-15.el5.src.rpm
    

    4、转到临时文件夹,解压arpwatch的源码包

    cd /tmp
    tar zxf /usr/src/redhat/SOURCES/arpwatch-2.1a13.tar.gz
    

    5、修改代码,文件名是report.c。修改前先备份。假设备份文件名为report.old.c,修改完后通过如下命令生成patch文件。

    diff -Naur report.old.c report.c > arpwatch-report.patch
    

    6、复制 arpwatch-report.patch 文件到/usr/src/redhat/SOURCES

    cp arpwatch-report.patch /usr/src/redhat/SOURCES
    

    7、修改patch文件,最后得到如下:

    [root@centos5builder SOURCES]# cat arpwatch-report.patch
    --- arpwatch-2.1a10/report.c    2014-11-16 22:17:40.000000000 +0800
    +++ arpwatch-2.1a10/report.c    2014-11-16 22:18:08.000000000 +0800
    @@ -306,7 +306,7 @@
            if (!isdigit(*hn))
                    (void)fprintf(f, "Subject: %s (%s)\n", title, hn);
            else {
    -               (void)fprintf(f, "Subject: %s\n", title);
    +               (void)fprintf(f, "Subject: %s (%s)\n", title, intoa(a));
                    hn = unknown;
            }
            (void)putc('\n', f);
    

    8、修改/usr/src/redhat/SPECS/tcpdump.spec,加入arpwatch-report.patch的处理。注意是两个地方,前面的定义和后面的执行。修改前后的比较结果如下:

    --- tcpdump.spec        2009-11-11 23:28:34.000000000 +0800
    +++ tcpdump.spec     2014-11-19 22:20:20.000000000 +0800
    @@ -57,6 +57,7 @@
     Patch41: arpwatch-addr.patch
     Patch42: arpwatch-dir-man.patch
     Patch43: arpwatch-ethcodes.patch.bz2
    +Patch44: arpwatch-report.patch
    
     Patch50: libpcap-shared.patch
     Patch52: tcpdump-3.7.2-s390.patch
    @@ -189,6 +190,7 @@
     %patch41 -p1 -b .mailuser
     %patch42 -p1 -b .dirman
     %patch43 -p1
    +%patch44 -p1 -b .report
     popd
    
     pushd tcpslice
    

    9、重建包,等候重建过程完成。

    rpmbuild -ba ./tcpdump.spec
    

    10、安装。

    rpm -ev arpwatch-2.1a13-22.el5.x86_64
    cd /usr/src/redhat/RPMS/x86_64
    rpm -ivh  arpwatch-2.1a13-22.x86_64.rpm
    

    11、还原rpm备份的配置文件,其中,arp.dat是运行记录,不还原也会重新生成;arpwatch是运行参数,如果之前自己改动过就要还原。

    cd /var/lib/arpwatch/
    mv arp.dat.rpmsave  arp.dat
    提示覆盖选择是。
    
    cd /etc/sysconfig
    mv arpwatch.rpmsave arpwatch
    提示覆盖选择是。
    

    12、启用和启动服务

    chkconfig arpwatch on
    service arpwatch start
    

    CentOS 6 大同小异。差异点:

    1、source rpm 安装后位置在/root/rpmbuild下,创建的包也会放在这个位置下面。

    2、arpwatch有独立的src包,不再和tcpdump捆绑。

    3、由于有独立的src包,因此配置文件名是arpwatch.spec而不是tcpdump.spec,但修改的内容基本相同。

    欢迎关注微信公众号后私信讨论文章内容!
    本栏目相关
  •  2012-06-07 修改CentOS发行信息以绕过Dell服务器BIOS更新和DSET支持工具的操作系统检查
  •  2014-11-19 修改arpwatch使通知邮件主题显示IP地址(我的CentOS 源码包修改实例)
  • 返回页首