×

libcapwindows

包含libcapwindows的词条

admin admin 发表于2023-03-27 20:22:09 浏览61 评论0

抢沙发发表评论

本文目录一览:

如何在 64 位 Ubuntu 15.10 中编译最新版 32 位 Wine 1.7.53

下载源码包(直接下载地址在此)并解压 tar -xf wine-1.7.53。然后,安装如下依赖。

sudoapt-get install build-essential gcc-multilib libx11-dev:i386 libfreetype6-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libxshmfence-dev:i386 libxxf86vm-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcomposite-dev:i386 libglu1-mesa-dev:i386 libosmesa6-dev:i386 libpcap0.8-dev:i386 libdbus-1-dev:i386 libncurses5-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-dev:i386 liblcms2-dev:i386 gstreamer0.10-plugins-base:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig1-dev:i386 libgsm1-dev:i386 libtiff5-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libldap2-dev:i386 libgnutls-dev:i386 libjpeg-dev:i386

现在切换到 wine-1.7.53 解压后的文件夹,并输入:

./configure

make

sudomake install

同样地,你也可以给配置脚本指定 prefix 参数。以普通用户安装 wine:

./configure --prefix=$HOME/usr/bin

make

make install

这种情况下,Wine 将会安装在$HOME/usr/bin/wine,所以请检查$HOME/usr/bin在你的PATH变量中。

安装jsvc

安装jsvc(利用tomcat方式):

进入tomcat下面的bin目录:

[root@tomcat ~]# cd /opt/tomcat/bin/

[root@tomcat bin]# tar xf commons-daemon-native.tar.gz

[root@tomcat bin]# cd commons-daemon-1.0.15-native-src/unix/

[root@tomcat unix]# ./configure --with-java=$JAVA_HOME

...

*** All done ***

Now you can issue "make"                      

[root@tomcat unix]# make

编译完成后,会在当前文件夹生成一个jsvc的文件,将它拷贝到/opt/tomcat/bin/下:

tomcat目录可自行设置

[root@tomcat unix]# cp jsvc /opt/tomcat/bin/

安装jsvc(无tomcat方式,利用commons-daemon-native.tar.gz和commons-daemon-1.1.0.jar)

将commons-daemon-native.tar.gz放到某个目录,这里放到/opt/jsvc

[root@localhost jsvc]# cd /opt/jsvc

[root@localhost jsvc]# ll

total 404

-rw-r--r--. 1 root root  25145 Aug 15 23:03 commons-daemon-1.1.0.jar

drwxr-xr-x. 4 root root    109 Aug 15 23:03 commons-daemon-1.1.0-native-src

-rw-r--r--. 1 root root 207125 Aug 15 23:03 commons-daemon-1.1.0-native-src.tar.gz

-rwxr-xr-x. 1 root root 174312 Aug 15 23:05 jsvc

解压commons-daemon-1.1.0-native-src.tar.gz

[root@localhost jsvc]# tar -xvf commons-daemon-1.1.0-native-src.tar.gz

commons-daemon-1.1.0-native-src/LICENSE.txt

commons-daemon-1.1.0-native-src/RELEASE-NOTES.txt

commons-daemon-1.1.0-native-src/NOTICE.txt

commons-daemon-1.1.0-native-src/README

commons-daemon-1.1.0-native-src/unix/

commons-daemon-1.1.0-native-src/unix/man/

commons-daemon-1.1.0-native-src/unix/native/

commons-daemon-1.1.0-native-src/unix/support/

commons-daemon-1.1.0-native-src/unix/configure.in

commons-daemon-1.1.0-native-src/unix/INSTALL.txt

commons-daemon-1.1.0-native-src/unix/man/jsvc.1.xml

commons-daemon-1.1.0-native-src/unix/man/README

commons-daemon-1.1.0-native-src/unix/native/debug.c

commons-daemon-1.1.0-native-src/unix/native/.indent.pro

commons-daemon-1.1.0-native-src/unix/native/locks.h

commons-daemon-1.1.0-native-src/unix/native/help.c

commons-daemon-1.1.0-native-src/unix/native/replace.c

commons-daemon-1.1.0-native-src/unix/native/java.c

commons-daemon-1.1.0-native-src/unix/native/replace.h

commons-daemon-1.1.0-native-src/unix/native/help.h

commons-daemon-1.1.0-native-src/unix/native/signals.c

