среда, 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
}

среда, 8 августа 2012 г.

WCCP: Cisco 1841 + Squid

Cisco
interface Vlan2
 ip address 192.168.100.250 255.255.255.0
 ip access-group STUFF in
 ip wccp web-cache redirect in
 ip flow ingress
 ip flow egress
 ip nat inside
 ip virtual-reassembly
 ip tcp adjust-mss 1380
ip nat inside source list WCCP_Server interface Dialer0 overload
ip wccp web-cache redirect-list WCCP_Redirect password foobar
ip access-list standard WCCP_Server
 permit 192.168.100.6
ip access-list extended WCCP_Redirect
 remark ACL for WCCP proxy access
 remark Squid proxies bypass WCCP
 deny   ip host 192.168.100.6 any
 remark LAN clients proxy port 80 only
 permit tcp 192.168.100.0 0.0.0.255 any eq www
 remark all others bypass WCCP
 deny   ip any any

Linux:
ip tunnel add wccp0 mode gre remote 192.168.100.250 local 192.168.100.6 eth0
ifconfig wccp0 192.168.100.6 netmask 255.255.255.255 up
echo 0 >/proc/sys/net/ipv4/conf/wccp0/rp_filter
echo 0 >/proc/sys/net/ipv4/conf/eth0/rp_filter
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i wccp0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -j MASQUERADE

Squid:
http_port 3128 intercept
wccp2_router 192.168.100.250
wccp2_forwarding_method gre
wccp2_return_method gre
wccp2_service standert 0 password=foobar
Основа взята сдесь: http://wiki.squid-cache.org/Features/Wccp2


пятница, 6 июля 2012 г.

Полноценный Elantech touchpad

Дано бук с Debian Wheezy, XFCE4, Elantech Touchpad, который в иксах работает на уровне обычной мышки: нет мультитача, и, соответственно, скрола двух/трех пальцевого тапа. И самое страшное - нет даже одиночного тапа.

Мое решение:
# Xorg -configure
# cp /root/xorg.conf.new /etc/X11/xorg.conf

В /etc/X11/xorg.conf добавил

Section "InputDevice"
        Identifier "Touchpad" # required
        Driver "synaptics" # required
        Option "MinSpeed" "0.5"
        Option "MaxSpeed" "1.0"
        Option "AccelFactor" "0.075"
        Option "TapButton1" "1"
        Option "TapButton2" "2" # multitouch
        Option "TapButton3" "3" # multitouch
        Option "VertTwoFingerScroll" "1" # multitouch
        Option "HorizTwoFingerScroll" "1" # multitouch
        Option "VertEdgeScroll" "1"
        Option "CoastingSpeed" "8"
        Option "CornerCoasting" "1"
        Option "CircularScrolling" "1"
        Option "CircScrollTrigger" "7"
        Option "EdgeMotionUseAlways" "1"
        Option "LBCornerButton" "8" # browser "back" btn
        Option "RBCornerButton" "9" # browser "forward" btn
EndSection
И в секции ServerLayout заменил
InputDevice    "Mouse0" "CorePointer"
на
InputDevice "Touchpad" "CorePointer"


Оригинал с минимальными правками взят здесь: http://wiki.debian.org/SynapticsTouchpad

среда, 4 июля 2012 г.

USB-Flash, Syslinux и загрузка c образа

Была флешка с установленным SystemRescueCD. Захотел добавить пару ISO-образов и грузиться с них.
Потребовалось добавить в /syslinux/syslinux.cfg:

LABEL Kaspersky Boot-CD 10.0 (ISO)
  LINUX memdisk
  INITRD /rescue/rescue.iso
  APPEND iso raw
Это самый простой способ.