Установка и настройка SNMPD + MRTG

MRTG (Multi Router Traffic Grapher) — инструмент отображения различных данных в виде графиков.

Устанавливаем:

sudo apt-get install mrtg snmp snmpd

Командой apt-cache search mrtg можно узнать какие дополнительные модули есть в репозитории.

Открываем файл конфигурации /etc/snmp/snmpd.conf и закомментируем строчку com2sec paranoid default public и раскомментируем com2sec readonly default public.
Перезапускаем snmpd чтобы изменения в файле конфигурации приступили в силу:

sudo /etc/init.d/snmpd restart

Проверить snmp можно командами:

netstat -nlp | grep snmpd
snmpwalk -v2с -c public localhost

Пишем под свои нужды файл конфигурации mrtg /etc/mrtg.cfg.
Ничинающие могут сгенерировать простенький файл конфигурации командой:

sudo cfgmaker public@localhost >> /etc/mrtg.cfg

где public это имя community(пароля другими словами), а localhost это адрес хоста либо ip.

Пример начала конфигурационного файла:

WorkDir: /var/www/mrtg
Options[_]: growright, bits, nobanner
Background[_]: #B0C4DE
EnableIPv6: no
Language: russian
EnableSnmpV3: no
Interval: 10
Refresh: 600
Include: /etc/mrtg/server1.cfg
Include: /etc/mrtg/server2.cfg

Создаем рабочую директорию:

sudo mkdir /var/www/mrtg

Потом необходимо написать либо сгенерировать файл index.html командой:

sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

Смотрим лог /var/log/mrtg.log чтобы не было ошибок.

Стандартные значения на управляемых D-Link свичах:

private CommunityView Read Write
public CommunityView Read Only

Скрипт ручного запуска (mrtg.sh):

#!/bin/bash
#run mrtg
LANG=C
export $LANG
/usr/bin/mrtg /etc/mrtg.cfg --logging /var/log/mrtg.log

Установка и настройка Cacti

Cacti — open-source веб-приложение, система позволяет строить графики при помощи RRDtool. Cacti собирает статистические данные за определённые временные интервалы и позволяет отобразить их в графическом виде.

Официальна страница: cacti.net
Официальный форум и поддержка: forums.cacti.net
Официальная страница с документацией: docs.cacti.net

Автоматическая установка:

sudo apt-get install cacti cacti-spine

Скачиваем Plugin Architecture (PIA) соответствующей версии и распаковываем в директорию cacti с заменой файлов.
В /usr/share/cacti/site/include/global.php изменяем $config[«rra_path»] = ‘/var/lib/cacti/rra’;

После установки открываем вэб интерфейс: http://ip/cacti
Стандартный логин и пароль: admin/admin
В настройках изменяем стандартный poller cmd.php на spine и путь к нему /usr/local/spine/spine
Для использования русских букв на графиках необходимо загрузить русские шрифты в директорию /usr/local/share/rrdtool/fonts, после чего в Console > Cacti Settings > Paths > RRDTool Default Font Path указать полный путь к шрифтам.
Плагины активируются в Plugin Management.
rrd файлы хранятся в директории: /var/lib/cacti/rra

Изменение времени обновления графиков на 1 минуту вместо 5:
В Data Templates > Interface Traffic установить Step с 300 на 60, потом в traffic_in и traffic_out — Heartbeat с 600 на 120.
В кроне прописать с */5 * * * * на * * * * * .
В Settings > Poller установить Poller Interval и Cron Interval на Every Minute.
В System Utilities нажать Rebuild Poller Cache.
В папке /var/lib/cacti/rra обязательно удалить файлы.

Желаемые параметры php.ini
register_argc_argv = On
safe_mode = Off
date.timezone = Europe/Kiev
error_reporting = E_ALL & ~E_DEPRECATED

______________________________________________________________________

