среда, 28 ноября 2012 г.

PBX+Internet gateway

1) Добавляем необходимые интерфейсы vlan101, vlan102
и назначаем айпишки 10.10.10.1 и 10.10.20.1
/etc/network/interfaces

auto lo eth0 vlan101 vlan102 vlan_voip


iface eth0 inet static
        address external_ip
        netmask 255.255.255.252
        network external_network
        broadcast external_br
        gateway external_gw
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers   provider_dns
        dns-search cosmonova.net.ua

#vlan_voip
iface vlan_voip  inet static
        address voip_ip
        netmask 255.255.255.0
        vlan_raw_device eth0


#LAN INET
iface vlan101 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        vlan_raw_device eth0

#LAN VOIP
iface vlan102 inet static
        address 10.10.20.1
        netmask 255.255.255.0
        vlan_raw_device eth0

перезагрузм интерфейсы /etc/init.d/networking


2) Ставим и настраиваем DHCPD в /etc/dhcpd.conf

ddns-update-style none;
default-lease-time 21600;
max-lease-time 43200;
option nis-domain               "nameofdomen";
option domain-name              "nameofdomen";
subnet 10.10.10.0 netmask 255.255.255.0 {
option routers                  10.10.10.1;
option subnet-mask              255.255.255.0;
option broadcast-address        10.10.10.255;
option domain-name-servers      8.8.8.8;
option tftp-server-name "10.10.10.1";
range 10.10.10.10 10.10.10.30;


subnet 10.10.20.0 netmask 255.255.255.0 {
option routers                  10.10.20.1;
option subnet-mask              255.255.255.0;
option broadcast-address        10.10.20.255;
option domain-name-servers      8.8.8.8;
option tftp-server-name "10.10.20.1";
range 10.10.20.10 10.10.20.30;

перезапустим /etc/init.d/dhcpd restart

3) Качаем http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/arno-iptables-firewall_2.0.1b.tar.gz
и инсталируем через ./install.sh
проверяем чтобы скрипт сделал echo 1 >/proc/sys/net/ipv4/ip_forward
и перегружаемся

4) Правим  /etc/arno-iptables-firewall/firewall.conf

EXT_IF="eth0"
EXTERNAL_NET="external_ip/30"


INT_IF="vlan101 vlan102  vlan353"
INTERNAL_NET="10.10.10.0/24 10.10.20.0/24"

NAT="1"
NAT_STATIC_IP="external_ip"


NAT_INTERNAL_NET="10.10.10.0/24 10.10.20.0/24"
NAT_LOCAL_REDIRECT=1

NAT_FORWARD_TCP=""   #"8081>10.10.10.103~80 8082>10.10.10.104~80 8080>10.10.10.102~80"

DEFAULT_POLICY_DROP=1
TRUSTED_IF="vlan101 vlan102 vlan_voip"

IF_TRUSTS=""

LAN_OPEN_ICMP=1

LAN_INET_OPEN_ICMP=1

протестировать настройки можно несколькими способами:

1) применить до перегрузки 'invoke-rc.d arno-iptables-firewall start'
2) настроить через скрипт, configure.sh , но отказатся от автозапуска,
а если все ок, внести скрипт в автозагрузку созданием сылки
ln -sv /etc/init.d/arno-iptables-firewall /etc/rcS.d/S41arno-iptables-firewall
и
/sbin/insserv   arno-iptables-firewall
перегружаемся проверяем







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

WL500GP1 "репы" для прошивки "энтузиастов"



Если вы "проапгредились" с прошивки Олега на прошивку от Энтузиастов, то столкнулись с тем что скрипт IPKG не работает. Все верно, теперь следует использовать OPKG .

Предварительно "разбив" флешку, перемонитруем в папку OPT.
$ mkdir /tmp/harddisk/opt 
$ mount -o bind /tmp/harddisk/opt /opt

Скачиваем и установливаем скрипт OPKG 
$ cd /opt 
$ wget http://wl500g-repo.googlecode.com/svn/ipkg/entware_install.sh 
$ sh ./entware_install.sh

