суббота, 30 января 2016 г.

Клонирование потока Netflow на несколько приемников трафика.

Имеется ситуация, когда с маршрутизатора Cisco ASR1006 в формате Netflow ver9 льется поток данных о NAT трансляциях. На маршрутизаторе Cisco ASR1006 в конфигурации прописано:
ip nat log translations flow-export v9 udp destination 10.200.15.117 2000
(лить nat log в формате netflow ver9 на ip 10.200.15.117 и порт 2000)
Эту строчку можно написать только один раз и следовательно лить логи NAT трансляций в формате Netflow можно только на один адрес/порт получателя. Но иногда возникает необходимость распараллелить поток Netflow на два сервера-приемника или больше. 
Для решения этой задачи можно воспользоваться утилитой samplicator, умеющей размножать UDP трафик. (https://github.com/sleinen/samplicator).
Схема должна в конечном счет получиться такая:



1. Установка утилиты samplicator, позволяющей размножать потоки UDP:
# cd /usr/src/
# git clone https://github.com/sleinen/samplicator
# cd samplicator
# automake
# ./autogen.sh
# ./ configure
# make 
# make install

2. Запуск утилиты samplicator выполняется командой:
# samplicate -S 127.0.0.1/2059 172.16.6.130/2059
После запуска утилиты консоль будет заблокирована и система начнет слушать порт 2000 (по умолчанию для утилиты samplicate) и все UDP пакеты отправлять получателям:
 - ip 127.0.0.1 порт 2059
 - ip 172.16.6.130 порт 2059
Ключ -S указывает на то что утилите необходимо сохранить оригинальный ip адрес источника трафика.
В соседней консоли сервера можно проконтролировать прием и отправку пакетов с помощью tcpdump:
Проверка приходящих пакетов на порт 2000:
#tcpdump port 2000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:25:13.250021 IP 10.200.15.118.59948 > 10.200.15.117.sieve-filter: UDP, length 1052
09:25:13.262595 IP 10.200.15.118.59948 > 10.200.15.117.sieve-filter: UDP, length 1052
09:25:13.275274 IP 10.200.15.118.59948 > 10.200.15.117.sieve-filter: UDP, length 1052
Видим, что пакеты при ходят с 10.200.15.118 на наш сервер (10.200.15.117)
Обозначение sieve-filter – это как раз порт 2000.
Проверка уходящих пакетов на порт 2059
#tcpdump port 2059
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
09:27:55.685079 IP 10.200.15.118.59948 > 172.16.6.130.bmc-messaging: UDP, length 1052
09:27:55.690870 IP 10.200.15.118.59948 > 172.16.6.130.bmc-messaging: UDP, length 1052
09:27:55.697099 IP 10.200.15.118.59948 > 172.16.6.130.bmc-messaging: UDP, length 1088
Видим, что пакеты уходят на второй сервер 172.16.6.130 на порт bmc-messaging (2059) с сохраненным ip адресом источника (10.200.15.118).

Что бы запустить команду в фоне выполняем:
# samplicate -Sf 127.0.0.1/2059 172.16.6.130/2059
Для добавления в автозагрузку добавляем эту строчку в файл /etc/rc.local
Чтобы заставить утилиту samplicate слушать не порт 2000, а любой другой необходимо применить ключ –p.
Например для прослушивания порта 4000 выполняем:
# samplicate -Sf -p 4000  127.0.0.1/2059 172.16.6.130/2059

3. Справка
Если нужно просто попрактиковаться и нет потока Netflow с Cisco, отправить UDP пакеты получателю на определенный ip и порт можно воспользоваться утилитой netcat и выполнить команду: 
# echo -n "foo" | nc -4u -w1 10.200.15.117 2000
Пакет с содержимым «foo» уйдет на ip 10.200.15.117 и на порт 2000

Что бы убедиться, что локальный приемник Netflow трафика принимает пакеты на Ip 127.0.0.1, порт 2059 не достаточно утилиты tcpdump. Она не может прослушать интерфейс lo.
Смотрим кто слушает порт 2059
# netstat -ltupn | grep 2059
udp        0    0 0.0.0.0:2059     0.0.0.0:*     1459/nfcapd
Ищем как запущен процесс nfcapd
# ps ax |  grep nfcapd
 1456 ? S 0:00 /usr/local/bin/nfcapd -w -D -l /mnt/disk1/NFLogs/netflow/R7/ -p 2055
 1459 ? S 9:53 /usr/local/bin/nfcapd -w -D -l /mnt/disk1/NFLogs/NEL/R7/ -p 2059
 6669 pts/0 S+   0:00 grep nfcapd
Видим, что порт 2059 прослушивается утилитой и при этом задействуется директория /mnt/disk1/NFLogs/NEL/R7/.
Смотрим содержимое директории несколько раз подряд:
# ls -l /mnt/disk1/NFLogs/NEL/R7/
итого 115708
-rw-r--r-- 1 root root 118482132 Янв 30 09:39 nfcapd.current.1457
# ls -l /mnt/disk1/NFLogs/NEL/R7/
итого 117756
-rw-r--r-- 1 root root 120579156 Янв 30 09:39 nfcapd.current.1457
Размер файла меняется. Значит данные получаются и записываются.
Если размер файла меняться не будет – значит что-то не так и локальный сборщик netflow не работает.

среда, 27 января 2016 г.

Установка и использование удаленного рабочего стола в CentOS7

Для возможности подключаться к удаленному рабочему столу Linux CentOS7 c Windows машины с использованием RDP необходимо сначала установить сам рабочий стол в CentOS7, запустить его, а затем установить и запустить сервер xdrp.

1. Установка GNOME проста:
# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
Запуск графической оболочки выполняется командой:
# startx
При этом консоль будет заблокирована.

Остановка сервиса выполняется командой CTRL+C

Включить запуск графической оболочки при загрузке системы можно так:
# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
После перезагрузки системы необходимо принять лицензионное соглашение. И это можно сделать только в консоле сервера. Доступ по SSH будет заблокирован.
Процедура принятия лицензионного соглашения в консоли сервера:
Сначала набираем «q»:


Потом набираем «yes»:


Затем принимаем лицензионное соглашение:



Теперь можно войти в графический интерфейс сервера с консоли:
   


После загрузки системы с графическим интерфейсом к ней можно подключиться по SSH.
Проверить статус графической системы можно так:
# systemctl status graphical.target

Включить запуск системы без графической оболочки можно следующим образом:
# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

2. Установка сервера xrdp в CentOS7
Убедиться, что имеется подключенный репозитарий EPEL.
Если репозитарий не установлен, то установить его:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
Затем установка сервера xrdp:
# yum -y install xrdp tigervnc-server
Запуск и добавление сервиса xrdp в автозапуск:
# systemctl start xrdp.service
# systemctl enable xrdp.service
Проверка портов, который слушает xrdp:
# netstat -antup | grep xrdp
tcp      0  0 127.0.0.1:3350 0.0.0.0:*  LISTEN   17082/xrdp-sesman
tcp      0  0 0.0.0.0:3389   0.0.0.0:*  LISTEN   17083/xrdp
Порт 3389 должен быть открыт в Firewall на сервере.

3. Подключение по RDP к рабочему столу GNOME выполняется в следующей последовательности:
Запустить программу подключения к удаленному рабочем столу.


Сменить язык раскладки клавиатуры на английский (так как потом этого сделать будет нельзя)


Установить параметры подключения - глубину цвета "24 бита"


Нажать кнопку «Подключить»
Произойдет подключение к серверу:


Вводим логин и пароль пользователя и видим рабочий стол:
Все. Результат достигнут.











воскресенье, 3 января 2016 г.

Установка NUT на CentOS

Установка пакета NUT производиться очень просто:
# yum -y install nut nut-client

Настройка NUT производиться через файлы, лежащие в каталоге
# ls -l /etc/ups/

Использование NUT клиента можно так:
# upsc upsapc@172.16.1.1 battery.voltage
Здесь:
- upsapc - имя UPS в конфигурации NUT.
    В данном случае в конфигурации должно быть:
    MONITOR upsapc@172.16.1.1 "Ip3000 Vokzal 2v"
- 172.16.1.1 - Ip адрес сервера NUT
- battery.voltage - запрашиваемый параметр

Еще параметры, которые можно запрашивать с сервера NUT
ups.status
input.frequency
ups.load
input.voltage
output.voltage

Ссылки
http://fedoranews.org/contributors/kazutoshi_morioka/nut/