вторник, 18 февраля 2014 г.

CryptoPro: Перенос ключей

Для переноса ключей КриптоПро, хранящихся в реестре с одного ПК на другой можно воспользоваться стандартной функцией КриптоПро - копирование контейнеров на закладке Сервис приложения КриптоПро CSP
Можно скопировать контейнер на внешний носитель, например USB-флеш, а затем на новом ПК этой же процедурой с носителя скопировать в контейнер. Однако такой способ сработает, если при генерации ключа вы отмечали галочкой возможность экспорта ключа, по умолчанию возможность экспорта ключей (копирование) запрещено.

В этом случае необходимо проделать следующее:
  • запустить REGEDIT.EXE и найти ключ реестра следующего вида:
HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\USERS\<SID>\Keys\<KEYID>













где:
<SID> – идентификатор пользователя, Windows XP/7 может быть определен с по следующему пути (с помощью файлового менеджера FAR или стандартным Windows Explorer с включенной возможностью просмотра скрытых файлов) "C:\Documents and Settings\Имя пользователя\Application Data\Microsoft\Credentials\, папка находящаяся по указанному пути и есть необходимый нам SID пример значения: «S-1-5-21-1636172540-271800513-1139810728-1095»;
<KEYID> – идентификатор контейнера ключа, при входе на сайт высвечивающийся вверху диалогов выбора сертификата или в выпадающем списке напротив типа ключевого носителя; пример: «{026f52a7-e325-4e2a-9088-4be64a18f5dd}»; также можно определить, запустив КриптоПро CSP, далее в закладке Сервис нажать Просмотр сертификата в контейнере, в качестве носителя выбрать «Реестр», в списке напротив перебирать идентификаторы ключевых контейнеров, нажимая «ОК» и «Далее», пока не найдется нужный сертификат;
  • после определения нужного ключа реестра – экспортировать его в файл (меню «Реестр», «Экспорт файла реестра…»),










указанным выше способом определить идентификатор <SID> пользователя на машине, куда будут перенесены ключи
  • в получившемся в результате экспорта файле заменить везде идентификатор старого пользователя на новый (при использовании доменной аутентификации <SID> пользователя не меняется и данный шаг можно пропустить),
открыть этот файл можно, например, в Блокноте (Notepad);
  • импортировать файл реестра на новом ПК, куда переносятся ключи (просто запустив его двойным щелчком мыши);
  • установить сертификат на новом ПК, используя программу КриптоПро CSP - закладка Сервис - Просмотр сертификата в контейнере

(при этом на новом ПК в КриптоПро должен быть, естественно, добавлен считыватель Реестр через закладку Оборудование кнопка Настроить считыватели)

Взято из руководства пользователя Райффайзен Банка.

суббота, 15 февраля 2014 г.

Windows 8.1 PPTP disconnection issue (Solved)

After upgrade my Windows 8 to 8.1 I've lost stability in connection to PPTP-Server on Cisco 1841. Windows client connects to the server, passes authentication, gets address and routes, and disconnects after 15-20 seconds. A solution is to turn on data encryption in VPN's settings.


среда, 22 января 2014 г.

DHCP Failover Configuration

Primary server:
failover peer "failover-partner" {
    primary;
    address dhcp-primary.example.com;
    port 519;
    peer address dhcp-secondary.example.com;
    peer port 520;
    max‐response‐delay 60;
    max‐unacked‐updates 10;
    mclt 3600;
    split 128;
    load balance max seconds 3;
}

Secondary server:

failover peer "failover-partner" {
    secondary;
    address dhcp-secondary.example.com;
    port 520;
    peer address dhcp-primary.example.com;
    peer port 519;
    max‐response‐delay 60;
    max‐unacked‐updates 10;
    load balance max seconds 3;
}
Both servers:
omapi-port 7911;
omapi-key omapi_key;
key omapi_key {
    algorithm hmac-md5;
    secret Ofakekeyfakekeyfakekey==;
}
subnet 10.100.100.0 netmask 255.255.255.0 {
    option domain-name-servers 10.0.0.53;
    option routers 10.100.100.1;
    pool {
        failover peer "failover-partner";
        range 10.100.100.20 10.100.100.254;
        }
}
Key generation:
dnssec‐keygen ‐a HMAC‐MD5 ‐b 512 ‐n USER DHCP_OMAPI