commons-daemon-1.1.0-native-src/unix/native/jsvc-unix.c

commons-daemon-1.1.0-native-src/unix/native/location.h

commons-daemon-1.1.0-native-src/unix/native/locks.c

commons-daemon-1.1.0-native-src/unix/native/home.h

commons-daemon-1.1.0-native-src/unix/native/debug.h

commons-daemon-1.1.0-native-src/unix/native/java.h

commons-daemon-1.1.0-native-src/unix/native/version.h

commons-daemon-1.1.0-native-src/unix/native/arguments.h

commons-daemon-1.1.0-native-src/unix/native/dso.h

commons-daemon-1.1.0-native-src/unix/native/home.c

commons-daemon-1.1.0-native-src/unix/native/Makefile.in

commons-daemon-1.1.0-native-src/unix/native/location.c

commons-daemon-1.1.0-native-src/unix/native/signals.h

commons-daemon-1.1.0-native-src/unix/native/dso-dlfcn.c

commons-daemon-1.1.0-native-src/unix/native/dso-dyld.c

commons-daemon-1.1.0-native-src/unix/native/jsvc.h

commons-daemon-1.1.0-native-src/unix/native/arguments.c

commons-daemon-1.1.0-native-src/unix/Makedefs.in

commons-daemon-1.1.0-native-src/unix/support/config.guess

commons-daemon-1.1.0-native-src/unix/support/apsupport.m4

commons-daemon-1.1.0-native-src/unix/support/config.sub

commons-daemon-1.1.0-native-src/unix/support/apfunctions.m4

commons-daemon-1.1.0-native-src/unix/support/apjava.m4

commons-daemon-1.1.0-native-src/unix/Makefile.in

commons-daemon-1.1.0-native-src/unix/configure

commons-daemon-1.1.0-native-src/unix/man/fetch.sh

commons-daemon-1.1.0-native-src/unix/support/mkdist.sh

commons-daemon-1.1.0-native-src/unix/support/install.sh

commons-daemon-1.1.0-native-src/unix/support/buildconf.sh

commons-daemon-1.1.0-native-src/windows/

commons-daemon-1.1.0-native-src/windows/apps/

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/

commons-daemon-1.1.0-native-src/windows/include/

commons-daemon-1.1.0-native-src/windows/resources/

commons-daemon-1.1.0-native-src/windows/xdocs/

commons-daemon-1.1.0-native-src/windows/src/

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/prunmgr.c

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/Makefile

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/prunmgr.manifest

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/prunmgr.h

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/prunsrv.manifest

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/Makefile

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/prunsrv.c

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/prunsrv.h

commons-daemon-1.1.0-native-src/windows/include/console.h

commons-daemon-1.1.0-native-src/windows/include/cmdline.h

commons-daemon-1.1.0-native-src/windows/include/apxwin.h

commons-daemon-1.1.0-native-src/windows/include/Makefile.inc

commons-daemon-1.1.0-native-src/windows/include/javajni.h

commons-daemon-1.1.0-native-src/windows/include/gui.h

commons-daemon-1.1.0-native-src/windows/include/handles.h

commons-daemon-1.1.0-native-src/windows/include/service.h

commons-daemon-1.1.0-native-src/windows/include/registry.h

commons-daemon-1.1.0-native-src/windows/include/log.h

commons-daemon-1.1.0-native-src/windows/include/rprocess.h

commons-daemon-1.1.0-native-src/windows/resources/license.rtf

commons-daemon-1.1.0-native-src/windows/xdocs/index.xml

commons-daemon-1.1.0-native-src/windows/src/javajni.c

commons-daemon-1.1.0-native-src/windows/src/mclib.h

commons-daemon-1.1.0-native-src/windows/src/console.c

commons-daemon-1.1.0-native-src/windows/src/service.c

commons-daemon-1.1.0-native-src/windows/src/handles.c

commons-daemon-1.1.0-native-src/windows/src/utils.c

commons-daemon-1.1.0-native-src/windows/src/registry.c

commons-daemon-1.1.0-native-src/windows/src/mclib.c

commons-daemon-1.1.0-native-src/windows/src/private.h

commons-daemon-1.1.0-native-src/windows/src/cmdline.c

commons-daemon-1.1.0-native-src/windows/src/gui.c

commons-daemon-1.1.0-native-src/windows/src/rprocess.c

