20170305

Установка DokuWiki

1. Качаем свежую версию с https://download.dokuwiki.org/
Выбираем порддерживаемые языки, мб сразу аттачим нужные плагины.

# cd ~/src 
# wget https://download.dokuwiki.org/out/dokuwiki-bzzzxxx37.tgz
# tar zxvf dokuwiki-bzzzxxx37.tgz
# ll
drwxr-xr-x 8 apache root     4096 Feb 26 10:09 dokuwiki
-rw-r--r-- 1 root   root  2435217 Feb 26 10:08 dokuwiki-bzzzxxx37.tgz

 2. Копируем файлы dokuwiki в рабочую директорию апача и выставляем владельцев.

# cp -R ~/src/dokuwiki /var/www/
# chown -R apache:root /var/www/dokuwiki/
# ll /var/www/dokuwiki/
drwxr-xr-x  2 apache root  4096 Feb 26 10:09 bin
drwxr-xr-x  2 apache root  4096 Feb 26 10:09 conf
-rw-rw-r--  1 apache root 18092 Feb 20 22:41 COPYING
drwxr-xr-x 12 apache root  4096 Feb 26 10:09 data
-rw-rw-r--  1 apache root  3674 Feb 20 22:41 doku.php
-rw-rw-r--  1 apache root 19374 Feb 20 22:41 feed.php
drwxr-xr-x  6 apache root  4096 Feb 26 10:09 inc
-rw-rw-r--  1 apache root  2097 Feb 20 22:41 index.php
-rw-rw-r--  1 apache root 20700 Feb 20 22:41 install.php
drwxr-xr-x  8 apache root  4096 Feb 26 10:09 lib
-rw-rw-r--  1 apache root   306 Feb 20 22:41 README
drwxr-xr-x  8 apache root  4096 Feb 26 10:09 vendor
-rw-rw-r--  1 apache root    33 Feb 20 22:41 VERSION

3. Донастраиваем апач.
В /etc/httpd/conf.d/vhosts.conf пишем:

<VirtualHost *:443>
        ServerName      wiki.sitename.org
        ServerAdmin     i@am.org
        DocumentRoot /var/www/dokuwiki/
    ####
    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/wiki.sitename.org.crt
    SSLCertificateKeyFile /etc/httpd/ssl/wiki.sitename.org.key
    ####
    ErrorLog logs/wiki_sitename_org_error.log
    CustomLog logs/wiki_sitename_org_access.log common
    ####
</VirtualHost>


4. SSL
Тем или иным способом получаем ssl сертификат, в данном случаем самоподписанный:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/wiki.sitename.org.key -out /etc/httpd/ssl/wiki.sitename.org.crt

Перезапускаем апач.

5. Базовая настройка dokuwiki:
-- переходим на https://wiki.sitename.org/install.php
-- даем имя wiki
-- заведим суперпользователя
-- зададаем тип wiki - открытая, readonly или закрытая
-- выбираем тип лицензии

После настройки надо удалить install.php
# rm -f /var/www/dokuwiki/install.php


6. Переносим директории data, conf, bin за пределы веб-сервера.
# mkdir /var/www/dokudata
# mv /var/www/dokuwiki/data/ /var/www/dokudata/
# mv /var/www/dokuwiki/conf/ /var/www/dokudata/
# mv /var/www/dokuwiki/bin/ /var/www/dokudata/


Директория conf
В /var/www/dokuwiki/inc создаем файл preload.php сдел. содержания:

<?php
// DO NOT use a closing php tag. This causes a problem with the feeds,
// among other things. For more information on this issue, please see:w
// http://www.dokuwiki.org/devel:coding_style#php_closing_tags

define('DOKU_CONF','/var/www/dokudata/conf/');

Владельцев ставим apache:root

Директория data
В конец файла /var/www/dokudata/conf/local.php пишем след. строчку:

$conf['savedir'] = '/var/www/dokudata/data';

7. Выставляем прав.
chown -R apache:root /var/www/dokuwiki/
chmod -R 660 /var/www/dokuwiki/
find /var/www/dokuwiki/ -type d -exec chmod 770 {} \;

chown -R apache:root /var/www/dokudata/
chmod -R 660 /var/www/dokudata/
find /var/www/dokudata/ -type d -exec chmod 770 {} \;


Еще раз перезапускаем апач и можно пользоваться.

---

При написании заметки использовались материалы:
https://www.rosehosting.com/blog/install-and-run-dokuwiki-the-most-versatile-wiki-on-a-centos-7-vps/
https://www.dokuwiki.org/security
https://linuxcluster.wordpress.com/2014/07/16/installing-dokuwiki-on-centos-6/


20160509

Быстрые заметки по apache

3. Директива AllowOwerride
AllowOwerride позволяет определить какие директивы можно перезаписать в файле .htaccess.


2. Директива Indexes
Директива позволяет просматривать содержимое каталога в отсутствии индексного файла (index.html, index.php и пр.).
Как правило эту директиру отключают по соображением безопасности и при попытке просмотреть содержимое каналога сервер выдаст 403 ошибку - "error] [client 10.20.30.40] Directory index forbidden by Options directive: /var/www/noc/prj/"

В "/var/www/noc/prj/" лежат файлы которым надо предоставить доступ (см. ниже), в этом случае разрешаем индексирование и конфиг будет выглядеть след. образом:


     <Directory "/var/www/noc/prj">
     Options Indexes
     Order deny,allow
     Deny from all
     Allow from 10.20.30.40 10.20.31.40
 </Directory>

1. Директива Order
Директива позволяет ограничить доступ к каталогу или файлу по ip адресу и может быть прописана в файле .htaccess или в настройках сайта.

Директирва имет два режима работы -  "Order deny,allow" или "Order allow,deny".

deny,allow - запрещаем доступ со всех ip и разрешаем с определенных.
allow,deny - разрешаем доступ со всех ip и запрещаем с определенных.


Пример:

Разрешаем  доступ к каталогу с двух ip адресов.


     <Directory "/var/www/noc/prj">
     Order deny,allow
     Deny from all
     Allow from 10.20.30.40 10.20.31.40
 </Directory>


20160505

Быстрые заметки про Centos7

3. Установить MySQL.

Ставим репозиторий:
[root@monitor1 ~]# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Retrieving http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-release-el7-5    ################################# [100%]

Ставим сервер:
[root@monitor1 ~]# yum install mysql-server


Запускаем и проверяем:
[root@monitor1 ~]# systemctl start mysql
[root@monitor1 ~]# systemctl status mysql
● mysqld.service - MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2016-05-05 17:31:38 MSK; 5s ago
  Process: 1172 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1113 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1171 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ├─1171 /bin/sh /usr/bin/mysqld_safe
           └─1324 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysq...



2. Отключить ipv6. 
Добавляем в /etc/sysclt.conf пару строк:
"net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1"

Применяем изменения:

"[root@monitor1 network-scripts]# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1"