Source: https://kb.isc.org/article/AA-00502/31

четверг, 31 октября 2013 г.

How to install Java plugin in Chrome browser under Linux


Just link libnpjp2.so which is in <your-java-dir>/lib/i386 to/opt/google/chrome/plugins (you need to create this directory beforehand).

Example:

mkdir /opt/google/chrome/plugins
cd /opt/google/chrome/plugins

Restart Chrome and enjoy!

вторник, 15 октября 2013 г.

Удаление всех писем старше года

В дополнение к старому-старому посту.

Проверенная строчка:
find -depth -type f -mtime +365 -path "*/var/mail/domain_name/user_name/Maildir/*/cur/*" -printf "%Ty%Tm%Td-%p\n" -delete

Для тотальной чистки можно user_name заменить на *

P.S.: Чистка корзин -
find /var/mail/domain_name -depth -path "*/Maildir/\&BCMENAQwBDsENQQ9BD0ESwQ1-/cur/*" -type f -print -delete

воскресенье, 11 августа 2013 г.

Cisco VPN (ISAKMP + IPSec)

Yesterday I have found a great channel on youtube: CBTvideochannel. There are a lot of video about Cisco CCNA espetially about security.
Youtube playlist: http://www.youtube.com/playlist?list=PL6ED021B0FA97EFB1
CBT Nuggets official website: http://www.cbtnuggets.com/

Here is a checklist to make Site-to-Site VPN using IPSec (c) CBTNuggets:

Creating Site‐to‐Site VPNs with Pre‐Shared Keys 

Documentation: 

1. Document your IKE Phase 1 negotiation criteria (example below)
• Hashing: SHA‐1
• Authentication: pre‐shared
• Key exchange: Diffie‐Hellman Group 2

2. Document your IPSec (IKE Phase 2) negotiation criteria (example below)
• Encryption algorithm: esp‐aes 128
• Authentication: esp‐sha‐hmac

Configuring IKE Phase 1: 

1. Enable ISAKMP
• Router(config)#crypto isakmp enable

2. Create ISAKMP Policy :
• Router(config)#crypto isakmp policy <1-10000>
• Router(config)#crypto isakmp policy 100
• Router(config-isakmp)#encryption aes 128
• Router(config-isakmp)#authentication pre-share
• Router(config-isakmp)#group 2
• Router(config-isakmp)#hash sha
• Router(config-isakmp)#exit

3. Configure ISAKMP Identity:
• Router(config)#crypto isakmp identity <address/hostname>
• Router(config)#crypto isakmp identity address

4. Configure ISAKMP Key:
• Router(config)#crypto isakmp key 0 <Pre-Shared-Key> address <remote IP address>
• Router(config)#crypto isakmp key 0 SUPERSECRETKEY address

Configuring IKE Phase 2: 

1. Create transform sets:
• Router(config)#crypto ipsec transform-set <name> <methods>
• Router(config)#crypto ipsec transform-set SET-NAME esp-aes 128 esp-sha-hmac
• Router(cfg-crypto-trans)#mode tunnel
• Router(cfg-crypto-trans)#exit

2. (optional) Configure IPSec lifetime :
• Router(config)#crypto ipsec security-association lifetime <seconds/kilobytes> <value>
• Router(config)#crypto ipsec security-association lifetime seconds 86400

3. Create mirrored ACLs defining traffic to be encrypted and the traffic expected to be received
encrypted.
• Router(config)#ip access-list extended <name>, Router(config)#permit ip <source network | wildcard> <destination network | wildcard>
• Router(config)#ip access-list extended S2S-VPN-TRAFFIC
• Router(config-ext-nacl)#permit ip 172.30.2.0 0.0.0.255 192.168.1.0 0.0.0.255
• Router(config-ext-nacl)#exit

4. Set up IPSec crypto‐map : Router(config)#crypto map <name> <seq> ipsec-iskmp
• Router(config)#crypto map S2S-VPN 100 ipsec-isakmp
   o Router(config-crypto-map)#match address S2S-VPN-TRAFFIC
   o Router(config-crypto-map)#set peer 1.1.1.2 <remote IP>
   o Router(config-crypto-map)#set pfs group2 <group1/2/5 optional>
   o Router(config-crypto-map)#set transform-set SET-NAME <set>

