0
点赞
收藏
分享

微信扫一扫

跨地域OSSIM传感器部署实战

穆熙沐 2023-01-10 阅读 62

需求:A公司数据中心部署了一套OSSIM系统,随着公司业务扩大,现在在多个城市建立了分支办公司,需要将分支公司服务器资产数据汇总到A公司总部,而OSSIM Sensor传感器无法通过物联网直接连接到总部OSSIM Server。下面我们利用OSSIM里集成的VPN工具进行设置实现跨地域传感器部署。

操作步骤:

步骤1:登录终端

以root用户身份登录OSSIM Server终端控制台。

跨地域OSSIM传感器部署实战_服务器

登录完成之后,大家可以看到字符界面系统控制菜单。

跨地域OSSIM传感器部署实战_Server_02

步骤2:设置VPN Server

该步完成VPN网络号、子网掩码以及通信端口的设置操作。

依次按照如下顺序选择菜单:

System Preferences  Configure Network Setup VPN Configure VPN server,随后系统显示提示信息

跨地域OSSIM传感器部署实战_服务器_03

因为在进行VPN设置时会造成网络中断,如果大家是通过SSH远程接入系统操作,可能会引起连接中断现象,所以这里的提示是希望大家最好直接登录操作系统在主机的终端上操作。上图中我们选择“Yes”进行下一步操作。

跨地域OSSIM传感器部署实战_服务器_04

跨地域OSSIM传感器部署实战_VPN_05

设置完成,我们退回到终端主界面,选择“Apply all Changes”使设置生效。

跨地域OSSIM传感器部署实战_Server_06

接下来系统开始根据更改的内容,重新配置系统。配置完成之后会产生一个重要目录/etc/openvpn/AVinfraestructure/。在该目录下的子目录keys中存储下列文件:

-rw-r--r-- 1 root root 5358 Sep 29 14:39 01.pem

-rw-r--r-- 1 root root 5358 Sep 29 14:39 alienvcd.crt

-rw-r--r-- 1 root root 1025 Sep 29 14:39 alienvcd.csr

-rw------- 1 root root 1704 Sep 29 14:39 alienvcd.key

-rw-r--r-- 1 root root 1574 Sep 29 14:39 ca.crt

-rw------- 1 root root 1704 Sep 29 14:39 ca.key

-rw-r--r-- 1 root root  424 Sep 29 14:39 dh2048.pem

-rw-r--r-- 1 root root  107 Sep 29 14:39 index.txt

-rw-r--r-- 1 root root   21 Sep 29 14:39 index.txt.attr

-rw-r--r-- 1 root root    0 Sep 29 14:39 index.txt.old

-rw-r--r-- 1 root root    3 Sep 29 14:39 serial

-rw-r--r-- 1 root root    3 Sep 29 14:39 serial.old

VPN配置文件是/etc/openvpn/AVinfraestructure.conf


表1  OSSIM服务器端关键文件

文件名

用途

备注

Ca.key

私钥

需要保密

Ca.crt

主证书文件-CA证书文件,公钥


Dh2048.pem

Diffie-Hellman参数文件


Alienvcd.crt

OpenVPN服务器公钥


Alienvcd.key

OpenVPN服务器私钥





无论是服务端,还是客户端在配置的时候,都不需要使用ca.key文件的。但该文件却很重要,所以,我们应该把它另外保存好,而不是放在服务器上哦!


观察日志:

Openvpn日志会被记录在/var/log/syslog文件中,配置时可观察该文件。

# cat /var/log/syslog |grep ovpn

Oct  9 02:56:56 Sensor1 ovpn-192.168.109.190[1860]: VERIFY OK: depth=0, C=ES, ST=ES, L=Madrid, O=Alienvault, CN=alienvcd, emailAddress=root@alienvault.com

Oct  9 02:56:56 Sensor1 ovpn-192.168.109.190[1860]: Data Channel Encrypt: Cipher 'AES-256-GCM' initialized with 256 bit key

Oct  9 02:56:56 Sensor1 ovpn-192.168.109.190[1860]: Data Channel Decrypt: Cipher 'AES-256-GCM' initialized with 256 bit key

Oct  9 02:56:56 Sensor1 ovpn-192.168.109.190[1860]: Control Channel: TLSv1.2, cipher TLSv1/SSLv3 ECDHE-RSA-AES256-GCM-SHA384, 2048 bit RSA

观察服务器端日志

#cat /var/log/syslog | grep ovpn-AVinfraestructure

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: TUN/TAP device tun0 opened

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: TUN/TAP TX queue length set to 100

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: do_ifconfig, tt->did_ifconfig_ipv6_setup=0

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: /sbin/ip link set dev tun0 up mtu 1500

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: /sbin/ip addr add dev tun0 local 10.67.68.1 peer 10.67.68.2

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: /sbin/ip route add 10.67.68.0/24 via 10.67.68.2

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: Could not determine IPv4/IPv6 protocol. Using AF_INET

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: Socket Buffers: R=[87380->87380] S=[16384->16384]

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: Listening for incoming TCP connection on [AF_INET][undef]:33800

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: TCPv4_SERVER link local (bound): [AF_INET][undef]:33800

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: TCPv4_SERVER link remote: [AF_UNSPEC]

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: GID set to nogroup

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: UID set to nobody

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: MULTI: multi_init called, r=256 v=256

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: IFCONFIG POOL: base=10.67.68.4 size=62, ipv6=0

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: MULTI: TCP INIT maxclients=1024 maxevents=1028