1. Посмотреть ip адрес.
В минимальной версии нет привычной команды ifconfig.
Посмотреть текущий ip адрес можно командой "ip addr".

Результат:

[root@monitor1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:da:8c:10 brd ff:ff:ff:ff:ff:ff
    inet 192.168.xxx.16/24 brd 192.168.13.255 scope global ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feda:8c10/64 scope link
       valid_lft forever preferred_lft forever

Конфиг интерфейса лежит на прежнем месте - 
 /etc/sysconfig/network-scripts/ens160

Поднять интерфейс "ifup ens160".


20160203

Быстрые заметки про LCP

1. Анализ проблемы с pppoe. 
В одном офисе перестал работать pppoe канал в интернет. 
Со стороны провайдера было видно srx, но не проходила аутентификация. 

Дамп снятый с srx.
root@srx> monitor traffic interface pp0.0 extensive count 100

Начало новой сессии, srx послылает запрос на согласование параметров (опций) подключения. 
18:03:52.248235 Out 
        ...
        -----original packet-----
        54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 36: PPPoE  [ses 37713]LCP (0xc021), length 16: LCP, Conf-Request (0x01), id 70, length 16
        encoded length 14 (=Option(s) length 10)
        0x0000: c021 0146 000e 
          MRU Option (0x01), length 4: 1492
            0x0000: 05d4 
          Magic-Num Option (0x05), length 6: 0x5665bd0c
            0x0000: 5665 bd0c 


Провайдер согласился с предложенными значениям параметров. 
18:03:52.268010  In 
        ...
        -----original packet-----
        00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE  [ses 37713]LCP (0xc021), length 16: LCP, Conf-Ack (0x02), id 70, length 16
        encoded length 14 (=Option(s) length 10)
        0x0000: c021 0246 000e 
          MRU Option (0x01), length 4: 1492
            0x0000: 05d4 
          Magic-Num Option (0x05), length 6: 0x5665bd0c
            0x0000: 5665 bd0c 


Провайдер предложил следующую пачку опций, в т.ч. и метот аутентификации - PAP. 
18:03:54.132155  In 
        ...
        -----original packet-----
        00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE  [ses 37713]LCP (0xc021), length 37: LCP, Conf-Request (0x01), id 2, length 37
        encoded length 35 (=Option(s) length 31)
        0x0000: c021 0102 0023 
          PFC Option (0x07), length 2: 
          MRU Option (0x01), length 4: 1492
            0x0000: 05d4 
          Magic-Num Option (0x05), length 6: 0x2840ee38
            0x0000: 2840 ee38 
          Auth-Prot Option (0x03), length 4: PAP
            0x0000: c023 
          MRRU Option (0x11), length 4: 2048
            0x0000: 0800 
          12-Bit seq # Option (0x12), length 2: 
          End-Disc Option (0x13), length 9: MAC 00:1e:67:00:00:03
            0x0000: 0300 1e67 0278 27

SRX не согласился с предложенными провайдером значениями папаметров,  и послал список неугодных опций. 
18:03:54.132528 Out 
        ...
        -----original packet-----
        54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 43: PPPoE  [ses 37713]LCP (0xc021), length 23: LCP, Conf-Reject (0x04), id 2, length 23
        encoded length 21 (=Option(s) length 17)
        0x0000: c021 0402 0015 
          PFC Option (0x07), length 2: 
          MRRU Option (0x11), length 4: 2048
            0x0000: 0800 
          12-Bit seq # Option (0x12), length 2: 
          End-Disc Option (0x13), length 9: MAC 00:1e:67:00:00:03
            0x0000: 0300 1e67 0278 27

Провайдер еще раз предлагает метот аутентификации PAP
18:03:54.134273  In 
        ...
        -----original packet-----
        00:1e:67:00:00:02 > 54:e0:32:00:00:01, ethertype PPPoE S (0x8864), length 60: PPPoE  [ses 37713]LCP (0xc021), length 20: LCP, Conf-Request (0x01), id 3, length 20
        encoded length 18 (=Option(s) length 14)
        0x0000: c021 0103 0012 
          MRU Option (0x01), length 4: 1492
            0x0000: 05d4 
          Magic-Num Option (0x05), length 6: 0x2840ee38
            0x0000: 2840 ee38 
          Auth-Prot Option (0x03), length 4: PAP
            0x0000: c023 

SRX поправляет и предлагает CHAP. 
18:03:54.134654 Out 
        ...
        -----original packet-----
        54:e0:32:00:00:01 > 00:1e:67:00:00:02, ethertype PPPoE S (0x8864), length 31: PPPoE  [ses 37713]LCP (0xc021), length 11: LCP, Conf-Nack (0x03), id 3, length 11
        encoded length 9 (=Option(s) length 5)
        0x0000: c021 0303 0009 
          Auth-Prot Option (0x03), length 5: CHAP, MD5
            0x0000: c223 05

Последние два сообщения еще раз десять ходят в обе стороны и потом согласование параметров начинается заново.  


0. LCP - Link Control Protocol
https://ru.wikipedia.org/wiki/LCP

Быстрые записки по cisco.

2. Перенумеровать правила в acl. 
router(config)#ip access-list resequence test-access 10 5
test-access - имя расширенного списка доступа, здесь может стоять номер списка.
10 - номер первого правила в списке доступа
5 - шаг нумерации

1. Посмотеть что не попадает в CEF.

#sh cef not-cef-switched
CEF Packets passed on to next switching layer
Slot  No_adj No_encap Unsupp'ted Redirect  Receive  Options   Access     Frag
RP   1552463       0           0             614954  1732554   0             0               0

---
http://admindoc.ru/1419/ip-routing-and-forwarding/
Референс:
http://www.cisco.com/c/en/us/td/docs/ios/ipswitch/command/reference/isw_book/isw_s1.html#wp1118673

20160130

Быстрые заметки по mysql

8. Сбросить рутовый пароль
Останавливаем mysql
# /etc/init.d/mysqld stop
Stopping mysqld:                                           [  OK  ]

Запускаем mysql в безопасном режиме.
# /usr/bin/mysqld_safe --skip-grant-tables --user=root &
[1] 6363
# 160206 12:54:08 mysqld_safe Logging to '/var/log/mysqld.log'.
160206 12:54:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Заходим под рутом без пароля.
# mysql -u root

Переключаемся на базу mysql.
mysql> USE mysql;

Смотрим список таблиц и содержаение таблицы user.

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
...
| user                      |
+---------------------------+
23 rows in set (0.00 sec)

mysql> SELECT * FROM user

В таблице user так же есть пароли и настройки всех остальных пользователей.

Задаем новый пароль P@s$ = меняем значение поля Password

mysql> UPDATE user SET Password=PASSWORD('P@s$') WHERE User='root';
Функция "PASSWORD()" используется для шифрования.


Выходим и перезапускаем mysql
mysql> exit
Bye
# /etc/init.d/mysqld restart
160206 13:12:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[1]+  Done                    /usr/bin/mysqld_safe --skip-grant-tables --user=root


7. Изменить значение поля в строке
Есть строка.
mysql> SELECT * FROM logcon_views;
+----+-------------+-------------------------------------+--------+---------+
| ID | DisplayName | Columns                             | userid | groupid |
+----+-------------+-------------------------------------+--------+---------+
|  2 | SRX-FILTER  | SRX, TIME_UTC_6, TIME_UTC, msg, 111 |   NULL |    NULL |
+----+-------------+-------------------------------------+--------+---------+

1 row in set (0.00 sec)

Хотим изменить значение поля Columns  в строке с ID равным 2. 
mysql> UPDATE logcon_views SET Columns = 'SRX, TIME_UTC_6, TIME_UTC, msg' WHERE ID = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0



6. Удалить строку из таблицы
Есть такая таблица.
mysql> select * from logcon_fields;
+--------------+------------------+--------------+
| FieldID      | FieldDefine      | FieldCaption |
+--------------+------------------+--------------+
| SRX          | SYSLOG_SRX       | SRX          |
| TIME (UTC+6) | SYSLOG_TIME_UTC6 | TIME (UTC+6) |
+--------------+------------------+--------------+
2 rows in set (0.00 sec)

Хотим удалить вторую строку. 
mysql> DELETE FROM logcon_fields WHERE FieldID ="TIME (UTC+6)";
Query OK, 1 row affected (0.00 sec)

5. Создать базу из шаблона
Есть вот такой шаблон базы для rsyslog.
]# cat /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql
CREATE DATABASE rsyslog_db;
USE rsyslog_db;
CREATE TABLE SystemEvents
(
        ID int unsigned not null auto_increment primary key,
        CustomerID bigint,
#....
       SystemID int NULL
);