Apply to Interface: 

1. Apply crypto‐map to interface
• Router(config)#int fa4
• Router(config-int)#crypto map S2S-VPN

Create Interesting Traffic: 

1. Ping from source network to destination network.
Verify:
2. Show and debug commands (QM_IDLE is good)
• Router#show crypto isakmp sa
• Router#show crypto ipsec sa
• Router#debug crypto isakmp
• Router#debug crypto ipsec
• Router#show crypto map
• Router#show crypto isakmp policy
• Router#show crypto ipsec transform-set
• Router#clear crypto sa

вторник, 9 июля 2013 г.

Java: установка проприетарщины на debian

Оказывается, есть замечательный пакет под названием java-package, который позволяет собрать пакеты из файлов .tar.gz, скаченных с http://www.oracle.com
Пример использования:

make-jpkg jre-7u25-linux-x64.tar.gz
sudo dpkg -i oracle-java7-jre_7u25_amd64.deb

вторник, 28 мая 2013 г.

Cygwin + SSHd + Windows 2012 = login error?

When I was installing Cygwin under Windows 2012 I met trouble with connecting to SSH-server. Every time I tried to connect to server via SSH I got messages "Operation not permitted" and "Connection closed".

That problem was because Windows 2012 as Windows 7 and Vista has UAC (User Account Control). So special account (cyg_server) hasn't enough rights to utilize SSH-server.

The solution is to give some more rights: SeAssignPrimaryTokenPrivilege, SeCreateTokenPrivilege, SeTcbPrivilege, and SeServiceLogonRight.

List of current token rights can be got with command: 


editrights -l -u cyg_server

By next commands you can add missing rights:

editrights -a SeAssignPrimaryTokenPrivilege -u cyg_server
editrights -a SeCreateTokenPrivilege -u cyg_server
editrights -a SeTcbPrivilege -u cyg_server
editrights -a SeServiceLogonRight

среда, 6 марта 2013 г.

Install Sun JDK 1.7 on Debian


There are a couple of things that you need to be sure prior to upgrade. The most important that your app is supported by the latest Sun JDK. Once you are sure start up by downloading the latest JDK package direct from sun.
Using wget:
http://download.oracle.com/otn-pub/java/jdk/7u3-b04/jdk-7u3-linux-x64.tar.gz
In the above example we downloaded the latest 64bit version of JDK for Linux.
Extract the tar file let's say in your /home directory and follow the instructions below:
cd /home/
tar xzvf jdk-7u3-linux-x64.tar.gz
update-alternatives --install /usr/bin/java java /home/jdk1.7.0_03/bin/java 1
update-alternatives --install /usr/bin/javac javac /home/jdk1.7.0_03/bin/javac 1
update-alternatives --set java /home/jdk1.7.0_03/bin/java
update-alternatives --set javac /home/jdk1.7.0_03/bin/javac
That's all, verify that is working properly and that the right binary is called:

$:/home# java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)


понедельник, 4 февраля 2013 г.

Monitoring DNS Query with TCPDUMP

В логах DNS-сервера встречались ошибки связанные с резольвированием tassweq. Google подсказал, что такой и подобные запросы генерирует злой троян. Осталось найти зараженную банку. Для этого решил изучить DNS-запросы с этим доменом.

tcpdump -vvv -s 0 -l port 53 | grep tassweq

-s - не обрезать пакет
-l - выводить результаты полинейно в stdout
-vvv - большой объем выводимых данных

четверг, 15 ноября 2012 г.

Cisco: резкое ухудшение канала без видимых причин. Лечение.

День с утра как-то не задался. То вирусы, то провайдеры.
Началась беда-беда. Которая бывает, как уже предположили, раз в пол-года - интернет-канал стал безобразно себя вести:
- скорость резко снижается, почти до нуля;
- пинги теряются пачками;
- работать невозможно.

Трассировка показывала, что потери происходят на границе наш_маршрутизатор - PPPoE_концентратор_провайдера. Приглашенный специалист технической поддержки из компании Дом.Ру подключал свой ноутбук - все было нормально, даже не обращая внимания на полностью забитый канал (запускали качаться торрент).

Кусок конфига:

interface FastEthernet0/1
 description R-Telecom
 no ip address
 duplex auto
 speed auto
 pppoe enable group 1
 pppoe-client dial-pool-number 1
 crypto map VPN-RTK