Просмотреть список пакетов 
$ opkg list 
Установка пакета
$ opkg install mc






среда, 21 ноября 2012 г.

no password samba sharing, самба доступ для медиаплеера



Часто требуется просто открыть доступ по протоколу SAMBA без всяких ограничений, например для медиаплеера (Dune HD или raspberry pi) или PS2 и Open Loader.

Итак для UBUNTU или DEBIAN ставим:

$sudo apt-get install samba

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

$sudo vi /etc/samba/smb.conf

Выбираем интерефесы для доступа

interfaces = lo eth1 
bind interfaces only = true

Ищем и меняем параметры безопасности
security = share
 ... ... 
guest account = nobody

[Guest Share] 
 comment = Guest access share 
 path = /path/to/dir/to/share 
 browseable = yes 
 read only = yes 
 guest ok = yes


Проверить текущие настройки можно коммандой
$ testparm

Необходимо перезапустить службу протокола для применения изменений

$sudo /etc/init.d/samba reload

понедельник, 5 ноября 2012 г.

Asterisk stress test - SIPP

      Всегда полезно знать, сколько звонков можно выжать из вашего астериска, или какое колличество звонков может обеспечить ваш оператор, или принять ваш коллцентр.
          Сгенерировать необходимое колличество звонков, а также предоставить статистику
вам поможет  утилита sipp.
      Создадим пир через который утилита получит доступ к астериску:


[sipp]
type=friend
user=sipp
callerid=666
host=dynamic
canreinvite=no
context=from-sipp
dtmfmode=rfc2833
qualify=yes
allow=all

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


[from-sipp]
exten => _X.,1,Answer
exten => _X.,n,Dial(SIP/594123451/${EXTEN},60,KT)
или  exten => _X.,n,WaitMusicOnHold(20)


exten => _X.,n,HangUp

Утилиту запускаем с консоли, предварительно скомпилировав, или установив пакет.


/usr/sbin/sipp -sn uac -d 10000 -s 2345678  127.0.0.1  -l 200  -mp 5606 -r 2

где указываем 
-sn  - сценарий теста
--d     длительность свонка в мс
-s   номер куда будем звонить  
-l    общее колличество одновременных вызовов
-mp  порт для медиа трафика
-r     частота поступления вызовов
------------------------------------ sipp scenario -----------------------------------------
http://sipp.sourceforge.net/doc/reference.html#xmlsyntax

./sipp -sf myscenario.xml -t ui -inf database.csv -ip_field 2 192.168.1.1










понедельник, 15 октября 2012 г.

Дамп sip трафика для анализа в wireshark


Так удобно снимать дамп вызова для последущего анализа в wireshark
только сигнализация

tcpdump -nqt -s 0 -A -i eth0 port 5060
tcpdump -i eth0 -n -s 0 port 5060 -vvv -w file_dump.pcap - c выводом на экран

tcpdump -i eth0 -s 0 port 5060 -w file_dump2.pacap

весть трафик к хосту, в том чиcле rtp

tcpdump -i eth0 -s 0 host 10.1.1.1 -w full_dump.pcap

-vvv максимальная детализация
-n работать только с айпи без ДНС
-s 0 захватывать полные пакеты
-w запись в файл

С упаковкой каждый час

tcpdump -pni eth0 -s65535 -G 3600 -w 'trace_%Y-%m-%d_%H:%M:%S.pcap'

Упаковкой по 100Мб

 tcpdump -pni eth0 -s65535 -C 100 -w capture

Не работает
tcpdump -pni eth0 -s65535 -G 3600 -w 'trace_%Y-%m-%d_%H:%M:%S.pcap' -z gzip



tcpdump -nqt -s 0 -A -i eth0 port 5060

where:
-n do not convert IP address to DNS names
-q be quite, print less output informations
-t do not print timestamps
-s capture number of bytes from a packet, 0 = default iptions which is max 65535, or simply a whole packet
-A prints each packet in ASCI
-vvv be very very verbose
-i use interface to capture on
port 5060 listen for traffic ort 5060 traffic for (source and destination)