CREATE TABLE SystemEventsProperties
(
        ID int unsigned not null auto_increment primary key,
        SystemEventID int NULL ,
        ParamName varchar(255) NULL ,
        ParamValue text NULL
);

Что бы создать эту базу даем след. команду:
# mysql -u root -p < /usr/share/doc/rsyslog-mysql-5.8.10/createDB.sql

Проверяем.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti_db           |
| mysql              |
| racktables_db      |
| rsyslog_db         |
| viewvc_db          |
+--------------------+
6 rows in set (0.00 sec)

mysql> use rsyslog_db;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------------+
| Tables_in_rsyslog_db   |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

6. Дать права пользователю на базу и задать пароль.
mysql> grant all privileges on rsyslog_db.* to rsyslog_user@localhost identified by 'P@Ss';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

5. Создать пользователя
mysql> create user rsyslog_user@localhost;
Query OK, 0 rows affected (0.00 sec)

4. Удалить пользователя
mysql> drop user rsyslog_user@localhost;

Query OK, 0 rows affected (0.00 sec)


3. Удалить базу
mysql> drop database rsyslog_db;

Query OK, 13 rows affected (0.00 sec)


2. Посмотреть имеющиеся базы
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cacti_db           |
| mysql              |
| racktables_db      |
| rsyslog_db         |
| viewvc_db          |
+--------------------+
6 rows in set (0.00 sec)


1. Заход
Заход под root на localhost, пароль надо ввести.
# mysql -u root -p
Enter password:


20160114

bash скрипты

3.Переместить файл и добавить в имя дату и время перемещения.
#!/bin/sh
mv /var/www/html/dump/dump.xml /var/www/html/dump/dump.xml.$(date +"%Y%m%d-%H%M")
cp /home/rkn/dump.xml /var/www/html/dump/dump.xml