!
interface FastEthernet0/1.1537
 description R-Telecom
 encapsulation dot1Q 1537
 ip address 10.0.0.1 255.255.255.0
 no ip redirects
 no ip unreachables
 pppoe enable group 1
 pppoe-client dial-pool-number 1
 no cdp enable
 crypto map VPN-RTK
!

Решение следующее:
Удалил виртуальный канал FastEthernet0/1.1537.

Причина: либо сам канал, либо (ошибочно?) прописанный запуск звонилки Dialer1. Грешу на второе, но проверять сейчас никто не даст :)

среда, 24 октября 2012 г.

Cygwin sshd: проблемы при авторизации


Клиент после успешной авторизации отваливается с сообщением "chmod(/dev/tty1, 0622) failed: Permission denied." в дебаге.

Есть два варианта решения:
Перезапустить sshd:
    1. На сервере с cygwin'ом остановить службу cygwin sshd
    2. Поубивать все процессы sshd
    3. Запустить службу cygwin ssh
Если не помогло, то:
    1. На сервере с cygwin'ом остановить службу cygwin sshd
    2. Поубивать все процессы sshd
    3. Стереть все /etc/ssh*
    4. Заново настроить службу sshd командой ssh-host-config
Взято отсюда: http://serverfault.com/questions/375066/cygwin-sshd-fails-to-allocate-pty-for-some-users

пятница, 12 октября 2012 г.

Cisco Aironet 1131: сброс конфига.

Заметка маленькая, но полезная. Посколько Cisco Aironet 1130 не поддерживает сброс enable пароля, то приходится сбрасывать startup-config:

1. Выключаем питание;
2. Зажимаем кнопку reset;
3. Включаем питание и ждем, когда лампочка состояния станет желтого цвета;
4. Отпускаем кнопку reset и ждем перезагрузки точки доступа;
5. Заново конфигурируем.

Bacula: копирование последнего задания на ленту


Копирование последнего задания на ленту

/etc/bacula/bacula-dir.conf

Добавить:
Storage {
    Name = Tape-storage
    Address = bacula.example.org
    SDPort = 9103
    Password = "********"
    Device = LTO-4
    Media Type = LTO-4
    Maximum Concurrent Jobs = 4
}
Pool {
    Name = Tape-pool
    Pool Type = Backup
    Autoprune = yes
    Recycle = yes
    Storage = Tape-storage
}

/etc/bacula/baсula-sd.conf

Добавить:
Device {
    Name = LTO-4
    Media Type = LTO-4
    Archive Device = /dev/st0
    AutomaticMount = yes;
    AlwaysOpen = yes;
    RemovableMedia = yes;
    RandomAccess = no;
    Maximum File Size = 5GB
}

Описание клиента

Добавить (на примере client):
Job{
    Name = "client-copy"
    Type = Copy # Обязательно для копирования
    Level = Full
    Pool = client-pool # Обязательно для копирования
    Storage = client-storage # Обязательно для копирования
    Client = client-fd
    FileSet = "Empty Set"
    Schedule = client-copy-schedule
    Selection Type = SQL Query
    Selection Pattern = "
        SELECT DISTINCT Job.JobId,Job.StartTime FROM Job,Pool
        WHERE Pool.Name = 'client-pool' AND Pool.PoolId = Job.PoolId
        AND Job.Type = 'B' AND Job.JobStatus IN ('T','W')
        AND Job.jobBytes > 0
        AND Job.JobId NOT IN
            (SELECT PriorJobId FROM Job
            WHERE Type IN ('B','C')
            AND Job.JobStatus IN ('T','W')
            AND PriorJobId != 0)
        ORDER BY Job.StartTime
    "
    Spool Data = yes
    Maximum Concurrent Jobs = 4
    Messages = Daemon
}

Пул клиента

Изменить (на примере client):
Pool {
    Name = client-pool
    Pool Type = Backup
    Recycle = yes
    AutoPrune = yes
    Volume Retention = 31 days
    Maximum Volumes = 31
    LabelFormat = "client-"
    Next pool = Tape-pool # Обязательно для копирования
}

Расписание копирования

Добавить (на примере client):
Schedule {
    Name = client-copy-schedule
    Run = daily at 00:20
}