commons-daemon-1.1.0-native-src/windows/src/log.c

commons-daemon-1.1.0-native-src/windows/README

commons-daemon-1.1.0-native-src/windows/apps/prunmgr/prunmgr.rc

commons-daemon-1.1.0-native-src/windows/apps/prunsrv/prunsrv.rc

commons-daemon-1.1.0-native-src/windows/resources/susers.bmp

commons-daemon-1.1.0-native-src/windows/resources/commons.bmp

commons-daemon-1.1.0-native-src/windows/resources/procruns.ico

commons-daemon-1.1.0-native-src/windows/resources/procrunr.ico

commons-daemon-1.1.0-native-src/windows/resources/procrunw.ico

[root@localhost jsvc]# ls

commons-daemon-1.1.0.jar  commons-daemon-1.1.0-native-src  commons-daemon-1.1.0-native-src.tar.gz

进入commons-daemon-1.1.0-native-src/unix目录

[root@localhost jsvc]# cd *src

[root@localhost commons-daemon-1.1.0-native-src]# ls

LICENSE.txt  NOTICE.txt  README  RELEASE-NOTES.txt  unix  windows

[root@localhost commons-daemon-1.1.0-native-src]# cd unix

[root@localhost unix]# ls

configure  configure.in  INSTALL.txt  Makedefs.in  Makefile.in  man  native  support

查找当前环境java_home目录

[root@localhost unix]# find / -name java

/etc/pki/ca-trust/extracted/java

/etc/pki/java

/etc/alternatives/java

/var/lib/alternatives/java

/usr/bin/java

/usr/local/zookeeper-3.4.12/contrib/loggraph/src/java

/usr/local/zookeeper-3.4.12/contrib/fatjar/src/java

/usr/local/zookeeper-3.4.12/contrib/ZooInspector/src/java

/usr/local/zookeeper-3.4.12/recipes/election/src/java

/usr/local/zookeeper-3.4.12/recipes/queue/src/java

/usr/local/zookeeper-3.4.12/recipes/lock/src/java

/usr/local/zookeeper-3.4.12/src/contrib/rest/src/java

/usr/local/zookeeper-3.4.12/src/contrib/loggraph/src/java

/usr/local/zookeeper-3.4.12/src/contrib/zooinspector/src/java

/usr/local/zookeeper-3.4.12/src/contrib/fatjar/src/java

/usr/local/zookeeper-3.4.12/src/recipes/election/src/java

/usr/local/zookeeper-3.4.12/src/recipes/queue/src/java

/usr/local/zookeeper-3.4.12/src/recipes/lock/src/java

/usr/local/zookeeper-3.4.12/src/java

/usr/java

/usr/java/jdk1.8.0_171-amd64/bin/java

/usr/java/jdk1.8.0_171-amd64/jre/bin/java

检查java环境是否正确

[root@localhost unix]# ./configure --with-java=/usr/java/jdk1.8.0_171-amd64

*** Current host ***

checking build system type... x86_64-pc-linux-gnu

checking host system type... x86_64-pc-linux-gnu

checking cached host system type... ok

*** C-Language compilation tools ***

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking for ranlib... ranlib

checking for strip... strip

*** Host support ***

checking C flags dependant on host system type... ok

*** Java compilation tools ***

checking JAVA_HOME... /usr/java/jdk1.8.0_171-amd64

checking for JDK os include directory...  linux

gcc flags added

checking how to run the C preprocessor... gcc -E

checking for grep that handles long lines and -e... /usr/bin/grep

checking for egrep... /usr/bin/grep -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking sys/capability.h usability... no

checking sys/capability.h presence... no

checking for sys/capability.h... no

configure: WARNING: cannot find headers for libcap

*** Writing output files ***

configure: creating ./config.status

config.status: creating Makefile

config.status: creating Makedefs

config.status: creating native/Makefile

*** All done ***

Now you can issue "make"

输入make命令进行编译

[root@localhost unix]# make

(cd native; make  all)