Вариант ручной установки с использованием своих патчей (лучше использовать вариант выше, вручную собирал очень давно, причем на разных машинах по разному, поэтому в этом описании могут быть неточности и устаревшая информация):
sudo apt-get install php5-gd php5-mysql php5-cgi php5-snmp php-pear php5-ldap snmp snmpd libnet-snmp-perl libsnmp-perl rrdtool librrds-perl libmysqlclient-dev sysv-rc-conf build-essential libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl libldap2-dev libsnmp-dev libgd2-xpm-dev ntp
cd /tmp
wget http://www.cacti.net/downloads/cacti-0.8.7i.tar.gz
# wget http://www.cacti.net/downloads/cacti-0.8.7i.tar.gz
tar -zxvf cacti-0.8.7i.tar.gz
mv /tmp/cacti-0.8.7i/ /var/www/cacti
groupadd cacti
useradd -g cacti cactiuser
chown -R cactiuser /var/www/cacti/rra
chown -R cactiuser /var/www/cacti/log
chmod -R 777 /var/www/cacti/log
chmod -R 777 /var/www/cacti/rra
Далее создаем в mysql базу данных и пользователя c полными привилегиями на нее.
mysql -u root -p cacti < /var/www/cacti/cacti.sql nano /var/www/cacti/include/config.php nano /var/www/cacti/include/global.php nano /etc/crontab и дописваем строчку: */1 * * * * www-data /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1
Устанавливаем Spine:
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7g.tar.gz
# wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.7h.tar.gz
tar -zxvf cacti-spine-0.8.7g.tar.gz
mv /tmp/cacti-spine-0.8.7g/ /usr/local/spine
cd /usr/local/spine
aclocal
libtoolize -f
autoheader
autoconf
automake -a
automake
./configure
make
make install
cp /usr/local/spine/spine.conf.dist /usr/local/spine/spine.conf
nano spine.conf
изменяем конфиг как нам нужно
cd /var/www/cacti
wget http://www.cacti.net/downloads/patches/0.8.7g/data_source_deactivate.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/graph_list_view.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/html_output.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/ldap_group_authenication.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/script_server_command_line_parse.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/ping.patch
wget http://www.cacti.net/downloads/patches/0.8.7g/poller_interval.patch
patch -p1 -N < data_source_deactivate.patch patch -p1 -N < graph_list_view.patch patch -p1 -N < html_output.patch patch -p1 -N < ldap_group_authenication.patch patch -p1 -N < script_server_command_line_parse.patch patch -p1 -N < ping.patch patch -p1 -N < poller_interval.patch cd /usr/local/spine wget http://www.cacti.net/downloads/spine/patches/0.8.7g/unified_issues.patch patch -p1 -N < unified_issues.patch Ставим патч Plugin Architecture (PIA):
http://www.cacti.net/downloads/pia/
http://docs.cacti.net/manual:087:1_installation.9_pia
cd /tmp
wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
# wget http://www.cacti.net/downloads/pia/cacti-plugin-0.8.7h-PA-v3.0.tar.gz
tar -zxvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cp -r /tmp/cacti-plugin-arch/files-0.8.7g/* /var/www/cacti
cd /var/www/cacti
patch -p1 -N —dry-run < /tmp/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff patch -p1 -N < /tmp/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff nano /var/www/cacti/include/global.php именяем настройки как нам нужно nano /var/www/cacti/include/config.php изменяем $url_path на /cacti/ mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql ставим плагины которые нам нужны: cd plugins wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz # http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz mv plugin\:settings-v0.7-1.tgz settings-v0.7-1.tgz tar -zxvf settings-v0.7-1.tgz wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz # http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz mv plugin\:monitor-v1.2-1.tgz monitor-v1.2-1.tgz tar -zxvf monitor-v1.2-1.tgz mysql -u root -p cacti < /var/www/cacti/plugins/monitor/monitor.sql wget http://docs.cacti.net/_media/plugin:discovery-v1.5-1.tgz mv plugin\:discovery-v1.5-1.tgz discovery-v1.5-1.tgz tar -zxvf discovery-v1.5-1.tgz mysql -u root -p cacti < /var/www/cacti/plugins/discovery/discover.sql wget http://docs.cacti.net/_media/plugin:mactrack-v2.9-1.tgz mv plugin\:mactrack-v2.9-1.tgz mactrack-v2.9-1.tgz tar -zxvf mactrack-v2.9-1.tgz mysql -u root -p cacti < /var/www/cacti/plugins/mactrack/mactrack.sql wget http://docs.cacti.net/_media/plugin:spikekill-v1.3-2.tgz mv plugin\:spikekill-v1.3-2.tgz spikekill-v1.3-2.tgz tar -zxvf spikekill-v1.3-2.tgz download this file http://www.mediafire.com/?iefyesb24ppsbwl and transfer it to your linux box to /var/www/cacti/plugins tar -xf npc-2.0.4.tar.gz ____________________________________________________________________ Стандартный владелец и права на файлы: sudo chown www-data:www-data /etc/cacti/debian.php sudo chmod 755 /etc/cacti/debian.php sudo chown www-data:www-data /var/lib/cacti/rra chown -R www-data:www-data /var/www/cacti ____________________________________________________ Дополнительные заметки:
mysql-cacti-templates: http://code.google.com/p/mysql-cacti-templates
crunchtools: http://code.google.com/p/crunchtools

Страница Weathermap4rrd:
weathermap4rrd: http://weathermap4rrd.tropicalex.net
http://www.network-weathermap.com
Ручной вариант запуска weathermap4rrd
weathermap4rrd -c /etc/weathermap4rrd/weathermap.conf

Смотрите также: Установка Zabbix в Linux Ubuntu

Установка и использование снифферов Tshark & Wireshark

Wireshark (ранее — Ethereal) — программа-анализатор трафика для компьютерных сетей. Tshark — консольная версия, wireshark — версия с графическим интерфейсом.

Устанавливаем:

sudo apt-get install wireshark tshark

Официальный сайт:
wireshark.org
wiki.wireshark.org/FrontPage
Информация на википедии: ru.wikipedia.org/wiki/Wireshark

Справку о tshark можно получить командой:

tshark -h

Пример команды запуска:

tshark -i eth0 -w 'log.txt' -S

Смотрим какие есть сетевые интерфейсы:

tshark -D

После ввода вышеуказаной команды мы увидим пронумерованый список, в последующих командах интерфейс можно указывать по номеру в списке, например: -i 2 вместо -i eth1.

Примеры фильтров:

tshark -i eth0 'tcp port 80'
UDP и TCP трафик на порт 80:
tshark -i eth0 'port 80'
tshark -i eth0 'tcp port 110 or tcp port 25'
tshark -i eth0 'not broadcast and not multicast'
tshark -i eth0 icmp
tshark -i eth0 'host 192.168.0.3'
tshark -i eth0 'host domain.com'
tshark -i eth0 'not host 192.168.0.3'
tshark -r 'log.txt' -V | more
tshark -r 'log.txt' -w 'file.txt' -F visual
tshark -r 'log.txt' -V > 'output.txt'

В случае ошибки «You don’t have permission to capture on that device» или когда tshark не видит сетевые интерфейсы, можно выполнить следующие команды:

su
groupadd wireshark
usermod -a -G wireshark имя_пользователя
newgrp wireshark
chgrp wireshark /usr/bin/dumpcap
chmod 750 /usr/bin/dumpcap
setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

Установка TOR (The Onion Router) в Ubuntu

Tor (The Onion Router) — это система, позволяющая устанавливать анонимное сетевое соединение, защищённое от прослушивания. Рассматривается как анонимная сеть, предоставляющая передачу данных в зашифрованном виде.

Официальный сайт: www.torproject.org

Устанавливаем:
sudo apt-get install tor

Для запуска и остановки можно использовать команду:
sudo /etc/init.d/tor start/stop/restart

Проверяем запущел ли процесс:
ss -aln | grep 9050

Для удобства управления Tor можно установить графический интерфейс:
sudo apt-get install vidalia
После установки в главном меню появится значок.

Далее открываем любой браузер и в его настройках прописываем SOCKS 5 прокси на IP 127.0.0.1 и порт 9050.

Установка и использование Minicom

Minicom — программа для использования последовательного порта (COM) в операционных системах Linux.

Устанавка в Ubuntu/Debian:

sudo apt-get install minicom

Запуск:

minicom

или

sudo minicom

После запуска необходимо открыть конфигурацию нажав CTRL-A O и указать имя COM порта, обычно ttyS0 — COM1, ttyS1 — COM2.
Список устройств можно посмотреть командами:

dmesg | grep tty
ls -l /dev/tty*

Несколько комбинаций клавиш:
Справка: CTRL-A Z
Конфигурация: CTRL-A O
Инициализация модема: CTRL-A M
Выход: CTRL-A Q

Если при запуске пишется ошибка «Device /dev/tty… access failed: Permission denied«, то это означает что пользователь от которого запускается minicom не имеет прав доступа к устройству. Посмотреть кто имеет доступ можно командой «ls -l /dev/tty..», обычно доступ имеет пользователь root и группа dialout. Чтобы не запускать minicom от пользователя root, можно добавить любого необходимого пользователя в группу dialout командой:

sudo usermod -a -G dialout имя_пользователя

Смотрите также:
Решение ошибок запуска Minicom
Решение ошибки «Устройство /dev/ttyS0 заблокировано»
Как передать файл через XMODEM используя Minicom

Установка и использование Ettercap

Ettercap — инструмент для анализа безопасности компьютерной сети.
Домашняя страница: http://ettercap.github.io/ettercap/

Команда установки в Linux Ubuntu/Debian:

sudo apt-get install ettercap-text-only

Просмотр справки:

ettercap --help

Пример использования Ettercap:

ettercap [ОПЦИИ] [ЦЕЛЬ1] [ЦЕЛЬ2]
sudo ettercap -T -q -i eth0

Список возможных ключей запуска:
Sniffing and Attack options:
-M, —mitm perform a mitm attack
-o, —only-mitm don’t sniff, only perform the mitm attack
-B, —bridge use bridged sniff (needs 2 ifaces)
-p, —nopromisc do not put the iface in promisc mode
-u, —unoffensive do not forward packets
-r, —read read data from pcapfile
-f, —pcapfilter set the pcap filter
-R, —reversed use reversed TARGET matching
-t, —proto sniff only this proto (default is all)
User Interface Type:
-T, —text use text only UI
-q, —quiet do not display packet contents
-s, —script issue these commands to the GUI
-C, —curses use curses UI
-D, —daemon daemonize ettercap (no UI)
Logging options:
-w, —write write sniffed data to pcapfile
-L, —log log all the traffic to this
-l, —log-info log only passive infos to this
-m, —log-msg log all the messages to this
-c, —compress use gzip compression on log files

Visualization options:
-d, —dns resolves ip addresses into hostnames
-V, —visual set the visualization format
-e, —regex visualize only packets matching this regex
-E, —ext-headers print extended header for every pck
-Q, —superquiet do not display user and password
General options:
-i, —iface use this network interface
-I, —iflist show all the network interfaces
-n, —netmask force this on iface
-A, —address

force this local

on iface
-P, —plugin launch this -F, —filter load the filter (content filter)
-z, —silent do not perform the initial ARP scan
-j, —load-hosts load the hosts list from
-k, —save-hosts save the hosts list to
-W, —wep-key use this wep key to decrypt wifi packets
-a, —config use the alterative config file
Standard options:
-v, —version prints the version and exit
-h, —help this help screen

ACK (Acknowledge) — подтверждение
OFFER — предложение

Установка и настройка ProFTPd в Ubuntu

ProFTPd — FTP-сервер для Linux и UNIX-подобных операционных систем.

Простая установка:

sudo apt-get install proftpd

Во время установки нужно будет выбрать режим запуска:
(standalone — самостоятельно, тоесть автоматически будет грузится при запуске системы или inetd — вручную)
Расположение конфига:
/etc/proftpd/proftpd.conf

Немного параметров конфига:

Include /etc/proftpd/modules.conf
# отключаем IPv6 протокол из-за ненадобности
UseIPv6 off
IdentLookups off
# имя сервера
ServerName "Debian"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
# Запрещаем заливать файлы начинающиеся с точки
DenyFilter \*.*/
# Указываем домашний каталог
DefaultRoot /home/ftp
# Запрещаем пользователям ходить выше своего домашнего каталога
DefaultRoot ~
# Порт сервера, учитывая большое количество сканеров ботов по интернету, лучше сменить на произольный
Port 21
MaxInstances 30
# пользователь и группа от имени которых работает proftpd
User proftpd
Group nogroup
# ограничение на создание файлов и папок
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
# Стандартный параметр который подгружает все конфиги в указанной директории
Include /etc/proftpd/conf.d/
# По желанию можно присвоить алиас для имени пользователя
# UserAlias
# Запрещаем подключаться к серверу пользователю root
RootLogin off
# Разрежаем докачивать файлы
AllowStoreRestart on