Oct  9 16:31:58 OSSIM-Server ovpn-AVinfraestructure[74948]: Initialization Sequence Completed

Oct  9 16:32:27 OSSIM-Server ansible-command: Invoked with executable=None shell=True args=echo "update alienvault.server set ip=inet6_aton('10.67.68.1') where id=unhex('036D4D569435D35BCC9C4B18A37B7446');" | ossim-db  removes=None creates=None chdir=None

步骤3:启动OpenVPN服务器

依次按照如下顺序选择菜单:

System Preferences  Configure Network Setup VPN  Enable/Disable VPN,系统弹出如下界面。

跨地域OSSIM传感器部署实战_服务器_07

按下空格键会移动星号,选择“yes”。退回控制台首页选择  Apply all Changes。

跨地域OSSIM传感器部署实战_Server_08

设置完成之后,我们输入“ifconfig”命令查看网络接口。

alienvault:~# ifconfig

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500

        inet 192.168.109.180  netmask 255.255.255.0  broadcast 192.168.109.255

        inet6 fe80::20c:29ff:fe7b:7446  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:7b:74:46  txqueuelen 1000  (Ethernet)

        RX packets 1757  bytes 223259 (218.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1270  bytes 408671 (399.0 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1  (Local Loopback)

        RX packets 293131  bytes 296935151 (283.1 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 293131  bytes 296935151 (283.1 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500

        inet 10.67.68.1  netmask 255.255.255.255  destination 10.67.68.2

        inet6 fe80::bf15:63d9:10c8:66ba  prefixlen 64  scopeid 0x20<link>

        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

输入netstat命令查看通讯端口是否已在监听状态。Openvpn是点对点通讯,所以上面出现了10.67.68.1和10.67.68.2两个地址。

alienvault:~# netstat -na |grep 33800

tcp        0      0 0.0.0.0:33800           0.0.0.0:*               LISTEN

从上看出,tun0接口和33800端口均工作在正常状态,步骤3设置成功。

观察路由表

OSSIM-Server:/etc/iptables# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.109.2   0.0.0.0         UG    0      0        0 eth0

10.67.68.0      10.67.68.2      255.255.255.0   UG    0      0        0 tun0

10.67.68.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0

192.168.109.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

Sensor端在VPN添加完成之后的路由表

Sensor1:/etc/openvpn# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         192.168.109.2   0.0.0.0         UG    0      0        0 eth0

10.67.68.0      10.67.68.11     255.255.255.0   UG    0      0        0 tun0

10.67.68.11     0.0.0.0         255.255.255.255 UH    0      0        0 tun0

192.168.109.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0

观察服务器的VPN文件

观察进程

OSSIM-Server:~# ps -ef |grep openvpn

nobody     3197      1  0 11:00 ?        00:00:01 /usr/sbin/openvpn --writepid /run/openvpn/AVinfraestructure.pid --daemon ovpn-AVinfraestructure --status /run/openvpn/AVinfraestructure.status 10 --cd /etc/openvpn --config /etc/openvpn/AVinfraestructure.conf

root      18131  17833  0 11:36 pts/3    00:00:00 grep --color=auto openvpn

查看AVinfraestructure.conf文件的内容

#cat  /etc/openvpn/AVinfraestructure.conf

port 33800

proto tcp

dev tun

server 10.67.68.0 255.255.255.0            //为客户端设定IP网段

//服务器端OpenVPN证书文件统一放置在/etc/openvpn/AVinfraestructure/keys/目录之中

ca /etc/openvpn/AVinfraestructure/keys/ca.crt

cert /etc/openvpn/AVinfraestructure/keys/alienvcd.crt

key /etc/openvpn/AVinfraestructure/keys/alienvcd.key

dh /etc/openvpn/AVinfraestructure/keys/dh2048.pem

user nobody      //启动VPN进程的用户和组名称, openVPN服务使用nobody用户和nogroup组运行服务

group nogroup

verb 3

mute 20

keepalive 10 120

client-config-dir /etc/openvpn/ccd   //定义服务器读取特殊客户端配置文件的目录为ccd

comp-lzo

persist-key

persist-tun

ccd-exclusive

client-to-client

reneg-sec 300

配置文件中有关ccd目录的解释:

OSSIM-Server:/etc/openvpn/ccd# cat 192.168.109.190

ifconfig-push 10.67.68.10 10.67.68.11

从上面可以分析出,/etc/openvpn/ccd/192.168.109.190文件的作用就是要将配置文件推送到190这台客户端上。推送文件(/etc/openvpn/nodes/192.168.109.190.tar.gz)在服务器端,采用压缩包方式存在,系统会自动将这个压缩文件推送到190这台主机,并自动解压缩。

防火墙规则产生的变化

在VPN客户端配置完成之后,为了确保通信正常,OSSIM端系统会自动对iptabls规则进行调整。例如/etc/iptables/rules0101-redis-server-otx.iptables文件会自动增加下面两行规则:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6380 -s 10.67.68.10 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6380 -s 10.67.68.1 -j ACCEPT

步骤4: 在Sensor上启动VPN服务

具体步骤同步骤3


步骤5:在Server上配置 VPN 客户端

这里所指配置VPN客户端是在服务器控制台上添加192.168.109.190的客户端。


依次按照如下顺序选择菜单:

System Preferences  Configure Network Setup VPN  Configure VPN client

这里IP地址填写Sensor的IP。提示输入口令输入Sensor的root用户口令。

跨地域OSSIM传感器部署实战_Server_09

接着系统开始添加VPN客户端

跨地域OSSIM传感器部署实战_Server_10

通过上述提示我们可以发现,客户端添加成功。退后系统弹出如下界面:

跨地域OSSIM传感器部署实战_服务器_11

步骤6: 在Sensor上进行验证

观察接口

在Sensor上输入ifconfig命令

alienvault:~# ifconfig

eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500

        inet 192.168.109.190  netmask 255.255.255.0  broadcast 192.168.109.255

        inet6 fe80::20c:29ff:feb5:9b2  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:b5:09:b2  txqueuelen 1000  (Ethernet)

        RX packets 30650  bytes 22213491 (21.1 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 4111  bytes 1033375 (1009.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1  (Local Loopback)

        RX packets 13716  bytes 659416 (643.9 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 13716  bytes 659416 (643.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500

        inet 10.67.68.10  netmask 255.255.255.255  destination 10.67.68.11

        inet6 fe80::bcf0:29ac:8262:9859  prefixlen 64  scopeid 0x20<link>

        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

观察通讯端口:

alienvault:~# netstat -na | grep 33800

tcp        0      0 192.168.109.190:50348   192.168.109.180:33800   ESTABLISHED

查看路由

Sensor1:~# ip route

default via 192.168.109.2 dev eth0 onlink

10.67.68.0/24 via 10.67.68.11 dev tun0

10.67.68.11 dev tun0 proto kernel scope link src 10.67.68.10

192.168.109.0/24 dev eth0 proto kernel scope link src 192.168.109.190

OSSIM-Server:~# ip route

default via 192.168.109.2 dev eth0 onlink

10.67.68.0/24 via 10.67.68.2 dev tun0

10.67.68.2 dev tun0 proto kernel scope link src 10.67.68.1

192.168.109.0/24 dev eth0 proto kernel scope link src 192.168.109.180

观察openvpn进程

Sensor1:/etc/openvpn# ps -ef |grep openvpn

nobody     1860      1  0 23:01 ?        00:00:00 /usr/sbin/openvpn --writepid /run/openvpn/192.168.109.190.pid --daemon ovpn-192.168.109.190 --status /run/openvpn/192.168.109.190.status 10 --cd /etc/openvpn --config /etc/openvpn/192.168.109.190.conf

说明:Sensor(192.168.109.190)上产生的证书文件和配置文件

/usr/sbin/openvpn进程会调用/etc/openvpn/192.168.109.190.conf这个配置文件,然后启动一个进程。

配置文件192.168.109.190.conf

我们首先查看该文件的内容:

#cat /etc/openvpn/192.168.109.190.conf


步骤7:在Sensor上发起连接到Server的请求

从浏览器登录Web UI

跨地域OSSIM传感器部署实战_VPN_12

跨地域OSSIM传感器部署实战_Server_13

见到下图后,说明添加Sensor成功。

跨地域OSSIM传感器部署实战_VPN_14

在WebUI中查看

跨地域OSSIM传感器部署实战_服务器_15

观察远程Sensor状态

跨地域OSSIM传感器部署实战_Server_16

观察Server装态

跨地域OSSIM传感器部署实战_VPN_17

总 结

        经过以上七个步骤Server和Sensor之间通过VPN建立的加密通道已经建立。刚安装完成的系统默认主机名都是alienvault,为了便于观察我们登录终端修改计算机名称将Sensor改为 Sensor1,Server改名为OSSIM-Server,在步骤3完成之后,Web UI中我们可以观察alienvault主机的状态。

跨地域OSSIM传感器部署实战_Server_18

备注:搭建好的系统截图可供大家实验参考

跨地域OSSIM传感器部署实战_Server_19

跨地域OSSIM传感器部署实战_服务器_20


2022年51CTO学堂讲师评选正在进行中,希望各位投上宝贵一票。

​​ https://edu.51cto.com/lecturer/350944.html​​​

(以用户ID登录并进行投票)

举报

相关推荐

0 条评论