make[1]: Entering directory `/opt/jsvc/commons-daemon-1.1.0-native-src/unix/native'

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c jsvc-unix.c -o jsvc-unix.o-libcapwindows

jsvc-unix.c: In function ‘run_controller’:

jsvc-unix.c:1304:20: warning: assignment from incompatible pointer type [enabled by default]

     act.sa_handler = controller;

                    ^

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c arguments.c -o arguments.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c debug.c -o debug.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c dso-dlfcn.c -o dso-dlfcn.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c dso-dyld.c -o dso-dyld.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c help.c -o help.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c home.c -o home.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c java.c -o java.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c location.c -o location.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c replace.c -o replace.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c locks.c -o locks.o-libcapwindows

gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/java/jdk1.8.0_171-amd64/include -I/usr/java/jdk1.8.0_171-amd64/include/linux -c signals.c -o signals.o-libcapwindows

ar cr libservice.a arguments.o debug.o dso-dlfcn.o dso-dyld.o help.o home.o java.o location.o replace.o locks.o signals.o-libcapwindows

ranlib libservice.a

gcc   jsvc-unix.o libservice.a -ldl -lpthread -o ../jsvc

make[1]: Leaving directory `/opt/jsvc/commons-daemon-1.1.0-native-src/unix/native'

编译完成,查看目录会生成jsvc文件,将jsvc拷贝到上级目录

[root@localhost unix]# ls

config.log  config.nice  config.status  configure  configure.in  INSTALL.txt  jsvc  Makedefs  Makedefs.in  Makefile  Makefile.in  man  native  support-libcapwindows

[root@localhost unix]# cp jsvc ../../

java编程:听说有个叫网络嗅探器的东西,请问原理是 怎么做出来的啊?

Sniffer啊,自己去查,不想大片转贴了。

主要原理是利用网卡的混杂模式,和以太网自身的特点进行的。

java写的话用 JPACAP

Jpcap是一个能够抓取与发送网络数据包的Java组件。可以使用Jpcap从一个网络接口获取数据包,然后在Java中对它们进行分析和显示。同样也可以通过一个网络接口发送任意数据包。Jpcap当前能够 捕获以太网,IPv4,IPv6,ARP/RARP,TCP,UDP和ICMPv4数据包。-libcapwindows

Jpcap实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,Jpcap调用wincap/libcap,而给Java语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,Jpcap支持FreeBSD3.x,Linux RedHat6.1, Fedora Core4,Solaris,and Microsoft Windows 2000/XP等系统。-libcapwindows

Jpcap的整个结构大体上跟wincap/libpcap是很相像的,例如NetworkInterface类对应wincap的 typedef struct_ADAPTER ADAPTER,getDeviceList()对应pcap_findalldevs()等等。-libcapwindows

Jpcap主要的类有如下几个:

1.NetworkInterface

该类的每一个实例代表一个网络设备,一般就是网卡。这个类只有一些数据成员,除了继承自java.lang.Object的基本方法以外,没有定义其它方法。

2.JpcapCaptor

该类提供了一系列静态方法实现一些基本的功能。该类一个实例代表建立了一个与指定设备的链接,可以通过该类的实例来控制设备,例如设定网卡模式、设定过滤关键字等等。

3.JpcapSender

该类专门用于控制数据包的发送。

4.Packet

这个是所有其它数据包类的父类。Jpcap所支持的数据包有:

ARPPacket、DatalinkPacket、EthernetPacket、ICMPPacket、IPPacket、TCPPacket、UDPPacket。

centos7 2t以上的硬盘怎么写自动安装kickstart

方法/步骤

1

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行。-libcapwindows

2

服务器或者电脑都支持PXE启动(从网卡启动),在BIOS上默认是有安装DHCP客户端和tftp客户端,所以可以利用这个来实现网络自动化安装。 从网卡启动,dhcp获取到IP,然后tftp去传递linux的内核,并启动内核。内核启动就会去加载ks文件,我们只要把安装的内容写入ks文件中就可以了。(其中ks文件中会有挂载nfs共享的RHEL/Centos安装所需的包)-libcapwindows

3

安装dhcp服务:

yum -y install dhcp

如下图:

4

配置dhcp服务:

cd /etc/dhcp/

vim dhcpd.conf

ddns-update-style none;

#固定格式

subnet 192.168.122.0 netmask 255.255.255.0 {

#定义dhcp应用的网络

option routers 192.168.122.90;

#设置路由

option subnet-mask 255.255.255.0;

#设置掩码

option domain-name "example.com";

#设置所属的域

option domain-name-servers 192.168.122.11;

#设置名字服务器的IP,如果没有名字服务器推出来的主机名跟预期的不一样

pool {

range 192.168.122.12 192.168.122.89;

}

#设置地址池,可以设置多个地址池

filename "/pxelinux.0";

#设置文件共享

next-server 192.168.122.11;

#设置共享的服务器

host centos6_1 {

hardware ethernet 52:54:00:e4:da:aa;

fixed-address 192.168.122.12;

}

}