2. Переместить логи которые заархивировал logrotate и удалить логи странше 60 дней. 
#!/bin/sh
mv /var/log/somelog/*.gz /var/log/somelog/archive/
find /var/log/somelog/archive/ -type f -mtime +60 -delete


Культурнее. 
#!/bin/bash
branch_dir=(offce1 office2)

for i in ${branch_dir[@]}; do
    mv /var/log/somelog/$i/*.gz /var/log/somelog/1archive-$i/
    find /var/log/somelog/1archive-$i/ -type f -mtime +60 -delete

 


1. Сравнить ip адрес у url без\с www
#!/bin/sh
url=$1
host $url | head -n 1
host www.$url | head -n 1

20160103

Быстрые заметки по FireFox

3. Базовый набор плагинов.
habrahabr.ru/post/195052/
Adblock Plus
NoScript
Cookie Monster
Download YouTube Videos as MP4
 

2. Приватный рехим при старте FF.
2.1 kostya@aee:~$ firefox --private --no-remote
2.2 kostya@aee:~$ firefox -P newprofile1 --no-remote
about:config
browser.privatebrowsing.autostart -> true

Визуально понять, что находишься в приватном режиме можно только с помощью мемменджера "Firefox Hello", иконка будет в виде пустого облачка разговора.

1. Создание и запуск нового профиля.
Что бы запустить меню где можно сделать еще один профиль даем команду:
kostya@aee:~$ firefox -P

Запусть новый профиль:
kostya@aee:~$ firefox -P newprofile1 --no-remote

20151203

Быстрые заметки по awk


2. Отформатировать список адресов под junos address-book.
Есть список ip-адресов и имен серверов:

$ cat TEST-SERV-LOW
192.168.1.1;server1
192.168.1.2;server2
192.168.1.3;server3
192.168.1.4;server4

Этот список надо быстро добавить через "load set relative" в address-book.
Делаем address и address-set.

-- Поменяем регистр имен:
$ tr [:lower:] [:upper:] <TEST-SERV-LOW> TEST-SERV-UP
$ cat TEST-SERV-UP
192.168.1.1;SERVER1
192.168.1.2;SERVER2
192.168.1.3;SERVER3
192.168.1.4;SERVER4

-- С помощью awk печатаем команды:
$ awk -F ';' '{ print "set address " $2 " " $1}'  TEST-SERV-UP > server-set-load | awk -F ';' '{print "set address-set SET-SERVER-IP " $2}' TEST-SERV-UP >> server-set-load

$ cat server-set-load
set address SERVER1 192.168.1.1
set address SERVER2 192.168.1.2
set address SERVER3 192.168.1.3
set address SERVER4 192.168.1.4
set address-set SET-SERVER-IP SERVER1
set address-set SET-SERVER-IP SERVER2
set address-set SET-SERVER-IP SERVER3
set address-set SET-SERVER-IP SERVER4



1. Сумма чисел.

Есть вот такой лог, файл test1:
[18/Nov/2015 21:18:03] {pktdrop} Last message repeated 4 times
[18/Nov/2015 21:18:03] {pktdrop} Last message repeated 3 times
[18/Nov/2015 21:18:03] {pktdrop} Last message repeated 13 times
[18/Nov/2015 21:18:03] {pktdrop} Last message repeated 8 times
[18/Nov/2015 21:18:03] {pktdrop} Last message repeated 3 times

Надо посчитать сколько раз повторялось сообщение.

В качестве разделителя используется пробел, числа которые надо сложить находятся в 7-й переменной.

Что бы вывести только эти числа даем команду:
[k@redpc ~]$ awk -F ' ' '{print $7}' test1
4
3
13
8
3

Суммируем эти числа:
[k@redpc ~]$ awk -F ' ' '{print $7}' test1 | awk '{ x += $0 } END {print x}'
31

или можно сразу так:
[k@redpc ~]$  awk '{ x += $7 } END {print x}' test1
31


20150903

Установка VMwareTools на Centos.

1. Включаем ВМ.

2. Подключаем из esxi клиента образ с vmwaretools.
Правой кнопкой мыши по ВМ -> Guest -> Install/Upgrade VMware Tools

3. Монтируем cdrom с образом.
root@sbc2 ~
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

root@sbc2 ~
# ll /mnt/
total 62915
-r-xr-xr-x 1 root root     1970 Aug 22  2014 manifest.txt
-r-xr-xr-x 1 root root     1850 Aug 22  2014 run_upgrader.sh
-r--r--r-- 1 root root 63024310 Aug 22  2014 VMwareTools-9.4.10-2068191.tar.gz
-r-xr-xr-x 1 root root   693484 Aug 22  2014 vmware-tools-upgrader-32
-r-xr-xr-x 1 root root   702400 Aug 22  2014 vmware-tools-upgrader-64

4. Распаковываем архив. 
root@sbc2 ~ 
# mkdir vmtool

root@sbc2 ~ 
# cd vmtool/

root@sbc2 vmtool 
# tar zxpf /mnt/VMwareTools-9.4.10-2068191.tar.gz 

root@sbc2 vmtool 
# ll
total 4
drwxr-xr-x 7 root root 4096 Aug 22  2014 vmware-tools-distrib

root@sbc2 vmtool 
# cd vmware-tools-distrib/
root@sbc2 vmware-tools-distrib 
# ll
total 480
drwxr-xr-x  2 root root   4096 Aug 22  2014 bin
drwxr-xr-x  2 root root   4096 Aug 22  2014 doc
drwxr-xr-x  5 root root   4096 Aug 22  2014 etc
-rw-r--r--  1 root root 265487 Aug 22  2014 FILES
-rw-r--r--  1 root root   2538 Aug 22  2014 INSTALL
drwxr-xr-x  2 root root   4096 Aug 22  2014 installer
drwxr-xr-x 14 root root   4096 Aug 22  2014 lib
-rwxr-xr-x  1 root root 197302 Aug 22  2014 vmware-install.pl

5. Ставим. На все вопросы отвечаем по дефолту, просто жмем Enter.
root@sbc2 vmware-tools-distrib 
# ./vmware-install.pl 
Creating a new VMware Tools installer database using the tar4 format.

Installing VMware Tools.

In which directory do you want to install the binary files? 
[/usr/bin] 

What is the directory that contains the init directories (rc0.d/ to rc6.d/)? 
[/etc/rc.d] 

What is the directory that contains the init scripts? 
[/etc/rc.d/init.d] 

In which directory do you want to install the daemon files? 
[/usr/sbin] 

In which directory do you want to install the library files? 
[/usr/lib/vmware-tools] 

The path "/usr/lib/vmware-tools" does not exist currently. This program is 
going to create it, including needed parent directories. Is this what you want?
[yes] 

In which directory do you want to install the documentation files? 
[/usr/share/doc/vmware-tools] 

The path "/usr/share/doc/vmware-tools" does not exist currently. This program 
is going to create it, including needed parent directories. Is this what you 
want? [yes] 

The installation of VMware Tools 9.4.10 build-2068191 for Linux completed 
successfully. You can decide to remove this software from your system at any 
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by 
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want 
this program to invoke the command for you now? [yes] 

Initializing...

Making sure services for VMware Tools are stopped.

Found a compatible pre-built module for vmci.  Installing it...


Found a compatible pre-built module for vsock.  Installing it...

The module vmxnet3 has already been installed on this system by another 
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=vmxnet3 to override.

The module pvscsi has already been installed on this system by another 
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=pvscsi to override.

The module vmmemctl has already been installed on this system by another 
installer or package and will not be modified by this installer.

Use the flag --clobber-kernel-modules=vmmemctl to override.

The VMware Host-Guest Filesystem allows for shared folders between the host OS 
and the guest OS in a Fusion or Workstation virtual environment.  Do you wish 
to enable this feature? [no] 

Found a compatible pre-built module for vmxnet.  Installing it...

The vmblock enables dragging or copying files between host and guest in a 
Fusion or Workstation virtual environment.  Do you wish to enable this feature?
[no] 

VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. This feature can be

enabled/disabled by re-running vmware-config-tools.pl.

Would you like to enable VMware automatic kernel modules?
[no] 

No X install found.

Creating a new initrd boot image for the kernel.

vmware-tools start/running
The configuration of VMware Tools 9.4.10 build-2068191 for Linux for this 
running kernel completed successfully.

You must restart your X session before any mouse or graphics changes take 
effect.

You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.

To enable advanced X features (e.g., guest resolution fit, drag and drop, and 
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.

Enjoy,

--the VMware team



20150902

Быстрые заметки по APC

2. Переключить web интерфейс обратно на http.
apc>web -S http
E002: Success
Reboot required for change to take effect.

apc>reboot
E000: Success
Reboot Management Interface
Enter 'YES' to continue or <ENTER> to cancel : yes

Rebooting...


1. Перезагрузка карты управления.
Из CLI
apc>reboot
E000: Success
Reboot Management Interface
Enter 'YES' to continue or <ENTER> to cancel : yes
Rebooting...

Сам ИБП продолжит работать. 


20150830

Насильно применить конфигурацию на развалившемся кластере состоящим из двух Juniper SRX.

Предположим что есть кластер на нодах которого, в результате неудачного обновления, стоят разные версии Junos (ну и там еще data-link порвали).

{primary:node0}[edit]
root@srx-n0#  run show system software
node0:
--------------------------------------------------------------------------
Information for junos:

Comment:
JUNOS Software Release [12.1X46-D35.1]

node1:
--------------------------------------------------------------------------
Information for junos:

Comment:
JUNOS Software Release [12.1X47-D25.4]

Обе RG работают на node0.
{primary:node0}[edit]
root@srx-n0# run show chassis cluster status
Monitor Failure codes:
    CS  Cold Sync monitoring        FL  Fabric Connection monitoring
    GR  GRES monitoring             HW  Hardware monitoring
    IF  Interface monitoring        IP  IP monitoring
    LB  Loopback monitoring         MB  Mbuf monitoring
    NH  Nexthop monitoring          NP  NPC monitoring            
    SP  SPU monitoring              SM  Schedule monitoring

Cluster ID: 3
Node   Priority Status         Preempt Manual   Monitor-failures

Redundancy group: 0 , Failover count: 1
node0  100      primary        no      no       None          
node1  1        secondary      no      no       None          

Redundancy group: 1 , Failover count: 1
node0  0        primary        no      no       IF CS        
node1  0        secondary      no      no       IF CS

Применить какие-либо изменения в конфигурации нельзя - srx ругается:

{primary:node0}[edit]
root@srx-n0# commit check
node0:
configuration check succeeds
error: error communicating with
error: remote commit-configuration failed on node1
error: configuration check-out failed
error:
Connection to node1 has been broken
error: remote unlock-configuration failed on node1

и 

{primary:node0}[edit]
root@srx-n0# commit 
node0: 

configuration check succeeds
error: 
Connection to node1 has been broken
warning: pull configuration failed, fallback to push configuration method
error: remote load-configuration failed on node1
error: remote unlock-configuration failed on node1

Поиск по подобным ошибкам выводит на команду "commit synchronize force".
В моем случае она не сработала.

{primary:node0}[edit]
root@srx-n0# commit synchronize force
node0:
configuration check succeeds
error:
Connection to node1 has been broken
warning: pull configuration failed, fallback to push configuration method
error: remote load-configuration failed on node1
error: remote unlock-configuration failed on node1


Для меня решением была скрытая команда "commit force", конфигурация применилась только на одной ноде.
{primary:node0}[edit]
root@msk-02-srx3-n0# commit fo                
                              ^
syntax error.
root@msk-02-srx3-n0# commit force          
node0:

commit complete

Вот.

20150827

Процесс установки сигнатур application-identification на кластер из srx.

В отличии от лицензий все действия с сигнатурами можно делать только на основной ноде.

Скачиваем сигнатуры.
{primary:node0}
root@srx-n0> request services application-identification download
Please use command
        "request services application-identification download status" to check download status

{primary:node0}
root@srx-n0> request services application-identification download status  
Fetching/Uncompressing https://signatures.juniper.net/xmlupdate/226/Libqmprotocols/2528/libqmprotocols.tgz

{primary:node0}
root@srx-n0> request services application-identification download status    
Downloading application package 2528 succeed.


Инсталируем сигнатуры.
{primary:node0}
root@srx-n0> request services application-identification install 
node0:
--------------------------------------------------------------------------
Please use command
        "request services application-identification install status" to check install status

node1:
--------------------------------------------------------------------------
Please use command
        "request services application-identification install status" to check install status


Следим за процессом. 
{primary:node0}
root@srx-n0> request services application-identification install status 
node0:
--------------------------------------------------------------------------
Checking compatibility of application package version 2528 ...

node1:
--------------------------------------------------------------------------
Checking compatibility of application package version 2528 ...


{primary:node0}
root@srx-n0> request services application-identification install status    
node0:
--------------------------------------------------------------------------
Installed Application package (2528) successfully in RE,
Application package and Protocol bundle installation in pfe is in progress

node1:
--------------------------------------------------------------------------
Cleaning up legacy configurations in Junos configuration ...


{primary:node0}
root@srx-n0> request services application-identification install status    
node0:
--------------------------------------------------------------------------
Installed Application package (2528) successfully in RE,
Application package and Protocol bundle installation in pfe is in progress

node1:
--------------------------------------------------------------------------
Installed Application package (2528) successfully in RE,
Application package and Protocol bundle installation in pfe is in progress



{primary:node0}
root@srx-n0> request services application-identification install status    
node0:
--------------------------------------------------------------------------
Installed
        Application package (2528) and Protocol bundle successfully

node1:
--------------------------------------------------------------------------
Installed Application package (2528) successfully in RE,
Application package and Protocol bundle installation in pfe is in progress


{primary:node0}
root@srx-n0> request services application-identification install status    
node0:
--------------------------------------------------------------------------
Installed
        Application package (2528) and Protocol bundle successfully

node1:
--------------------------------------------------------------------------
Installed
        Application package (2528) and Protocol bundle successfully


Проверяем версии.
{primary:node0}
root@srx-n0> show services application-identification version 
node0:
--------------------------------------------------------------------------

  Application package version: 2528

node1:
--------------------------------------------------------------------------

  Application package version: 2528

Смотрим на группы сигнатур.
{primary:node0}
root@srx-n0> show services application-identification group summary 
node0:
--------------------------------------------------------------------------
Application Group(s): 90
Application Groups                                Disabled  ID 
  junos:behavioral                                 No        92       
  junos:unassigned                                 No        91       
  junos:web:proxy                                  No        48       
  junos:remote-access:interactive-desktop          No        34       
  junos:infrastructure:mobile                      No        57       
  junos:web:wiki                                   No        54       
...


node1:
--------------------------------------------------------------------------
Application Group(s): 90
Application Groups                                Disabled  ID 
  junos:behavioral                                 No        92       
  junos:unassigned                                 No        91       
  junos:web:proxy                                  No        48       
  junos:remote-access:interactive-desktop          No        34       
  junos:infrastructure:mobile                      No        57       
  junos:web:wiki                                   No        54       
...

Ставим триальную лицензию на кластер из srx.

Лицензии надо ставить на каждой ноде отдельно.

Сначала будем ставить лицензии на node0 которая является главной нодой для RG0 (там, где RE крутится).
root@srx-n0> show chassis cluster status
Monitor Failure codes:
    CS  Cold Sync monitoring        FL  Fabric Connection monitoring
    GR  GRES monitoring             HW  Hardware monitoring
    IF  Interface monitoring        IP  IP monitoring
    LB  Loopback monitoring         MB  Mbuf monitoring
    NH  Nexthop monitoring          NP  NPC monitoring            
    SP  SPU monitoring              SM  Schedule monitoring
    CF  Config Sync monitoring

Cluster ID: 3
Node   Priority Status         Preempt Manual   Monitor-failures

Redundancy group: 0 , Failover count: 3
node0  100      primary        no      no       None          
node1  1        secondary      no      no       None          

Redundancy group: 1 , Failover count: 1
node0  100      primary        no      no       None          
node1  0        secondary      no      no       IF            

Запрашиваем лицензии.
{primary:node0}
root@srx-n0> request system license update trial

Trying to update trial license keys from https://ae1.juniper.net, use 'show system license' to check status.

Смотрим лицензии. 
{primary:node0}
root@srx-n0> show system license    
License usage: 
                                 Licenses     Licenses    Licenses    Expiry
  Feature name                       used    installed      needed 
  av_key_kaspersky_engine               0            1           0    2015-09-26 03:00:00 GMT-3
  anti_spam_key_sbl                     0            1           0    2015-09-26 03:00:00 GMT-3
  wf_key_surfcontrol_cpa                0            1           0    2015-09-26 03:00:00 GMT-3
  idp-sig                               0            1           0    2015-09-26 03:00:00 GMT-3
  dynamic-vpn                           0            2           0    permanent
  ax411-wlan-ap                         0            2           0    permanent
  appid-sig                             0            1           0    2015-09-26 03:00:00 GMT-3
  av_key_sophos_engine                  0            1           0    2015-09-26 03:00:00 GMT-3
  wf_key_websense_ewf                   0            1           0    2015-09-26 03:00:00 GMT-3

Licenses installed: 
....

Все хорошо. 

Руками переключаемся на node1. 
{primary:node0}
root@srx-n0> request chassis cluster failover redundancy-group 0 node 1 
node1:
--------------------------------------------------------------------------
Initiated manual failover for redundancy group 0

Переключилось.
root@srx-n1> show chassis cluster status      
Monitor Failure codes:
    CS  Cold Sync monitoring        FL  Fabric Connection monitoring
    GR  GRES monitoring             HW  Hardware monitoring
    IF  Interface monitoring        IP  IP monitoring
    LB  Loopback monitoring         MB  Mbuf monitoring
    NH  Nexthop monitoring          NP  NPC monitoring              
    SP  SPU monitoring              SM  Schedule monitoring
    CF  Config Sync monitoring
 
Cluster ID: 3
Node   Priority Status         Preempt Manual   Monitor-failures

Redundancy group: 0 , Failover count: 1
node0  100      secondary      no      yes      None           
node1  255      primary        no      yes      None           

Redundancy group: 1 , Failover count: 0
node0  100      primary        no      no       None           
node1  0        secondary      no      no       IF     

Запрашивем лицензии на node1.
{primary:node1}
root@srx-n1> request system license update trial 
Trying to update trial license keys from https://ae1.juniper.net, use 'show system license' to check status.
       
Все загрузилось.  
{primary:node1}
root@msk-02-srx3-n1> show system license                    
License usage: 
                                 Licenses     Licenses    Licenses    Expiry
  Feature name                       used    installed      needed 
  av_key_kaspersky_engine               0            1           0    2015-09-26 03:00:00 GMT-3
  anti_spam_key_sbl                     0            1           0    2015-09-26 03:00:00 GMT-3
  wf_key_surfcontrol_cpa                0            1           0    2015-09-26 03:00:00 GMT-3
  idp-sig                               0            1           0    2015-09-26 03:00:00 GMT-3
  dynamic-vpn                           0            2           0    permanent
  ax411-wlan-ap                         0            2           0    permanent
  appid-sig                             0            1           0    2015-09-26 03:00:00 GMT-3
  av_key_sophos_engine                  0            1           0    2015-09-26 03:00:00 GMT-3
  wf_key_websense_ewf                   0            1           0    2015-09-26 03:00:00 GMT-3

Licenses installed: 
...

Все. 

20150810

Быстрые заметки по Huawei

1. Посмотреть серийный номер коммутатора.
<s5328>display elabel
...
[Board Properties]
BoardType=CX77XC
BarCode=21023516101234567890
Item=02351300
Description=Quidway S5328C-EI,CX7Z128CM,S5328C-EI Mainframe(24 10/100/1000Base-T,Chassis,Dual Slots of power,Without Flexible Card and Power Module)
Manufactured=2012-10-07
VendorName=Huawei
IssueNumber=00
CLEICode=                                

BOM=                                    

Серийник указан в поле BarCode.

Большая дока с указанием где искать серийные номера на оборудовании huawei:
http://huaweienterpriseusa.com/system/files/resources/How%20to%20collect%20SN.pdf?nid=797

20150726

Логирование информации о проходящем через Juniper SRX трафике.

Точка съема информации.
Снимать информацию о трафике можно как минимум с двух точек:
-- Правила файрвола, уровень [edit firewall ] 
Тут видно просто факт прохождение пакета через фильтр, действие примененное к пакету, ip адреса и порты, протокол и  интерфейс.

-- Правила политик безопасности, уровень [edit security policies] 
На этом уровне можно получить гораздо больше информации. Здесь можно посмотреть номер сессии, ip адреса до и после ната, имена политик безопасности и пр.

Формат логов файрвола.
На syslog сервер логи приходят в таком формате:
Jul 24 04:50:49 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   D  tcp 1.1.1.1 9.9.9.9 53291 33434 (1 packets)
Jul 24 04:50:50 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   R udp 2.2.2.2 9.9.9.9 53971 5060
 (1 packets)
Jul 24 04:50:52 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   A  tcp 3.3.3.3 9.9.9.9  47321 443 (1 packets)

* Код (тип) сообщения = PFE_FW_SYSLOG_IP:, удобно использовать для настройки фильтров на syslog сервере.
* Указатель на источник сообщений = FW:, сообщения которые были получены в соответствии с настройками фильтров файрвола.
* Интерфейс на котором висит фильтр = fe-0/0/3.0.
* Действие = D, R, A (discard, reject, accept).
* Протокол = tcp, udp, ospf и пр.
* Адрес источника = 1.1.1.1 
* Адрес назначение = 9.9.9.9
* Порт источника = 53291
* Порт назначения = 33434
* Количество пакетов = (1 packets), не припомню что бы было больше.

Формат логов политик безопасности.
Сообщения от политик безопасности могут быть трех видов:
-- создание сессии, указатель RT_FLOW_SESSION_CREATE
-- запрет сессии, указатель RT_FLOW_SESSION_DENY
-- закрытие сессии, указатель RT_FLOW_SESSION_CLOSE

Логи снимались с srx на котором работает AppFW. 
AppFW добавляет в лог несколько полей.

RT_FLOW_SESSION_CREATE
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:35.408+03:00 srx RT_FLOW:  RT_FLOW_SESSION_CREATE: session created 10.90.80.50/55871->87.240.131.99/80 junos-http 9.9.9.9/29419->87.240.131.99/80 src-nat-rule1 None 6 DEBUG-DENY-ANY-LOG VPN PX 21949 N/A(N/A) gr-0/0/0.14 HTTP INCONCLUSIVE No

###Стандартные поля###
* Код (тип) сообщения = RT_FLOW
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Адрес источника после nat (nat-source-address) = 9.9.9.9
* Порт источника после nat (nat-source-port) = 29419
* Адрес назначение после nat (nat-destination-address) = 87.240.131.99
* Порт назначение после nat (nat-destination-port) = 80
* Имя правила по которому делался source nat (src-nat-rule-name) = src-nat-rule1
* Имя правила по которому делался destination nat (dst-nat-rule-name) = None
###N/A т.к. в данном случае srx не делает destination nat###
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Номер сессии (session-id-32) = 21949
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
###Поля AppFW###
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = INCONCLUSIVE
###srx пока не разобрался что это за приложение и ставит тип incocnclusive т.к. прошел только syn пакет###
* Шифрование (encrypted) = No

RT_FLOW_SESSION_DENY
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:35.461+03:00 srx RT_FLOW: RT_FLOW_SESSION_DENY: session denied 10.90.80.50/55871->87.240.131.99/80 junos-http 6(0) DEBUG-DENY-ANY-LOG VPN PX HTTP VKONTAKTE N/A(N/A) gr-0/0/0.14 No appfw reject

* Код (тип) сообщения = RT_FLOW
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Тип icmp (icmp-type)  = (0), указывает на тип icmp пакета который был отброшен.
###Если это был не icmp пакет, то в этом поле всегда будет стоять "(0)"###
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = VKONTAKTE
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
* Шифрование (encrypted) = No
* Указатель на то как и кем была отвергнута сессия (reason) = appfw reject
###В данном случае сессию закрыл AppFW действием reject.  Без  AppFW, в этом поле будет стоять просто deny или reject###

RT_FLOW_SESSION_CLOSE
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:37.211+03:00 srx RT_FLOW: RT_FLOW_SESSION_CLOSE:  session closed TCP RST: 10.90.80.50/55871->87.240.131.99/80 junos-http 9.9.9.9/29419->87.240.131.99/80 src-nat-rule1 None 6 DEBUG-DENY-ANY-LOG VPN PX 21948 3(440) 7(6830) 2 HTTP VKONTAKTE N/A(N/A) gr-0/0/0.14 No

* Причина закрытия сессии (reason) = ТCP RST, с обоих сторон был получен RST (??).
В данном случае RST послал srx.
###Остальные возможные причины см. ниже.###
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Адрес источника после nat (nat-source-address) = 9.9.9.9
* Порт источника после nat (nat-source-port) = 29419
* Адрес назначение после nat (nat-destination-address) = 87.240.131.99
* Порт назначение после nat (nat-destination-port) = 80
* Имя правила по которому делался source nat (src-nat-rule-name) = src-nat-rule1
* Имя правила по которому делался destination nat (dst-nat-rule-name) = None
###N/A т.к. в данном случае srx не делает destination nat###
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Номер сессии (session-id-32) = 21949
* Количество пакетов от источника (packets-from-client) = 3
* Количество байт от источника (bytes-from-client) = (440)
* Количество пакетов от назначения (packets-from-server) = 7
* Количество байт от назначени (bytes-from-server) = (6830)
* Длительность сессии в секундах (elapsed-time) = 2
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = VKONTAKTE
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
* Шифрование (encrypted) = No

Причины закрытия сессии:
** idle Timeout - сессия закрылась по таймауту. По дефолту таймаут для tcp составляет 1800 секунд, для udp 60 секунд.
** unset - невозможно открыть сессию из-за проблем на control-plane, например кончилась память.
** ТCP FIN - получен RST.
** ТCP FIN - получен FIN.
** response received - был полчен ответ, напримен был получен icmp-reply на ранее посланный icmp-echo.
** ICMP error - пришел icmp пакет с сообщение об ошибке.
** aged out - вышло время жизни активной сессии.
** ALG - сессию закрыло ALG.
** HA
** auth 
** IDP - внутренняя ошибка idp.
** synproxy failure 
** synproxy limit
** parent closed - закрылась родительская сессия.
** CLI - сессию закрыли комендой из cli.
** CP NACK
** CP delete
** policy delete
** fwd session
** multicast route change
** first path reroute, session recreated
** source NAT allocation failure
** other
** error create IKE pass-through template 
** IKE pass-through chils session ageout 
** sess timeout on panding state
** unknown - хз, чё=) 


20150723

Настройка port-mirroring на Juniper SRX.

Настраиваем интерфейс srx к которому будет подключена машина с анализатором.
set interfaces fe-0/0/1 description server-name/port
set interfaces fe-0/0/1 unit 0 description span-port
set interfaces fe-0/0/1 unit 0 family inet address 10.11.12.1/30

set security zones security-zone MGMT interfaces fe-0/0/1.0 \
host-inbound-traffic system-services ping

set forwarding-options port-mirroring input rate 1
set forwarding-options port-mirroring input run-length 10
set forwarding-options port-mirroring family inet output interface fe-0/0/1.0 next-hop 10.11.12.2

Настраиваем правило файрволла для захвата трафика который хотим мирорить.
set firewall family inet filter PORT-MIRROR term PERMIT-ALL then port-mirror
set firewall family inet filter PORT-MIRROR term PERMIT-ALL then accept

Настраиваем интерфейс srx с которого будет мирорить трафик. 
set interfaces gr-0/0/0 unit 14 family inet filter input PORT-MIRROR
set interfaces gr-0/0/0 unit 14 family inet filter output PORT-MIRROR

###Замечание.
На машине на которой работает анализатор надо обязательно настроить ip который задан в настройках srx. Если адрес не настраивать, а просто перевести порт в promiscuous режим, работать не будет. Srx не будет отправляться трафик в порт fe-0/0/1, скорее всего потому что не видит arp для 10.11.12.2 (??). 

В итоге конфиг srx должен выглядеть так:
...
fe-0/0/1 {
    description server-name/port;
    unit 0 {
        description span-port;
        family inet {
            address 10.11.12.1/30;
        }
    }
}
...
security-zone MGMT {
    interfaces {
        fe-0/0/1.0 {
            host-inbound-traffic {
                system-services {
                    ping;
                }
            }
        }
    }
}
...
forwarding-options {
    port-mirroring {
        input {
            rate 1;
            run-length 10;
        }
        family inet {
            output {
                interface fe-0/0/1.0 {
                    next-hop 10.11.12.2;
                }
            }
        }
    }
}
...
firewall {
    family inet {
        filter PORT-MIRROR {
            term PERMIT-ALL {
                then {
                    port-mirror;
                    accept;
                }
            }
        }
    }
}
...
}
gr-0/0/0 {
    unit 14 {
        tunnel {
            source 1.1.1.1;
            destination 1.1.1.2;
        }
        family inet {
            filter {
                input PORT-MIRROR;
                output PORT-MIRROR;
            }
            address 10.11.12.5/30;
        }
    }





20150722

Быстрые заметки по wireshark\tcpdump

4. Увидеть номер vlan. 

tcpdump -nnee -i eth1 -c 10


3. Захватить CDP.
tcpdump -nn -vvv -i en0 -s 1500 -c 1 'ether[20:2] == 0x2000


2. Захватить мультикаст и бродкаст.
[root@blackpc ~]# tcpdump -i eth1 -n -c 300 "broadcast or multicast"

1. Посмотреть SNI (Server Name Indication) в SSL трафике. 
Wireshark
Применяем фильтры (в зависимости от версии WS):
- ssl.handshake.extensions_server_name
- ssl.handshake.extension.type == 0
- ssl.handshake.extension.type == "server_name"

Далее в отфильтрованном смотрим поле "Server Name:".
Путь:
Secure Sockets Layer -->
TLS Record Layer --> 
Handshake Protocol: Client Hello -->
Extension: server_name -->
Server Name Indication extension -->
Server Name: xakep.ru

Используем  ssl.handshake.extension.data contains "xakep.ru" когда надо отфильтровать пакеты с определенным SNI.

Tcpdump
Команда:
tcpdump -i eth1 -s 1500 -X  '(tcp[((tcp[12:1] & 0xf0) >> 2)+5:1] = 0x01) and (tcp[((tcp[12:1] & 0xf0) >> 2):1] = 0x16)' 

Пример:
[root@blackpc ~]# tcpdump -i eth1 -s 1500 -X  '(tcp[((tcp[12:1] & 0xf0) >> 2)+5:1] = 0x01)' and 
'(tcp[((tcp[12:1] & 0xf0) >> 2):1] = 0x16)' and host 178.248.232.27
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 1500 bytes
14:44:29.950497 IP x.x.x.x.60044 > 178.248.232.27.https: Flags [P.], seq 2690445558:2690446075, ack 2960121525, win 115, options [nop,nop,TS val 100379054 ecr 1195184343], length 517
0x0000:  4500 0239 5960 4000 4006 769e c0a8 0d04  E..9Y`@.@.v.....
0x0010:  b2f8 e81b ea8c 01bb a05c f0f6 b06f deb5  .........\...o..
0x0020:  8018 0073 6aec 0000 0101 080a 05fb a9ae  ...sj...........
0x0030:  473d 10d7 1603 0102 0001 0001 fc03 0347  G=.............G
0x0040:  edab 33fe a68e 1625 904e 404c d99c dc12  ..3....%.N@L....
0x0050:  645e de6e f35f d2a3 5fe4 920a 51a6 8820  d^.n._.._...Q...
0x0060:  cf3b 1e81 07e6 a15c 5343 fb04 3e7e a684  .;.....\SC..>~..
0x0070:  ba9e 5fd3 5ad5 fcf6 5969 21a2 0035 bdbe  .._.Z...Yi!..5..
0x0080:  0024 c02b c02f 009e c00a c009 c013 c014  .$.+./..........
0x0090:  c007 c011 0033 0032 0039 009c 002f 0035  .....3.2.9.../.5
0x00a0:  000a 0005 0004 0100 018f 0000 000d 000b  ................
0x00b0:  0000 0878 616b 6570 2e72 75ff 0100 0100  ...xakep.ru.....
0x00c0:  000a 0008 0006 0017 0018 0019 000b 0002  ................
0x00d0:  0100 0023 00b0 8aec 9689 2d9d 7387 24ef  ...#......-.s.$.
0x00e0:  1c8d e0b6 08ce 283b c5a7 174b 09cd 43db  ......(;...K..C.
0x00f0:  87e3 3d9d f4ff 6cc8 c327 a9d3 9537 8e29  ..=...l..'...7.)
0x0100:  637f 7f7d e146 401c 84c5 b62d 38f6 284c  c..}.F@....-8.(L
0x0110:  656a d3ab c460 77c2 d024 2b09 cf7c 94ca  ej...`w..$+..|..
0x0120:  a603 e410 38c9 4154 8ed5 4e67 b871 60ee  ....8.AT..Ng.q`.
0x0130:  7ad0 e003 ccf4 dd49 67cf 32e8 881d 740d  z......Ig.2...t.
0x0140:  5ebc 99f3 d08a cf2c f24a 0a28 b5ea 3157  ^......,.J.(..1W
0x0150:  78fb c9f0 f2ef 87aa bdb2 822c 1c61 d47c  x..........,.a.|
0x0160:  68b7 b55c 0440 bf26 47f5 d5df acbf 6b3e  h..\.@.&G.....k>
0x0170:  d45d 7dc1 dd72 0abb abb2 183d 88a1 9237  .]}..r.....=...7
0x0180:  4cc4 9bfa 70ed 3374 0000 0010 001a 0018  L...p.3t........
0x0190:  0873 7064 792f 332e 3105 6832 2d31 3408  .spdy/3.1.h2-14.
0x01a0:  6874 7470 2f31 2e31 0005 0005 0100 0000  http/1.1........
0x01b0:  0000 1200 0000 0d00 1200 1004 0105 0102  ................
0x01c0:  0104 0305 0302 0304 0202 0200 1500 6a00  ..............j.
0x01d0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x01e0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x01f0:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0200:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0210:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0220:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0230:  0000 0000 0000 0000 00                   .........

20150718

Перенос MediaWiki на новый сервер.

Создаем на новом сервер mysql базу и пользователя.
root@newserver# mysql -u root -p
mysql> create database wiki_db;
mysql> grant all privileges on wiki_db.* to wiki_user@localhost identified by 'pass';
mysql> flush privileges;

Копируем файлы mediawiki на новый сервер.
root@oldserver# cd /var/www/html
root@oldserver# tar zcvf /root/bup/mediawiki-$(date '+%Y%m%d').tgz mediawiki

root@oldserver# scp /root/bup/mediawiki-xxx.tgz root@newserver:/root/wiki-bup
root@newserver's password:
mediawiki-xxx.tgz                                                         100%   23MB  11.8MB/s   00:02

Создаем дамп базы на старом сервере и копируем на новый.
root@oldserver# mysqldump --add-locks --complete-insert -u wiki_user -p wiki_db \
> /root/bup/wiki_db-$(date '+%Y%m%d').sql

root@oldserver# scp /root/bup/wiki_db-xxx.sql root@newserver:/root/wiki-bup
root@newserver's password:
wiki_db-xxx.sql                                                             100% 4757KB   4.7MB/s   00:00

На новом сервере заливаем базу из дампа.
root@newserver# mysql -u wiki_user -p wiki_db < /root/wiki-bup/wiki_db-xxx.sql

Распаковываем файлы mediawiki новом сервере.
root@newserver: tar xvf /root/wiki-bup/mediawiki-xxx.tgz -C /var/www/                                                               
На новом сервере правим httpd.
vi /etc/httpd/conf.d/vhosts.conf
...
<VirtualHost *:80>
     ServerAdmin a@b.c
     DocumentRoot /var/www/mediawiki
     ServerName wiki.b.c
     ErrorLog logs/mediawiki_err_log
     CustomLog logs/mediawiki_acc_log common
</VirtualHost>
...

vi /etc/httpd/conf.d/mediawiki.conf
...
Alias /mediawiki /var/www/html/mediawiki
Alias /view /var/www/html/mediawiki/index.php
...

Если новый сервер совсем свежий, на него только поставили минимальный LAMP, то надо доставить php-xml.
root@newserver# yum install php-xml 



LAMP на Centos6

LAMP
L - Linux
A - Apache
M - MySQL
P- PHP

Ставим.
# yum install httpd mysql-server php php-mysql

Запускаем apache.
# /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]

Запускаем mysql. 
# /etc/init.d/mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h bender.ermoshin.pro password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

                                                                      [  OK  ]
Starting mysqld:                                           [  OK  ]

Делаем первичную настройку mysql.
# /usr/bin/mysql_secure_installation
Задаем пароль для root и везде отвечаем "y".
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

 Проверяем php.
# vi /var/www/html/info.php
Пишем.
<?php
phpinfo();
?>

Перзапускаем httpd и по http://server_ip/info.php должна появиться инфрмация о текущей версии php. 

Включаем автозагрузку.
# chkconfig --level 2345 httpd on
# chkconfig --level 2345 mysqld on