Giuseppe Molica 发布的文章

监控服务器 - 什么是 Zabbix

Zabbix 是企业级开源分布式监控服务器解决方案。该软件能监控网络的不同参数以及服务器的完整性,还允许为任何事件配置基于电子邮件的警报。Zabbix 根据存储在数据库(例如 MySQL)中的数据提供报告和数据可视化功能。软件收集的每个测量指标都可以通过基于 Web 的界面访问。

Zabbix 根据 GNU 通用公共许可证版本 2(GPLv2)的条款发布,完全免费。

在本教程中,我们将在运行 MySQL、Apache 和 PHP 的 Ubuntu 16.04 server 上安装 Zabbix。

安装 Zabbix 服务器

首先,我们需要安装 Zabbix 所需的几个 PHP 模块:

# apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring

Ubuntu 仓库中提供的 Zabbix 软件包已经过时了。使用官方 Zabbix 仓库安装最新的稳定版本。

通过执行以下命令来安装仓库软件包:

$ wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
# dpkg -i zabbix-release_3.2-1+xenial_all.deb

然后更新 apt 包源:

# apt-get update

现在可以安装带有 MySQL 支持和 PHP 前端的 Zabbix 服务器。执行命令:

# apt-get install zabbix-server-mysql zabbix-frontend-php

安装 Zabbix 代理:

# apt-get install zabbix-agent

Zabbix 现已安装。下一步是配置数据库来存储数据。

为 Zabbix 配置 MySQL

我们需要创建一个新的 MySQL 数据库,Zabbix 将用来存储收集的数据。

启动 MySQL shell:

$ mysql -uroot -p

接下来:

mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'usr_strong_pwd';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> EXIT;
Bye

接下来,导入初始表和数据。

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

输入在 MySQL shell 中创建的 zabbix 用户的密码。

接下来,我们需要编辑 Zabbix 服务器配置文件,它是 /etc/zabbix/zabbis_server.conf

# $EDITOR /etc/zabbix/zabbix_server.conf

搜索文件的 DBPassword 部分:

### Option: DBPassword                           
#       Database password. Ignored for SQLite.   
#       Comment this line if no password is used.
#                                                
# Mandatory: no                                  
# Default:                                       
# DBPassword=

取消注释 DBPassword= 这行,并添加在 MySQL 中创建的密码:

DBPassword=usr_strong_pwd

接下来,查找 DBHost= 这行并取消注释。

保存并退出。

配置 PHP

我们需要配置 PHP 来使用 Zabbix。在安装过程中,安装程序在 /etc/zabbix 中创建了一个名为 apache.conf 的配置文件。打开此文件:

# $EDITOR /etc/zabbix/apache.conf

此时,只需要取消注释 date.timezone 并设置正确的时区:


<IfModule mod_php7.c>
    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value always_populate_raw_post_data -1
    php_value date.timezone Europe/Rome
</IfModule>

保存并退出。

此时,重启 Apache 并启动 Zabbix Server 服务,使其能够在开机时启动:

# systemctl restart apache2
# systemctl start zabbix-server
# systemctl enable zabbix-server

systemctl 检查 Zabbix 状态:

# systemctl status zabbix-server

这个命令应该输出:

â zabbix-server.service - Zabbix Server
 Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor pr
 Active: active (running) ...

此时,Zabbix 的服务器端已经正确安装和配置了。

配置 Zabbix Web 前端

如介绍中所述,Zabbix 有一个基于 Web 的前端,我们将用于可视化收集的数据。但是,必须配置此接口。

使用 Web 浏览器,进入 URL http://localhost/zabbix

Zabbix monitoring server Frontend Setup

点击 Next step

snapshot2

确保所有的值都是 Ok,然后再次单击 Next step

Zabbix MySQL configuration

输入 MySQL zabbix 的用户密码,然后点击 Next step

Zabbix server details

单击 Next step ,安装程序将显示具有所有配置参数的页面。再次检查以确保一切正确。

Zabbix pre-installation details

Zabbix installation finished

点击 Next step 进入最后一页。

点击完成以完成前端安装。默认用户名为 Admin,密码是 zabbix

Zabbix 服务器入门

Zabbix login interface

使用上述凭证登录后,我们将看到 Zabbix 面板:

zabbix dashboard

前往 Administration -> Users,了解已启用帐户的概况:

Zabbix users

通过点击 Create user 创建一个新帐户。

Zabbix User Creation