#IP与MAC绑定,这个事先要知道MAC,不知道IP就会随机分配

如下图:

5

service dhcpd start #启动dhcp服务tail -f /var/log/messages #跟踪日志,查看是否报错

netstat -lntup | grep 67 #查看端口是否启动

6

安装tftp-server:

yum -y install tftp-server

tftp在centos6是依赖于xinetd服务的,所以使用yum安装,依赖会被自动安装

如下图:

7

配置tftp服务:

vim /etc/xinetd.d/tftp

# default: off

# description: The tftp server serves files using the trivial file transfer \

# protocol. The tftp protocol is often used to boot diskless \

# workstations, download configuration files to network-aware printers, \

# and to start the installation process for some operating systems.

service tftp

{

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/lib/tftpboot

disable = no

per_source = 11

cps = 100 2

flags = IPv4

}

8

设置tftp的共享配置文件:

cd /var/lib/tftpboot/

mkdir pxelinux.cfg

cd pxelinux.cfg

vim default

default linux

prompt 0

timeout 2

label linux

kernel vmlinuz

append ksdevice=eth0 load_ramdisk=1 initrd=initrd.img network ks=

9

启动xinetd服务,就启动了tftp服务

service xinetd start

netstat -lntpd | grep 69 #查看端口是否启动

需要下载pxelinux.0放在/var/lib/tftpboot/的目录下,或者安装syslinux,也会有这个文件的

yum -y install syslinux

安装完,文件路径是:/usr/share/syslinux/pxelinux.0

将光盘里面的ioslinux目录下的vmlinuz和initrd.img复制到/var/lib/tftpboot/

确定这个目录的所有文件都有读执行的权限就可以了

service rpcbind restart #重启端口映射服务service xinetd restart #重启xinetd服务

10

安装httpd服务:

yum -y groupinstall "Web Server" #终端显示语言是英文

或者

yum -y groupinstall "万维网服务器" #终端显示语言是中文

启动服务:service httpd start

11

安装nfs:

yum -y install nfs-utils

vim /etc/exports

/var/ftp/pub 192.168.122.0/24(ro,sync,no_root_squash)

启动服务:

service rpcbind restart #重启端口映射服务

service nfs start

12

kickstart的文件可以手动写,也可以使用system-config-kickstart命令来生成,需要安装system-config-kickstart.noarch这个包。

system-config-kickstart

最后保存的文件可以复制到/var/www/html/下 workstartion.cfg

text

install

keyboard us

lang en_US

selinux --enforcing

#langsupport --default en_US en_US

network --bootproto dhcp

nfs --server=192.168.122.11 --dir=/var/ftp/pub

# Partition 19028M

%include /tmp/partitioning

#mouse genericps/2 --emulthree

#mouse generic3ps/2

#mouse genericwheelusb --device input/mice

timezone Asia/Shanghai --utc

#timezone US/Central --utc

#timezone US/Mountain --utc

#timezone US/Pacific --utc

graphical

#skipx

rootpw centos

auth --useshadow --passalgo=md5

firstboot --disable

firewall --disabled

bootloader --location=mbr

reboot

%packages

@basic-desktop

@desktop-debugging

@desktop-platform

@fonts

@general-desktop

@graphical-admin-tools

@input-methods

@legacy-x

@remote-desktop-clients

@x11

# KDE is huge...install it if you wish

#@ KDE

#@ Windows File Server

#@ Web Server

elinks

openssh

openssh-server

openssh-clients

vim-enhanced

samba-common

samba-client

gimp

gimp-data-extras

enscript

libcap

ntp

coreutils

elfutils

elfutils-libelfs

gimp-print-plugin

gnome-icon-theme

gstreamer

gstreamer-tools

#libgnomeprint22

#libgnomeprintui22

libgsf

libIDL

libraw1394

nautilus-cd-burner

openmotif

pyorbit

startup-notification

ttmkfdir

firefox

mutt

vnc

gcc

%post

# Set the time, then set the hardware clock

ntpdate -b 192.168.122.254

hwclock --systohc --utc

# Non-destructive rebuild approach

