Dormestmass: Админ — это состояние души

Автозагрузка конфигурации PF

Говорят, что лень двигатель прогресса. Истинно так, подтверждаю. Скрипт для редактирования правил pf, последующей их проверки и активации.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/sh
# VIPF
# Version 1.0 (c) Roman Shramko, Jan, 31 2006
 
PF_CONF=/etc/pf.conf.local
CHECK_PFCONF="/sbin/pfctl -nf "
RELOAD_PF="/sbin/pfctl -f "
 
if [ -z $EDITOR ] ; then
    echo 'You must set $EDITOR variable'
    exit
fi
 <span class="fullpost">
# Create copy of the config
TMP_CONFIG=`/usr/bin/mktemp -q /tmp/pf.conf.XXXXXX` \
        && chmod 600 $TMP_CONFIG
trap 'rm -f ${TMP_CONFIG}; exit' 0 1 2 3 15
 
cp $PF_CONF $TMP_CONFIG
if [ $? -ne "0" ] ; then
        echo "Error copying $PF_CONF"
        exit 1
fi
while true ; do
        # Edit config file
        # EDITOR is external variable
        $EDITOR $TMP_CONFIG
 
        # Compare files
        diff $PF_CONF $TMP_CONFIG 2>&1 > /dev/null
        if [ $? -eq 0 ] ; then
                echo "Config wasn't changed"
                exit 0
        fi
 
        # Config was changed
        # Check it for error
        $CHECK_PFCONF $TMP_CONFIG 2>&1 > /dev/null
 
        if [ $? -eq 0 ] ; then
                # config is ok
                # copy tmp config
                cp $TMP_CONFIG $PF_CONF
                # reload pf rules
                $RELOAD_PF $PF_CONF
                exit 0
        else
                # Bad config
                echo "Press \"Enter\" to continue editing or \"Ctrl-C\" to exit"
                stty -echo
                read  tmp
                stty echo
        fi
done

Популярность: 2%

VoIP на низкоскоростных каналах Frame Relay. Продолжение

Продолжение вчерашнего поста…

Для использования как IP RTP, так и LLQ необходимо соответствующим образом настроить map-class frame-relay.

Конфигурирование IP RTP Priority

Включить использование IP RTP совсем просто. Для этого в map-class необходимо добавить всего один параметр:

frame-relay ip rtp priority starting-rtp-port port-range bandwidth

starting-rtp-port — это номер наинизшего UDP порта, котрый используется для посылки голосового трафика. Для оборудования Cisco он равен 16384.
port-range — это диапазон используемых UDP портов. Тут надо указать число, равное: максимальный номер UDP порта — starting-rtp-port. В нашем случае это будет 16383 (32767 — 16384).
bandwidth — максимально допустимая полоса пропускания для очереди в Kbps. Выбор полоса пропускания базируется на количестве одновременных звонков и используемого для них кодека.

Пример:

map-class frame-relay 128K-RTP
frame-relay cir 128000
frame-relay mincir 128000
frame-relay bc 1280
frame-relay be 0
frame-relay fair-queue
no frame-relay adaptive-shaping
frame-relay fragment 160
frame-relay ip rtp priority 16384 16383 40

Далее »

Популярность: 3%

VoIP на низкоскоростных каналах Frame Relay

Просьба знатоков сильно не пинать ногами, я в данном предмете не особо силен. Пост предназначается в первую очередь самому себе, и написан в попытке свести в одну кучу все свои познания по данному вопросу. Все материалы по настройке были взяты с www.cisco.com.

Итак, мы имеем корпоративный FR-канал некоторой пропускной способности. Наша задача обеспечить прохождение по нему голосового трафика. Естественно, что разговор по IP-телефону должен быть в меру комфортным.

Для обеспечения минимальных задержек голосовых пакетов необходимо обеспечить приоритизацию передаваемого трафика. Существует два основных метода для обеспечения жесткого приоритета для голосовых пакетов:

  • IP RTP приоритет, также называемый как Priority Queue / Weighted Fair Queuing (PQ/WFQ);
  • LLQ — очередь с низкими задержками, также называемая PQ/Class Based Weighted Fair Queuing (PQ/CBFWQ)