点击 Groups 中的 Add,然后选择一个组:

snapshot11

保存新用户凭证,它将显示在 Administration -> Users 面板中。

请注意,在 Zabbix 中,主机的访问权限分配给用户组,而不是单个用户。

总结

我们结束了 Zabbix Server 安装的教程。现在,监控基础设施已准备好完成其工作并收集有关需要在 Zabbix 配置中添加的服务器的数据。


via: https://www.unixmen.com/monitoring-server-install-zabbix-ubuntu-16-04/

作者:Giuseppe Molica 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

什么是 Let’s Encrypt

Let’s Encrypt 是互联网安全研究组织 (ISRG) 提供的免费证书认证机构。它提供了一种轻松自动的方式来获取免费的 SSL/TLS 证书 - 这是在 Web 服务器上启用加密和 HTTPS 流量的必要步骤。获取和安装证书的大多数步骤可以通过使用名为 Certbot 的工具进行自动化。

特别地,该软件可在可以使用 shell 的服务器上使用:换句话说,它可以通过 SSH 连接使用。

在本教程中,我们将看到如何使用 certbot 获取免费的 SSL 证书,并在 Ubuntu 16.04 服务器上使用 Nginx。

安装 Certbot

第一步是安装 certbot,该软件客户端可以几乎自动化所有的过程。 Certbot 开发人员维护自己的 Ubuntu 仓库,其中包含比 Ubuntu 仓库中存在的软件更新的软件。

添加 Certbot 仓库:

# add-apt-repository ppa:certbot/certbot

接下来,更新 APT 源列表:

# apt-get update

此时,可以使用以下 apt 命令安装 certbot

# apt-get install certbot

Certbot 现已安装并可使用。

获得证书

有各种 Certbot 插件可用于获取 SSL 证书。这些插件有助于获取证书,而证书的安装和 Web 服务器配置都留给管理员。

我们使用一个名为 Webroot 的插件来获取 SSL 证书。

在有能力修改正在提供的内容的情况下,建议使用此插件。在证书颁发过程中不需要停止 Web 服务器。

配置 NGINX

Webroot 会在 Web 根目录下的 .well-known 目录中为每个域创建一个临时文件。在我们的例子中,Web 根目录是 /var/www/html。确保该目录在 Let’s Encrypt 验证时可访问。为此,请编辑 NGINX 配置。使用文本编辑器打开 /etc/nginx/sites-available/default

# $EDITOR /etc/nginx/sites-available/default

在该文件中,在 server 块内,输入以下内容:

 location ~ /.well-known {
    allow all;
 }

保存,退出并检查 NGINX 配置:

# nginx -t

没有错误的话应该会显示如下:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx

使用 Certbot 获取证书

下一步是使用 Certbot 的 Webroot 插件获取新证书。在本教程中,我们将保护示例域 www.example.com。需要指定应由证书保护的每个域。执行以下命令:

# certbot certonly --webroot --webroot-path=/var/www/html -d www.example.com

在此过程中,Cerbot 将询问有效的电子邮件地址,用于进行通知。还会要求与 EFF 分享,但这不是必需的。在同意服务条款之后,它将获得一个新的证书。

最后,目录 /etc/letsencrypt/archive 将包含以下文件:

  • chain.pem:Let’s Encrypt 加密链证书。
  • cert.pem:域名证书。
  • fullchain.pemcert.pemchain.pem 的组合。
  • privkey.pem:证书的私钥。

Certbot 还将创建符号链接到 /etc/letsencrypt/live/domain_name/ 中的最新证书文件。这是我们将在服务器配置中使用的路径。

在 NGINX 上配置 SSL/TLS

下一步是服务器配置。在 /etc/nginx/snippets/ 中创建一个新的代码段。 snippet 是指一段配置,可以包含在虚拟主机配置文件中。如下创建一个新的文件:

# $EDITOR /etc/nginx/snippets/secure-example.conf

该文件的内容将指定证书和密钥位置。粘贴以下内容:

ssl_certificate /etc/letsencrypt/live/domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain_name/privkey.pem;

在我们的例子中,domain_nameexample.com

编辑 NGINX 配置

编辑默认虚拟主机文件:

# $EDITOR /etc/nginx/sites-available/default

如下:

server {
 listen 80 default_server;
 listen [::]:80 default_server;
 server_name www.example.com
 return 301 https://$server_name$request_uri;

 # SSL configuration
 #
 listen 443 ssl default_server;
 listen [::]:443 ssl default_server;
 include snippets/secure-example.conf
 #
 # Note: You should disable gzip for SSL traffic.
 # See: https://bugs.debian.org/773332
 # ...  
}

