Разлика между версии на „Инсталиране на Dionaea и DionaeaFR“

от БАРЗИКТ Wiki
Направо към: навигация, търсене
(Редактира се кинфигурационния файл /opt/DionaeaFR/DionaeaFR/settings.py)
(Инсталиране на DionaeaFR)
Ред 100: Ред 100:
  
 
sudo mkdir /var/run/dionaeafr
 
sudo mkdir /var/run/dionaeafr
 +
 +
sudo ln -s /usr/bin/nodejs /usr/bin/node
 
</pre>
 
</pre>
  

Версия от 21:54, 27 юни 2017

Процедурата е описана за Ubuntu Server 16.04

Инсталиране на Dionaea

Обновяване на Ubuntu

sudo apt-get update
sudo apt-get upgrade

Инсталиране на библиотеки и инструменти

sudo apt-get install libudns-dev libglib2.0-dev libssl-dev libcurl4-openssl-dev libreadline-dev libsqlite3-dev python-dev libtool automake autoconf build-essential subversion git-core flex bison pkg-config libnl-3-dev libnl-genl-3-dev libnl-nf-3-dev libnl-route-3-dev sqlite3 cvs python-pip python3 python3-dev python3-yaml check cython3 libemu-dev libev-dev libloudmouth1-dev libnetfilter-queue-dev libpcap-dev python3-bson-ext python3-bson python-bson-ext npm

Изтегляне на Dionaea

cd /opt/
sudo git clone https://github.com/DinoTools/dionaea.git

Компилиране на Dionaea

cd /opt/dionaea
sudo autoreconf -vi

sudo ./configure --prefix=/opt/dionaea --with-python=/usr/bin/python3 --with-cython-dir=/usr/bin --with-ev-include=/opt/dionaea/include --with-ev-lib=/opt/dionaea/lib --with-emu-lib=/opt/dionaea/lib/ --with-emu-include=/opt/dionaea/include/ --with-nl-include=/opt/dionaea/include --with-nl-lib=/opt/dionaea/lib/

sudo make
sudo make install

Копиране на конфигурационния файл

sudo cp /opt/dionaea/etc/dionaea/dionaea.cfg /opt/dionaea/etc/dionaea/dionaea.conf

Стартиране на Dionaea

cd /opt/dionaea/bin
sudo ./dionaea

Инсталиране на DionaeaFR

Инсталиране на библиотеки и инструменти

sudo apt-get install python-pip python-netaddr python-dev git unzip 

Инсталиране на DionaeaFR

sudo pip install Django==1.8
sudo pip install pygeoip
sudo pip install django-pagination
sudo pip install django-filter==0.11.0
sudo pip install django-tables2
sudo pip install django-compressor
sudo pip install django-htmlmin
sudo pip install django-appconf
sudo pip install htmlmin
sudo pip install netaddr

cd /opt/
sudo wget https://github.com/benjiec/django-tables2-simplefilter/archive/master.zip -O django-tables2-simplefilter.zip
sudo unzip django-tables2-simplefilter.zip
sudo mv django-tables2-simplefilter-master/ django-tables2-simplefilter/
cd django-tables2-simplefilter/
sudo python setup.py install

cd /opt/
sudo git clone https://github.com/bro/pysubnettree.git
cd pysubnettree/
sudo python setup.py install

cd /opt/
sudo wget http://nodejs.org/dist/v0.12.0/node-v0.12.0.tar.gz
sudo tar xzvf node-v0.12.0.tar.gz
cd node-v0.12.0
sudo ./configure
sudo make
sudo make install

sudo npm install -g less
sudo npm install -g promise

cd /opt/
sudo wget https://github.com/RootingPuntoEs/DionaeaFR/archive/master.zip -O DionaeaFR.zip
sudo unzip DionaeaFR.zip
sudo mv DionaeaFR-master/ DionaeaFR

cd /opt/
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
sudo gunzip GeoLiteCity.dat.gz
sudo gunzip GeoIP.dat.gz
sudo mv GeoIP.dat DionaeaFR/DionaeaFR/static
sudo mv GeoLiteCity.dat DionaeaFR/DionaeaFR/static