Далее »

Популярность: 2%

Фильтры для поиска в LDAP

Полное описание конструирования фильтров для поиска в дереве каталогов LDAPv3 можно найти в RFC 2254.

Фильтр имеет формат префиксной нотации (или польской ?). Очень широко практикуется рекурсия.
Итак. Тело фильтра должно быть заключено в скобки:

"(" элемент_сравнения «)»

Элементы сравнения конструируются так:

  • И — «&» список_фильтров
  • ИЛИ — «|» список_фильтров
  • НЕТ — «!» элемент
  • Элемент

Список фильтров — это список из рекурсивно записанных фильтров.

Далее »

Популярность: 7%

Туннелирование через ssh

Когда-то краем уха слышал, что посредством ssh можно делать удивительные вещи, такие как проксирование, порт форвардинг и иже с ними. Не знаю, мож кто-то и использует эти возможности, но я нет.

Вот чего-то сегодня потянуло разобраться с этими фичами, в жизни может всё пригодится. Как оказалось, такие чудеса может вытворять не только nix-овый клиент openssh, а и виндовая putty. Помимо всего прочего, траффик через такой туннель будет автоматически закриптован, ну и, возможно, сжат. Последняя возможность, как мне кажется, может быть очень востребована любителями использования мобильного GPRS-Интернета или любителями беспроводных сетей.

Итак, всё по порядку.

Далее »

Популярность: 11%

Адрес отправителя из командной строки

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

В штатном mail (x) такой возможности не предусмотрено. Самое быстрое решение, которое нашёл, ? это использовать mutt в режиме эмуляции mailx.

echo "set from=from_me@maindomain.com" >> ~/.muttrc
echo "set envelope_from=yes" >> ~/.muttrc

В скрипте запускаем mutt с ключом -x

Популярность: 2%

Делайте бекапы

Вчера измывался над своим ноутбуком, на котором живут FreeBSD и WindowsXP. В результате издевательств слетел бутовый загрузчик и первый раздел диска с вындой. Для начала я переустановил Windows.

Следующий шаг — восстановление бутового менеджера. Я использую стандартный менеджер загрузки boot0. Копия MBR с менеджером расположена в /boot/boot0.

Загружаюсь с livecd (под рукой была свежевышедшая TrueBSD 0.1), монтирую слайс FreeBSD и восстанавливаю MBR.

root@truebsd:~# mkdir /mnt/disk
root@truebsd:~# mount -t ufs /dev/ad0s3 /mnt/disk
root@truebsd:~# fdisk -B -b /mnt/disk/boot/boot0 /dev/ad0

Соглашаюсь с fdisk-ом, что действительно хочу заменить таблицу разделов…

root@truebsd:~# umount /mnt/disk
root@truebsd:~# reboot

Как ни странно, вся операция заняла несколько минут. FreeBSD Handbook рулит :)

Но! При включении ноутбука запускаеться до боли знакомый менеджер загрузки. Жму F1 — Windows загружаться нормально. Перезагружаюсь снова и пытаюсь загрузить FreeBSD. Вот тут-то меня и ждал подвох, на экране выдаеться сообщение:

NTLDR is missing
Press any key to restart

Видимо это результат вчерашних игр с виндозными fixboot и fixmbr :) .

Снова загружаюсь с livecd, монтирую слайс. Подозреваю, что дело в таблице разделов слайса. bsdlabel показывает, что они слетели:

root@truebsd:~# bsdlabel /dev/ad0s3
bsdlabel: /dev/ad0s3: no valid label found

Поскольку копии таблицы разделов у меня нет, то можно со спокойной душой попрощаться с моей копией FreeBSD. К счастью никаких серьёзных данных у меня там не было.

Господа, делайте резервные копии!

Популярность: 1%