# Перезагружаем proftpd чтобы применились новые настройки конфига

sudo /etc/init.d/proftpd restart

Настройка ProFTPd с использованием MySQL базы данных пользователей:

Устанавливаем дополнительный пакет:

sudo apt-get install proftpd-mod-mysql

В начале конфига /etc/proftpd/proftpd.conf добавить:

Include /etc/proftpd/sql.conf

Ниже раскоментироовать:

DefaultRoot ~
RequireValidShell off

Создаем отдельного системного пользователя и группу к которым будут привязаны виртуальные пользователи из MySQL базы данных:

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

Выполняя sql запрос создаем любую базу данных и пользователя с привилегиями на нее, например proftpd:

create database proftpd;
GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO 'proftpd'@'localhost' IDENTIFIED BY 'пароль';
GRANT SELECT, INSERT, UPDATE, DELETE ON proftpd.* TO 'proftpd'@'localhost.localdomain' IDENTIFIED BY 'пароль';
FLUSH PRIVILEGES;

Создаем в этой новой базе две таблицы:

CREATE TABLE ftpgroup (
 groupname varchar(16) NOT NULL default '',
 gid smallint(6) NOT NULL default '2001',
 members varchar(16) NOT NULL default '',
 KEY groupname (groupname)
 ) ENGINE=MyISAM COMMENT='ProFTP group table';