CURRENT="5"

if [ -x /usr/bin/links ]; then httpget="/usr/bin/links";

elif [ -x /usr/bin/lyn

如何在 Linux 系统上安装 Suricata 入侵检测系统

由于安全威胁持续不断,配备入侵检测系统(IDS)已成为如今数据中心环境下最重要的要求之一。然而,随着越来越多的服务器将网卡升级到10GB/40GB以太网技术,我们越来越难在大众化硬件上以线速实施计算密集型入侵检测。扩展IDS性能的一个方法就是使用多线程IDS。在这种IDS下,大量耗用CPU资源的深度数据包检查工作负载并行化处理,分成多个并发任务。这种并行化检查机制可以充分发扬多核硬件的优势,轻松扩展IDS的处理能力。这方面的两个知名的开源工具就是Suricata()和Bro()。-libcapwindows

我在本教程中将演示如何在Linux服务器上安装和配置Suricata IDS。

在Linux上安装Suricata IDS

不妨用源代码构建Suricata。你先要安装几个所需的依赖项,如下所示。

在Debian、Ubuntu或Linux Mint上安装依赖项

$ sudo apt-get install wget build-essential libpcre3-dev libpcre3-dbg automake autoconf libtool libpcap-dev libnet1-dev libyaml-dev zlib1g-dev libcap-ng-dev libjansson-dev-libcapwindows

在CentOS、Fedora或RHEL上安装依赖项

$ sudo yum install wget libpcap-devel libnet-devel pcre-devel gcc-c++ automake autoconf libtool make libyaml-devel zlib-devel file-devel jansson-devel nss-devel-libcapwindows

一旦你安装了所有必需的程序包,现在可以安装Suricata了,如下所示。

首先,从下载最新的Suricata源代码,编译代码。截至本文撰稿时,最新版本是2.0.8。

$ wget

$ tar -xvf suricata-2.0.8.tar.gz

$ cd suricata-2.0.8

$ ./configure --sysconfdir=/etc --localstatedir=/var

这是配置的示例输出结果。

Suricata Configuration:

AF_PACKET support: yes

PF_RING support: no

NFQueue support: no

NFLOG support: no

IPFW support: no

DAG enabled: no

Napatech enabled: no

Unix socket enabled: yes

Detection enabled: yes

libnss support: yes

libnspr support: yes

libjansson support: yes

Prelude support: no

PCRE jit: yes

LUA support: no

libluajit: no

libgeoip: no

Non-bundled htp: no

Old barnyard2 support: no

CUDA enabled: no

现在编译并安装它。

$ make

$ sudo make install

Suricata源代码随带默认的配置文件。不妨安装这些默认的配置文件,如下所示。

$ sudo make install-conf

正如你所知,要是没有IDS规则集,Suricata毫无用处。颇为方便的是,Makefile随带IDS规则安装选项。想安装IDS规则,运行下面这个命令即可。

$ sudo make install-rules

上述规则安装命令会从EmergingThreats.net()安装可用的社区规则集的最新快照,并将它们存储在/etc/suricata/rules下。

首次配置Suricata IDS

现在就可以配置Suricata了。配置文件位于/etc/suricata/suricata.yaml。使用文本编辑工具打开文件,以便编辑。

$ sudo vi /etc/suricata/suricata.yaml

下面是一些基本的设置,供你开始入门。

“default-log-dir”关键字应该指向Suricata日志文件的位置。

default-log-dir: /var/log/suricata/

在“vars”这部分下面,你会找到Suricata使用的几个重要变量。“HOME_NET”应该指向由Suricata检查的本地网络。“!$HOME_NET”(被分配给EXTERNAL_NET)指本地网络以外的任何网络。“XXX_PORTS”表明不同服务所使用的一个或多个端口号。请注意:不管使用哪个端口, Suricata都能自动检测HTTP流量。所以,正确指定HTTP_PORTS变量并不是很重要。-libcapwindows

vars:

HOME_NET: "[192.168.122.0/24]"

EXTERNAL_NET: "!$HOME_NET"

HTTP_PORTS: "80"

SHELLCODE_PORTS: "!80"

SSH_PORTS: 22

“host-os-policy”这部分用来防范一些利用操作系统的网络堆栈的行为(比如TCP重组)来规避检测的常见攻击。作为一项应对措施,现代IDS想出了所谓的“基于目标的”检测,检查引擎根据流量的目标操作系统,对检测算法进行微调。因而,如果你知道每个本地主机运行什么操作系统,就可以将该信息提供给Suricata,从而有望提高其检测速度。这时候用到了“host-os-policy“部分。在该例子中,默认的IDS策略是Linux;如果不知道某个IP地址的操作系统信息,Suricata就会运用基于Linux的检查策略。如果捕获到192.168.122.0/28和192.168.122.155的流量,Suricata就会运用基于Windows的检查策略。-libcapwindows

host-os-policy:

# 这些是Windows机器。

windows: [192.168.122.0/28, 192.168.122.155]

bsd: []

bsd-right: []

old-linux: []

# 将Linux作为默认策略。

linux: [0.0.0.0/0]

old-solaris: []

solaris: ["::1"]

hpux10: []

hpux11: []

irix: []

macos: []

vista: []

windows2k3: []

在“threading”这部分下面,你可以为不同的Suricata线程指定CPU亲和性(CPU affinity)。默认情况下,CPU亲和性被禁用(“set-cpu-affinity: no”),这意味着Suricata线程将被安排在任何可用的CPU核心上。默认情况下,Suricata会为每个CPU核心创建一个“检测”线程。你可以调整这个行为,只要指定“detect-thread-ratio: N”。这会创建N x M个检测 线程,其中M是指主机上CPU核心的总数。-libcapwindows

threading:

set-cpu-affinity: no

detect-thread-ratio: 1.5

就上述线程设置而言,Suricata会创建1.5 x M个检测线程,其中M是系统上CPU核心的总数。

想了解关于Suricata配置的更多信息,你可以阅读默认的配置文件本身,为了便于理解,加有大量注释。

使用Suricata执行入侵检测

现在可以试着运行Suricata了。在启动它之前,还有一个步骤要完成。

如果你使用pcap捕获模式,强烈建议关闭Suricata侦听的那个网卡上的任何数据包卸载功能(比如LRO/GRO),因为那些功能可能会干扰数据包实时捕获。

下面介绍如何关闭网络接口eth0上的LRO/GRO:

$ sudo ethtool -K eth0 gro off lro off

请注意:视使用的网卡而定,你可能会看到下列警示信息,可以忽视这个信息。它只是意味着你的网卡不支持LRO。

Cannot change large-receive-offload

Suricata支持多种运行模式。运行模式决定了不同的线程如何用于IDS。下面这个命令列出了所有可用的运行模式。

$ sudo /usr/local/bin/suricata --list-runmodes

Suricata使用的默认运行模式是autofp(代表“自动流绑定负载均衡模式”)。在这种模式下,来自每一路流的数据包被分配给单一的检测线程。流被分配给了未处理数据包数量最少的线程。

最后,不妨启动Suricata,看看它的实际运行情况。

$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 --init-errors-fatal

在这个例子中,我们监控一个8核系统上的网络接口eth0。如上所示,Suricata创建了13个数据包处理线程和3个管理线程。数据包处理线程包括1个PCAP数据包捕获线程和12个检测线程(相当于8 x 1.5)。这意味着,一个捕获线程捕获的数据包经负载均衡处理后,变成了IDS面前的12个检测线程。管理线程是一个流管理器和两个计数器/统计相关线程。-libcapwindows

下面是Suricata进程的线程视图(由htop描绘)。

Suricata检测日志存储在/var/log/suricata目录下。

$ tail -f /var/log/suricata/fast.log

04/01/2015-15:47:12.559075 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46997-libcapwindows

04/01/2015-15:49:06.565901 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46317-libcapwindows

04/01/2015-15:49:06.566759 [**] [1:2200074:1] SURICATA TCPv4 invalid checksum [**] [Classification: (null)] [Priority: 3] {TCP} 172.16.253.158:22 - 172.16.253.1:46317-libcapwindows

为了易于导入,还有JSON格式的日志:

$ tail -f /var/log/suricata/eve.json

{"timestamp":"2015-04-01T15:49:06.565901","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}-libcapwindows

{"timestamp":"2015-04-01T15:49:06.566759","event_type":"alert","src_ip":"172.16.253.158","src_port":22,"dest_ip":"172.16.253.1","dest_port":46317,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2200074,"rev":1,"signature":"SURICATA TCPv4 invalid checksum","category":"","severity":3}}-libcapwindows