tcpdump -nq -s 0 -i eth0 -w /tmp/dump.pcap port 5060 


 tcpdump -nqt -s 0 -A -i eth1 host 172.22.77.38 and port 5060

Дампим сип траф в определенной сети по определенным портам
tcpdump -i ens192 -n -s 0 -vvv -C 500 -w sip_dump_vtb_$_now.pcap net 172.16.20.0/24 and dst port 5060 or 5080

понедельник, 17 сентября 2012 г.

Как открыть порты для одного айпи в iptables?

Если в консоли, добавляем правила так,
например, откроем порт для SIP сигнализации
для определенного айпи, на одном из интерфейсов:

iptables -I INPUT -i eth0.123 -p udp -m udp -s  176.9.145.115 --dport 5060 -j ACCEPT
iptables -I INPUT -i eth0.123 -p udp -m udp -s  176.9.145.115/29 --dport 5060 -j ACCEPT
iptables -I INPUT -i eth0.123 -p udp -m udp -s 0.0.0.0/0 --dport 5060 -j DROP

где 176.9.145.115 - айпи сип оператора

Если используем iptables-restore < /имя_файла , тогда в добавляем в него:


-A INPUT -i eth0.123 -p udp -m udp -s  176.9.145.115 --dport 5060 -j ACCEPT
-A INPUT -i eth0.123 -p udp -m udp -s  176.9.145.115/29 --dport 5060 -j ACCEPT
-A INPUT -i eth0.123 -p udp -m udp -s 0.0.0.0/0 --dport 5060 -j DROP

А вот так для диапазона портов, для rtp трафика:

-A INPUT -i eth0.123 -p udp -m udp -s 176.9.145.115 --dport 10000:20000 -j ACCEPT

-A INPUT -i eth0.123 -p udp -m udp -s 0.0.0.0/0 --dport 10000:20000 -j REJECT



Важно помнить что iptables применяет правила в порядке сверху вниз
поэтому сначала указываем разрешенные сети, потом запрещаем доступ всем (0.0.0.0/0)
Указывать хосты или сети можно в следующем формате:

ip address: 176.9.145.115
DNS name: gate02.zadarma.com 
CIDR запись: 176.9.145.110/29

Настройка мотоподвеса STRONG 2100 в киеве

Общий порядок настройки мото-подвеса (Storm 2100, тарелка Triax 1,2м)

1) Необходимо выбрать "базовый" спутник для нашей местности, относительно которого подвес станет строго на юг. Для г. Вишневый, Киевская обл. (широта 50,23N и долгота 30,23E), это спутник Arabsat 2B(30,5E), но так как сигнал от него очень слаб, на практике берут Eurobird1- 28,5E или Astra 2A 2B 2D - 28,2E.
2) Поворачиваем хобот кнопками - ( 30,23-28,5=1,7грд), с учетом выбранного спутника.
Кнопки на корпусе мото-подвесса: одно нажатие на запад, два - на восток. В этом месте
можем также установить угол наклона с помощью USALS, используя наши координаты.
3) Устанавливаем угол элевации (наклона хобота) по шкале мотоподвеса, по формуле, на шкале
Elevation = 90 - широта = 90 - 50,23 = 39,77.  Latitude = широта.
4) Устанавливаем угол деклинации (наклон тарелки относительно хобота), из таблицы к тарелке - для широты 50грд ставим угол 22.
(Угол установки на тарелке = угол наклона хобота мотора - минус угол деклинации)
5) Вращаем тарелку с мотоподвесом на стойке, в горизонтальной плоскости, пока не "словим" выбранный спутник. Указав при этом уверенно вещающий транспондер.
6) Если словили спутник - подстраиваем тарелку углом деклинации, чтобы сигнал был максимальным.
7) Фиксируем мото-подвес на стойке.
8) Проверяем дугу Кларка по качеству сигнала с других спутников.





понедельник, 28 мая 2012 г.

Приемчики Nmap


Как про сканировать определённый порт?

nmap -PN -p 22 192.168.0.109 - сканировать порт