sudo cp /opt/DionaeaFR/DionaeaFR/settings.py.dist /opt/DionaeaFR/DionaeaFR/settings.py

sudo mkdir /var/run/dionaeafr

sudo ln -s /usr/bin/nodejs /usr/bin/node

Редактиране на файл manage.php

Изтриват се редовете след from.django.import до execute_from_command_line. Файлът трябва да има следния вид:

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DionaeaFR.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Редактира се кинфигурационния файл /opt/DionaeaFR/DionaeaFR/settings.py

Променя пътя към базата данни на Dionea:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',  # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': '/opt/dionaea/var/dionaea/dionaea.sqlite',
        'USER': '',  # Not used with sqlite3.
        'PASSWORD': '',  # Not used with sqlite3.
        'HOST': '',  # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',  # Set to empty string for default. Not used with sqlite3.
    },
    'OPTIONS': {
        'timeout': 60,
    }
}

Стартиране на сървъра на DionaeaFR

cd /opt/DionaeaFR/
sudo python manage.py collectstatic
sudo python manage.py runserver 0.0.0.0:8000

(опционално) Редактиране на файл /opt/DionaeaFR/DionaeaFR/Templates/table.html

Поради бъг се налага редактиране на файла table.html:

{% spaceless %}
    {% load django_tables2 %}
    {% load i18n %}
    {% block table %}
        <table {% if table.attrs %} {{ table.attrs.as_html }}{% endif %}>
                {% block table.thead %}
                    <thead>
                    <tr>
                        {% for column in table.columns %}
                            {% if column.orderable %}
                                <th {{ column.attrs.th.as_html }}><a
                                        href="{% querystring table.prefixed_order_by_field=column.order_by_alias.next %}">{{ column.header }}</a>
                                </th>
                            {% else %}
                                <th {{ column.attrs.th.as_html }}>{{ column.header }}</th>
                            {% endif %}
                        {% endfor %}
                    </tr>
                    </thead>
                {% endblock table.thead %}
                {% block table.tbody %}
                    <tbody>
                    {% for row in table.page.object_list|default:table.rows %}
                        {% block table.tbody.row %}
                            <tr class="{% cycle "odd" "even" %}">
                                {% for column, cell in row.items %}
                                    <td {{ column.attrs.td.as_html }}>{{ cell }}</td>
                                {% endfor %}
                            </tr>
                        {% endblock table.tbody.row %}
                    {% empty %}
                        {% if table.empty_text %}
                            {% block table.tbody.empty_text %}
                                <tr>
                                    <td colspan="{{ table.columns|length }}">{{ table.empty_text }}</td>
                                </tr>
                            {% endblock table.tbody.empty_text %}
                        {% endif %}
                    {% endfor %}
                    </tbody>
                {% endblock table.tbody %}
                {% block table.tfoot %}
                    <tfoot></tfoot>
                {% endblock table.tfoot %}
        </table>
    {% endblock table %}

    {% if table.page %}
        {% with table.page.paginator.count as total %}
            {% with table.page.object_list|length as count %}
                {% block pagination %}
                    <div class="pagination pagination-centered">
                        <ul>
                            {% if table.page.has_previous %}
                                {% block pagination.previous %}
                                    <li class="previous">
                                    <a href="{% querystring table.prefixed_page_field=table.page.previous_page_number %}">{% trans "Previous" %}</a>
                                    </li>{% endblock pagination.previous %}
                            {% else %}
                                <li class="previous disabled"><a href="">Previous</a></li>
                            {% endif %}

                            {% if table.page.has_next %}
                                {% block pagination.next %}
                                    <li class="next">
                                    <a href="{% querystring table.prefixed_page_field=table.page.next_page_number %}">{% trans "Next" %}</a>
                                    </li>{% endblock pagination.next %}
                            {% else %}
                                <li class="next disabled"><a href="">Previous</a></li>
                            {% endif %}
                        </ul>
                    </div>
                {% endblock pagination %}
            {% endwith %}
        {% endwith %}
    {% endif %}
{% endspaceless %}