Лучшее – враг хорошего или странности с PF
На шлюзе у меня в качестве файрвола, шейпера, и собственно NAT`а работает PF.
Сегодня ради кое-каких экспериментов на внешний IP шлюза повесил алиас. Само по себе это не страшно так как за шлюзом стоит модем в режиме роутера.
Но начали происходить “странные” вещи.
Я почти не мог достучаться по http, по pop и т.п. по TCP протоколам.
Но, при этом с самого сервера всё работало нормально.
На помощь пришёл tcpdump. Натравил я его на 110 порт, и стал телнетиться.
А увидел я там следующее. NAT подставлял алиас в качестве адрес отправителя, вместо основного IP. Но этот алиас был абсолютно из другой сети, и повешан был ради опытов.
Модем ответные пакеты отправлял на него, но так как этот IP из другой сети, пакеты никуда не приходили.
Почему NAT делал так мне было ясно. В конфиге PF нат определялся такой строкой
nat on $ext_if from $lan to !$lan -> ($ext_if)
Скобки означаю, что в качестве адреса подставлять надо любой адрес на интерфейсе ext_if. Сделана эта возможность для динамических IP, чтобы не было необходимости каждый раз при изменении IP, перечитывать конфиг.
Я убрал алиас с интерфейса. Вот тут и началось интересное. PF продолжал подставлять его адрес. Я перечитал правила PF – ничего не изменилось. PF и сервак перезапускать не хотелось. Изменил строку в конфиге на такую
nat on $ext_if from $lan to !$lan -> $ext_if
, перечитал правила – всё стало нормально.
Где PF закэшировал IP алиаса – загадка…
(подробнее о настройке PF можно почитать в этой записи)
Как выяснить какой загрузчик используется
Недавно понадобилось выяснить, что загружает систему(Linux). Lilo или grub. Решение простое. Делается так.
dd if=/dev/sda count=1 bs=512 | strings | grep -E 'GRUB|LILO'
Собственно /dev/sda – винт, на котором стоит загрузчик.
Простейший текстовый редактор
tuupic@localhost ~ $ cat >> test.txt << END > srt1 > str2 > str3 > END tuupic@localhost ~ $ cat test.txt srt1 str2 str3 tuupic@localhost ~ $
Если нету ни одного текстового редактора, то файл с текстом можно создать таким образом.
Такие рекомендации встречаются во всяких бородатых книгах “unix для чайников”
Думы об антиспаме
Выкачивая каждый день по несколько мегабайт спама, пришёл к выводу, что мне это надоело.
99% спама честно фильтруется моим bogofilter`ом в kmail`е и кладётся в корзину.
Но, во-первых у меня есть вредная привычка читать иногда этот спам от скуки (кто-то логи от прокси читает, а я вот спам). А во-вторых я просто не хочу даже видеть эту гадость у себя на компе.
Выход – фильтрация спама на сервере.
Но тут есть одна проблема – 99% почты я получаю не на сам этот сервер. На него идёт лишь пересылка. Поэтому простые традиционные методы (dnsbl и greylisting) мне не подходят. Сижу думаю, что можно придумать.
Хочу прикрутить тот же bogofilter, но надо это сделать так, чтобы не делать потом лишних телодвижений для его переобучения или для вытаскивания нужной почты из спама.
Конфигурация сервера teamspeak с mysql5
Пример установки на Debian 4
-
Ставим TeamSpeak как обычно:
Скачиваем с официального сайта (http://www.goteamspeak.com/)
Создаём пользователя teamspeak командой adduser
Скопируем архив с teamspeak в домашнюю директорию пользователя.
Затем (все дальнейшие действия следует выполнять как пользователь teamspeak), распакуем архив:$ tar xjvf ts2_server_rc2_202319.tar.bz2
И запустим сервер
$ cd tss2_rc2 $ ./teamspeak2-server_startscript start
Конфигурацонный файл server.ini создался, тимспик останавливаем
- Создаём mysql базу для тимспика. Создаём пользователя базы данных, которым будем в эту базу ходить.
Предположим база называется ts, и пользователь ts -
Теперь надо сменить пароль для этого пользователя.
заходим в shell,заходим рутом в mysqlmysql -p
и выполняем следующие команды:
SET PASSWORD FOR 'ts'@'localhost' = OLD_PASSWORD('пароль'); FLUSH PRIVELEGES;Для чего это нужно, обЪяснено будет позже
- Копируем библиотеку /usr/lib/libmysqlclient_r.so.10.0.0 в директорию, где находится TeamSpeak
-
Приступаем к настройке. Редактируем файл server.ini.
Нас интересует секция [DBEXPRESS][DBEXPRESS] sqldir=./mysql_sql/ Drivername=mysql Database=ts Hostname=localhost User_name=ts Password=пароль GetDriverFunc=getSQLDriverMYSQL VendorLib=./libmysqlclient_r.so.10.0.0 LibraryName=./libsqlmy.so Active=1
Приблизительно так это должно выглядеть
- Отступление:
TeamSpeak рабоет с mysql только с 3-й версией. Соответственно клиентскую библиотеку он может использовать только от третьей версии (libmysqlclient_r.so.10.0.0).
Также по непонятной причине он работает, только если библиотека расположена в его же директории.
В третьей версии пароли шифровались другим методом, поэтому мы и задали пользователю пароль функцией OLD_PASSWORD. Эта функция шифрует пароль как раз старым методом. -
Теперь начинается колдунство.
ls /usr/share/mysql/charsets/ | grep xml | awk '{print "ln -s /usr/share/mysql/charsets/" $1, "/usr/share/mysql/charsets/" $1 "conf"}' | sh
echo "cp1251.xml 33" >> /usr/share/mysql/charsets/IndexЭтим мы скопировали xml файлы кодировок в xml.conf, и содали Index файл для одной из них. Вообще 33 – это utf8 кодировка, но почему то файла utf.xml не было.
Это всё нужно опять же из-за клиента от mysql 3 - Запускаем TeamSpeak. Если всё было сделано правильно, то он стартует. Если база была пуста, то смотрим пароль суперадминистратора в логе.
DB->get: method not permitted before handle’s open method
Такая ошибка стала сегодня вылазить при любых действиях в шелле.
При старте системы появлялась даже до запуска всех сервисов.
Гугл не помог.
Но
find /usr -name "*db"
и
qfile
выдали предателя.
Подозрение вызвал файл
/usr/share/terminfo.db
qfile сказал, что он входит в ncurses.
А вчера ncurses обновлялся. Обновил портежи, начал ставить ncurses -
тот даунгрейдился.
Всё стало нормально.
Формула 1
Последняя гонка была очень захватывающая. В тоже время она показала, что:
1) тот, кто стал чемпионом (Люис Хэмильтон) – лишь зарвавшееся новичёк.
2) Макларен – мудаки.
3) Себастьян Феттель – клёвый чувак.
Продажное государство
Крепкая же порука у наших чиновников, у судей, у ментов и прочих.
http://aigul-mahmutova.livejournal.com/34240.html
sl
Есть такая прикольная прога в почти любой unix системе.
sl
Просто паровозик
Советую man к нему почитать ещё и попробовать все сочетания параметров
Ошибка в phpMyAdmin
Обновился phpMyAdmin до версии 3.0
Вылезла кака
PHP Fatal error: Class 'ArrayObject' not found in /usr/local/www/phpMyAdmin/libraries/List.class.php on line 14
Выяснилось, что теперь phpMyAdmin юзает расширение SPL.SO, которое в свою очередь требует SIMPLEXML.SO