Сканировать Диапазон Портов:

$ nmap -p 80-1000 192.168.1.1

Сканировать Все Порты:

$ nmap -p "*" 192.168.1.1

nmap -sP 192.168.2.1/24 - быстро сканировать подсеть

nmap -sL -n 192.168.1.0/30

понедельник, 19 марта 2012 г.

ASA5505 как роутер

Доставшийся мне в наследство дорогущий аппаратный firewall CISCO ASA5505, долго лежал без дела. При всей его крутости, он не поддерживает ряд элементарных функций, необходимых в домашнем роутере, например L2TP без IPSEC (с шифрованием - без проблем, но например, в билайне именно такое подключение), или привязки выдаваемой айпи к маку сетевушки, что умеют даже копеечные роутеры. К тому же у  этой "кошки", свой IOS, немного отличающейся от стандартного, что заставляет искать мануалы именно к этой железяке.
Ради желания протестировать  asa5505 , я  даже сменил провайдера, выбрав того, кто может дать "белый" статический айпи.
Wifi роутер был подключен в режиме AP, дабы от него ничего не зависело.
Теперь любые настройки только через shh. Вот например как пробросить 80 порт на сервачек, спрятанный за натом циски:


access-list outside_access_in extended permit tcp any interface outside eq 80

static (inside,outside) tcp interface 80 10.10.10.111  80 netmask 255.255.255.255 


access-group outside_access_in in interface outside
 


Имеем ввиду что outside - имя внешнего интерфейса.

Files auto remove

Автоматическая чистка от старых логов - то что нужно, для поддержания свободного места на диске сервера. Вот один из методов - утилита find.
Например найдем файлы логов старее 10 дней.

find /var/log -mtime +10

Файлы старее 30мин.

find /var/log -mmin +30

Одна из опций утилиты find может выполнять команды, с тем что было найдено:

find /var/log/* -mtime  +5 -exec rm {} \;

Обязательно используйте "слеш" "\", иначе "опциональная" команда не выполнится.
Вот то что я использую для того, чтобы не удалять старые записи,а переносить туда, где побольше мета.

find /spool2/monitor/* -mtime +90 -exec mv {} /oldspool/ \;

Теперь можно добавить в /etc/crontab для зачистки, в начале каждого месяца:

0 0 1 * * root  find /spool2/monitor/* -mtime +90 -exec mv {} /oldspool/ \;

Удалим большие файлы >100Mb

find /var/log/  -size  +100M  -exec rm  -R {}  \;

Удаляем старые записи для астериска автоматически первого числа в /etc/crontab

0 0 1 * * root find /var/spool/asterisk/monitor/* -mtime +150 -exec rm -R {} \;


 если 

bash: /usr/bin/find: Argument list too long  !!!!!!!!!!!!!!!!!!!!!!!!
тогда убрать *
find /data/g-voip/sd/ -mtime +365 -exec rm -R {} \;

---------как----автоматизировать----------------------------------------------

Скрипт контроля объема папки
space="$(du -s /var/log/remote/ | awk '{print $1}')"
space_limit=24000000
if  (( $space >  $space_limit ));
then
cd /var/log/remote/
ls -1t  | tail -n 10 | xargs -d '\n' rm -f
fi

Скрипт контроля  пространства на разделе:
#!/bin/bash -x
logfile=/opt/fs_projects/custom_scripts/monitoring/diskspace_check.log
use="$(df -h | grep CallRecords | awk '{print substr($5, 1, length($5)-1)}')"
# max space usage
use_limit=98
if  (( $use > $use_limit ));
then
cd /CallRecords/Inbound/
echo " ------ same records wil be deleted ---- $(date)" >> $logfile
ls -1t  | tail -n 100 >> $logfile
ls -1t  | tail -n 100 | xargs -d '\n' rm -f
else
echo "---- nothing to delete ----  $(date)" >> $logfile
fi
--------------------------------------------------
попробовать еще один способ
#!/bin/bash
find /cluster/conf/nginx/delivery -type f -mmin +2 -delete