这将启用 NGINX 加密功能。

保存、退出并检查 NGINX 配置文件:

# nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重启 NGINX:

# systemctl restart nginx

总结

按照上述步骤,此时我们已经拥有了一个安全的基于 NGINX 的 Web 服务器,它由 Certbot 和 Let’s Encrypt 提供加密。这只是一个基本配置,当然你可以使用许多 NGINX 配置参数来个性化所有东西,但这取决于特定的 Web 服务器要求。


via: https://www.unixmen.com/encryption-secure-nginx-web-server-ubuntu-16-04/

作者:Giuseppe Molica 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

什么是 Docker Compose

Docker Compose 是一个运行多容器 Docker 应用的工具。Compose 通过一个配置文件来配置一个应用的服务,然后通过一个命令创建并启动所有在配置文件中指定的服务。

Docker Compose 适用于许多不同的项目,如:

  • 开发:利用 Compose 命令行工具,我们可以创建一个隔离(而可交互)的环境来承载正在开发中的应用程序。通过使用 Compose 文件,开发者可以记录和配置所有应用程序的服务依赖关系。
  • 自动测试:此用例需求一个测试运行环境。Compose 提供了一种方便的方式来管理测试套件的隔离测试环境。完整的环境在 Compose 文件中定义。

Docker Compose 是在 Fig 的源码上构建的,这个社区项目现在已经没有使用了。

在本教程中,我们将看到如何在 Ubuntn 16.04 上安装 Docker Compose。

安装 Docker

我们需要安装 Docker 来安装 Docker Compose。首先为官方 Docker 仓库添加公钥。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

接下来,添加 Docker 仓库到 apt 源列表:

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

更新包数据库,并使用 apt 安装 Docker

$ sudo apt-get update
$ sudo apt install docker-ce

在安装进程结束后,Docker 守护程序应该已经启动并设为开机自动启动。我们可以通过下面的命令来查看它的状态:

$ sudo systemctl status docker
---------------------------------

● docker.service - Docker Application Container Engine
 Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
 Active: active (running) 

安装 Docker Compose

现在可以安装 Docker Compose 了。通过执行以下命令下载当前版本。

# curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

为二进制文件添加执行权限:

# chmod +x /usr/local/bin/docker-compose

检查 Docker Compose 版本:

$ docker-compose -v

输出应该如下:

docker-compose version 1.14.0, build c7bdf9e

测试 Docker Compose

Docker Hub 包含了一个用于演示的 Hello World 镜像,可以用来说明使用 Docker Compose 来运行一个容器所需的配置。

创建并打开一个目录:

$ mkdir hello-world
$ cd hello-world

创建一个新的 YAML 文件:

$ $EDITOR docker-compose.yml

在文件中粘贴如下内容:

unixmen-compose-test:
 image: hello-world

注意: 第一行是容器名称的一部分。

保存并退出。

运行容器

接下来,在 hello-world 目录执行以下命令:

$ sudo docker-compose up

如果一切正常,Compose 输出应该如下:

Pulling unixmen-compose-test (hello-world:latest)...
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Creating helloworld_unixmen-compose-test_1 ... 
Creating helloworld_unixmen-compose-test_1 ... done
Attaching to helloworld_unixmen-compose-test_1
unixmen-compose-test_1 | 
unixmen-compose-test_1 | Hello from Docker!
unixmen-compose-test_1 | This message shows that your installation appears to be working correctly.
unixmen-compose-test_1 | 
unixmen-compose-test_1 | To generate this message, Docker took the following steps:
unixmen-compose-test_1 | 1\. The Docker client contacted the Docker daemon.
unixmen-compose-test_1 | 2\. The Docker daemon pulled the "hello-world" image from the Docker Hub.
unixmen-compose-test_1 | 3\. The Docker daemon created a new container from that image which runs the
unixmen-compose-test_1 | executable that produces the output you are currently reading.
unixmen-compose-test_1 | 4\. The Docker daemon streamed that output to the Docker client, which sent it
unixmen-compose-test_1 | to your terminal.
unixmen-compose-test_1 | 
unixmen-compose-test_1 | To try something more ambitious, you can run an Ubuntu container with:
unixmen-compose-test_1 | $ docker run -it ubuntu bash
unixmen-compose-test_1 | 
unixmen-compose-test_1 | Share images, automate workflows, and more with a free Docker ID:
unixmen-compose-test_1 | https://cloud.docker.com/
unixmen-compose-test_1 | 
unixmen-compose-test_1 | For more examples and ideas, visit:
unixmen-compose-test_1 | https://docs.docker.com/engine/userguide/
unixmen-compose-test_1 | 
helloworld_unixmen-compose-test_1 exited with code 0