CREATE TABLE ftpuser (
 id int(10) unsigned NOT NULL auto_increment,
 userid varchar(32) NOT NULL default '',
 passwd varchar(32) NOT NULL default '',
 uid smallint(6) NOT NULL default '2001',
 gid smallint(6) NOT NULL default '2001',
 homedir varchar(255) NOT NULL default '',
 shell varchar(16) NOT NULL default '/sbin/nologin',
 count int(11) NOT NULL default '0',
 accessed datetime NOT NULL default '0000-00-00 00:00:00',
 modified datetime NOT NULL default '0000-00-00 00:00:00',
 PRIMARY KEY (id),
 UNIQUE KEY userid (userid)
 ) ENGINE=MyISAM COMMENT='ProFTP user table';

Раскомментируем в конфиге /etc/proftpd/modules.conf две строки:

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

Отредактируем конфиг /etc/proftpd/sql.conf:

SQLBackend mysql
SQLAuthTypes Crypt
SQLConnectInfo ftp@localhost ftp password
SQLUserInfo ftpuser userid passwd uid gid homedir shell
SQLGroupInfo ftpgroup groupname gid members
# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser

Добавляем в MySQL базу желаемого пользователя:

INSERT INTO `ftpgroup` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');
INSERT INTO `ftpuser` (`id`, `userid`, `passwd`, `uid`, `gid`, `homedir`, `shell`, `count`, `accessed`, `modified`) VALUES ('', 'имяпользователя', ENCRYPT('пароль'), 2001, 2001, '/srv/ftp/имяпользователя', '/sbin/nologin', 0, '', '');