Docker 容器只能在命令(LCTT 译注:此处应为容器中的命令)还处于活动状态时运行,因此当测试完成运行时,容器将停止运行。

结论

本文是关于在 Ubuntu 16.04 中安装 Docker Compose 的教程。我们还看到了如何通过一个 YAML 格式的 Compose 文件构建一个简单的项目。


via: https://www.unixmen.com/container-docker-compose-ubuntu-16-04/

作者:Giuseppe Molica 译者:Locez 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

说明 - 非关系型数据库(NoSQL)和 OrientDB

通常在我们提及数据库的时候,想到的是两个主要的分类:使用用于用户和应用程序之间进行对接的一种被称为结构化查询语言(Structured Query Language ,缩写 SQL)的关系型数据库管理系统(Relational Data base Management System,缩写 RDBMS) 以及非关系型数据库管理系统(non-relational database management systems 或称 NoSQL 数据库)。

这两种模型在如何处理(存储)数据的方面存在着巨大的差异。

关系数据库管理系统

在关系模型中(如 MySQL,或者其分支 MariaDB),一个数据库是一个表的集合,其中每个表包含一个或多个以列组织的数据分类。数据库的每行包含一个唯一的数据实例,其分类由列定义。

举个例子,想象一个包含客户的表。每一行相当于一个客户,而其中的每一列分别对应名字、地址以及其他所必须的信息。

而另一个表可能是包含订单、产品、客户、日期以及其它的种种。而这个数据库的使用者则可以获得一个满足其需要的视图,例如一个客户在一个特定的价格范围购买产品的报告。

非关系型数据库管理系统

在非关系型数据库(或称为 不仅仅是数据库 Not only SQL )管理系统中,数据库被设计为使用不同的方式存储数据,比如文档存储、键值对存储、图形关系存储以及其他方式存储。使用此种形式实现的数据库系统专门被用于大型数据库集群和大型 Web 应用。现今,非关系型数据库被用于某些大公司,如谷歌和亚马逊。

文档存储数据库

文档存储数据库是将数据用文档的形式存储。这种类型的运用通常表现为 JavaScript 和 JSON,实际上,XML 和其他形式的存储也是可以被采用的。这里的一个例子就是 MongoDB。

键值对存储数据库

这是一个由唯一的 key 配对一个 value 的简单模型。这个系统在高速缓存方面具有高性能和高度可扩展性。这里的例子包括 BerkeleyDB 和 MemacacheDB。

图形关系数据库

正如其名,这种数据库通过使用 graph 模型存储数据,这意味着数据通过节点和节点之间的互连进行组织。这是一个可以随着时间的推移和使用而发展的灵活模型。这个系统应用于那些强调映射关系的地方。这里的例子有 IBM Graphs、Neo4j 以及 OrientDB

OrientDB

OrientDB 是一个多模式的非关系型数据库管理系统。正如开发它的公司所说的“它是一个将图形关系与文档、键值对、反应性、面向对象和地理空间模型结合在一起的可扩展的、高性能的数据库”。

OrientDB 还支持 SQL ,经过扩展可以用来操作树和图。

目标

这个教程旨在教会大家如何在运行 Ubuntu 16.04 的服务器上下载并配置 OrientDB 社区版。

下载 OrientDB

我们可以从最新的服务端上通过输入下面的指令来下载最新版本的 OrientDB。

$ wget -O orientdb-community-2.2.22.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.22.tar.gz&os=linux

这里下载的是一个包含预编译二进制文件的压缩包,所以我们可以使用 tar 指令来操作解压它:

$ tar -zxf orientdb-community-2.2.22.tar.gz

将从中提取出来的文件夹整体移动到 /opt

# mv orientdb-community-2.2.22 /opt/orientdb

启动 OrientDB 服务器

启动 OrientDB 服务器需要运行 orientdb/bin/ 目录下的 shell 脚本:

# /opt/orientdb/bin/server.sh

如果你是第一次开启 OrientDB 服务器,安装程序还会显示一些提示信息,以及提醒你设置 OrientDB 的 root 用户密码:

+---------------------------------------------------------------+
| WARNING: FIRST RUN CONFIGURATION |
+---------------------------------------------------------------+
| This is the first time the server is running. Please type a |
| password of your choice for the 'root' user or leave it blank |
| to auto-generate it. |
| |
| To avoid this message set the environment variable or JVM |
| setting ORIENTDB_ROOT_PASSWORD to the root password to use. |
+---------------------------------------------------------------+

Root password [BLANK=auto generate it]: ********
Please confirm the root password: ********

在完成这些后,OrientDB 数据库服务器将成功启动:

INFO OrientDB Server is active v2.2.22 (build fb2b7d321ea8a5a5b18a82237049804aace9e3de). [OServer]

从现在开始,我们需要用第二个终端来与 OrientDB 服务器进行交互。

若要强制停止 OrientDB 执行 Ctrl+C 即可。

配置守护进程

此时,我们可以认为 OrientDB 仅仅是一串 shell 脚本,可以用编辑器打开 /opt/orientdb/bin/orientdb.sh

# $EDITOR /opt/orientdb/bin/orientdb.sh

在它的首段,我们可以看到:

#!/bin/sh
# OrientDB service script
#
# Copyright (c) OrientDB LTD (http://orientdb.com/)

# chkconfig: 2345 20 80
# description: OrientDb init script
# processname: orientdb.sh

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"

我们需要配置ORIENTDB_DIR 以及 ORIENTDB_USER.

然后创建一个用户,例如我们创建一个名为 orientdb 的用户,我们需要输入下面的指令:

# useradd -r orientdb -s /sbin/nologin

orientdb 就是我们在 ORIENTDB_USER 处输入的用户。

再更改 /opt/orientdb 目录的所有权:

# chown -R orientdb:orientdb /opt/orientdb

改变服务器配置文件的权限:

# chmod 640 /opt/orientdb/config/orientdb-server-config.xml

下载系统守护进程服务

OrientDB 的压缩包包含一个服务文件 /opt/orientdb/bin/orientdb.service。我们将其复制到 /etc/systemd/system 文件夹下:

# cp /opt/orientdb/bin/orientdb.service /etc/systemd/system

编辑该服务文件:

# $EDITOR /etc/systemd/system/orientdb.service

其中 [service] 内容块看起来应该是这样的:

[Service]
User=ORIENTDB_USER
Group=ORIENTDB_GROUP
ExecStart=$ORIENTDB_HOME/bin/server.sh

将其改成如下样式:

[Service]
User=orientdb 
Group=orientdb 
ExecStart=/opt/orientdb/bin/server.sh

保存并退出。

重新加载系统守护进程:

# systemctl daemon-reload

启动 OrientDB 并使其开机自启动:

# systemctl start orientdb
# systemctl enable orientdb

确认 OrientDB 的状态:

# systemctl status orientdb

上述指令应该会输出:

● orientdb.service - OrientDB Server
 Loaded: loaded (/etc/systemd/system/orientdb.service; disabled; vendor preset: enabled)
 Active: active (running) ...

流程就是这样了!OrientDB 社区版成功安装并且正确运行在我们的服务器上了。

总结

在这个指导中,我们看到了一些关系型数据库管理系统(RDBMS)以及非关系型数据库管理系统(NoSQL DBMS)的简单对照。我们也安装 OrientDB 社区版的服务器端并完成了其基础的配置。

这是我们部署完全的 OrientDB 基础设施的第一步,也是我们用于管理大型系统数据的起步。


via: https://www.unixmen.com/nosql-install-orientdb-ubuntu-16-04/

作者:Giuseppe Molica 译者:a972667237 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

简介:Bro 网络分析框架

Bro 是一个开源的网络分析框架,侧重于网络安全监控。这是一项长达 15 年的研究成果,被各大学、研究实验室、超级计算机中心和许多开放科学界广泛使用。它主要由伯克利国际计算机科学研究所和伊利诺伊大学厄巴纳-香槟分校的国家超级计算机应用中心开发。

Bro 的功能包括:

  • Bro 的脚本语言支持针对站点定制监控策略
  • 针对高性能网络
  • 分析器支持许多协议,可以在应用层面实现高级语义分析
  • 它保留了其所监控的网络的丰富的应用层统计信息
  • Bro 能够与其他应用程序接口实时地交换信息
  • 它的日志全面地记录了一切信息,并提供网络活动的高级存档