Перезагружаем proftpd чтобы применились новые настройки конфига:

sudo /etc/init.d/proftpd restart

Если что-то не получается, можно остановить sudo /etc/init.d/proftpd stop и запустить командой proftpd -nd6, после чего вся подробная информация о работе proftpd будет выводится на экране.

Вот для примера содержимое конфигурационного файла при котором proftpd брал данные пользователей из mysql базы данных биллинга:

ServerName		"Name"
ServerType		standalone
ServerIdent		off
DefaultServer		on
ScoreboardFile		/var/run/proftpd.scoreboard
Port			21
ServerAdmin             admin@example.net
Umask			002
MaxInstances		300
CommandBufferSize	512
UseReverseDNS		off
IdentLookups		off
RequireValidShell	off

DefaultAddress		0.0.0.0
PassivePorts 		30000 50000

TimesGMT		off

TimeoutSession		1800
TimeoutStalled		300

User			ftp
Group			ftp

CharsetLocal		KOI8-U
CharsetRemote		CP1251

ExtendedLog		/var/log/proftpd.log ALL ideal
LogFormat		ideal "%t %a %U %m %D %f %b %T"
TransferLog 		NONE

AllowRetrieveRestart	on
AllowStoreRestart	on

DefaultRoot ~

AllowOverwrite	off

<Limit SITE_CHMOD>
  DenyAll
</Limit>

<Limit Write>
    AllowAll
</Limit>

<Limit READ>
    AllowAll
</Limit>

<Limit DELE RMD XRMD RNFR RNTO>
    AllowUser myadmin manager
    DenyAll
</Limit>

AuthOrder 		mod_auth_unix.c mod_sql.c

SQLAuthTypes		Plaintext
SQLAuthenticate	users
SQLConnectInfo		base@192.168.0.1:3306 mysqluser password
SQLDefaultGID		1003
SQLDefaultUID		1003
SQLDefaultHomedir	/ftp
SQLUserInfo		`abon` `login` `password` "NULL" "NULL" "NULL" "NULL"
SQLUserWhereClause	"killed!='killed'"

#SQLNamedQuery	auth	SELECT "login,password,1003,1003,'/usr/home/ftp','' from abon where killed!='killed' and login = '%u'"
#SQLUserInfo		custom:/auth
#SQLLogFile		/var/log/proftpd_sql.log

<Directory ~>

</Directory>