本教程将介绍如何从源代码构建,并在 Ubuntu 16.04 服务器上安装 Bro。

准备工作

Bro 有许多依赖文件:

从源代码构建还需要:

  • CMake 2.8+
  • Make
  • GCC 4.8+ or Clang 3.3+
  • SWIG
  • GNU Bison
  • Flex
  • Libpcap headers
  • OpenSSL headers
  • zlib headers

起步

首先,通过执行以下命令来安装所有必需的依赖项:

# apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev

安装定位 IP 地理位置的 GeoIP 数据库

Bro 使用 GeoIP 的定位地理位置。安装 IPv4 和 IPv6 版本:

$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
$wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz

解压这两个压缩包:

$ gzip -d GeoLiteCity.dat.gz
$ gzip -d GeoLiteCityv6.dat.gz

将解压后的文件移动到 /usr/share/GeoIP 目录下:

# mvGeoLiteCity.dat /usr/share/GeoIP/GeoIPCity.dat
# mv GeoLiteCityv6.dat /usr/share/GeoIP/GeoIPCityv6.dat

现在,可以从源代码构建 Bro 了。

构建 Bro

最新的 Bro 开发版本可以通过 git 仓库获得。执行以下命令:

$ git clone --recursive git://git.bro.org/bro

转到克隆下来的目录,然后使用以下命令就可以简单地构建 Bro:

$ cd bro
$ ./configure
$ make

make 命令需要一些时间来构建一切。确切的时间取决于服务器的性能。

可以使用一些参数来执行 configure 脚本,以指定要构建的依赖关系,特别是 --with-* 选项。

安装 Bro

在克隆的 bro 目录中执行:

# make install

默认安装路径为 /usr/local/bro

配置 Bro

Bro 的配置文件位于 /usr/local/bro/etc 目录下。 这里有三个文件:

  • node.cfg,用于配置要监视的单个节点(或多个节点)。
  • broctl.cfg,BroControl 的配置文件。
  • networks.cgf,包含一个使用 CIDR 标记法表示的网络列表。

配置邮件设置

打开 broctl.cfg 配置文件:

# $EDITOR /usr/local/bro/etc/broctl.cfg

查看 Mail Options 选项,并编辑 MailTo 行如下:

# Recipient address for emails sent out by Bro and BroControl
MailTo = [email protected]

保存并关闭。还有许多其他选项,但在大多数情况下,默认值就足够好了。

选择要监视的节点

开箱即用,Bro 被配置为以独立模式运行。在本教程中,我们就是做一个独立的安装,所以没有必要改变。但是,也请查看 node.cfg 配置文件:

# $EDITOR /usr/local/bro/etc/node.cfg

[bro] 部分,你应该看到这样的东西:

[bro]
type=standalone
host=localhost
interface=eth0

请确保 inferface 与 Ubuntu 16.04 服务器的公网接口相匹配。

保存并退出。

配置监视节点的网络

最后一个要编辑的文件是 network.cfg。使用文本编辑器打开它:

# $EDITOR /usr/local/bro/etc/networks.cfg

默认情况下,你应该看到以下内容:

# List of local networks in CIDR notation, optionally followed by a
# descriptive tag.
# For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes.

10.0.0.0/8          Private IP space
172.16.0.0/12       Private IP space
192.168.0.0/16      Private IP space

删除这三个条目(这只是如何使用此文件的示例),并输入服务器的公用和专用 IP 空间,格式如下:

X.X.X.X/X        Public IP space
X.X.X.X/X        Private IP space

保存并退出。

使用 BroControl 管理 Bro 的安装

管理 Bro 需要使用 BroControl,它支持交互式 shell 和命令行工具两种形式。启动该 shell:

# /usr/local/bro/bin/broctl

要想使用命令行工具,只需将参数传递给上一个命令,例如:

# /usr/local/bro/bin/broctl status

这将通过显示以下的输出来检查 Bro 的状态:

Name         Type       Host          Status    Pid    Started
bro          standalone localhost     running   6807   20 Jul 12:30:50

结论

这是一篇 Bro 的安装教程。我们使用基于源代码的安装,因为它是获得可用的最新版本的最有效的方法,但是该网络分析框架也可以下载预构建的二进制格式文件。

下次见!


via: https://www.unixmen.com/how-to-install-bro-ubuntu-1604/

作者:Giuseppe Molica 译者:firmianay 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出