Архив заметок

FreeBSD

Подписаться на эту метку по RSS

Дамп exim'а

Просмотров: 3441Комментарии: 0
EximFreeBSD

На память публикую sql дамп почтового сервера exim. Взял отсюда. Дамп ниже подразумевает, что БД для екзима создана и юзер назначен smile

USE `exim`;
CREATE TABLE `admin` (
  `username` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
);
CREATE TABLE `alias` (
  `address` varchar(255) NOT NULL default '',
  `goto` text NOT NULL,
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`address`),
  KEY `address` (`address`)
);
CREATE TABLE `domain` (
  `domain` varchar(255) NOT NULL default '',
  `description` varchar(255) NOT NULL default '',
  `aliases` int(10) NOT NULL default '0',
  `mailboxes` int(10) NOT NULL default '0',
  `maxquota` int(10) NOT NULL default '0',
  `transport` varchar(255) default NULL,
  `backupmx` tinyint(1) NOT NULL default '0',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`domain`),
  KEY `domain` (`domain`)
);
CREATE TABLE `domain_admins` (
  `username` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  KEY `username` (`username`)
);
CREATE TABLE `log` (
  `timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
  `username` varchar(255) NOT NULL default '',
  `domain` varchar(255) NOT NULL default '',
  `action` varchar(255) NOT NULL default '',
  `data` varchar(255) NOT NULL default '',
  KEY `timestamp` (`timestamp`)
);
CREATE TABLE `mailbox` (
  `username` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `name` varchar(255) NOT NULL default '',
  `maildir` varchar(255) NOT NULL default '',
  `quota` int(10) NOT NULL default '0',
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`username`),
  KEY `username` (`username`)
);
CREATE TABLE `vacation` (
  `email` varchar(255) NOT NULL default '',
  `subject` varchar(255) NOT NULL default '',
  `body` text NOT NULL,
  `cache` text NOT NULL,
  `domain` varchar(255) NOT NULL default '',
  `created` datetime NOT NULL default '0000-00-00 00:00:00',
  `active` tinyint(1) NOT NULL default '1',
  PRIMARY KEY  (`email`),
  KEY `email` (`email`)
);

SSH bruteforce. Некоторые элементы на заметку.

Просмотров: 18181Комментарии: 2
FreeBSDPF

Каким-то мудреным образом мой ip попал в таблицу негодяев на моем удаленном тазике. Вспоминал команду для очистки таблицы заблокированных ip адресовsmile В итоге сдался и нагуглил решение.

Привожу часть конфига pf.conf:

pass in on $ext_if  proto tcp from any to $ext_if port ssh \
synproxy state ( max-src-conn-rate 1/60, \
overload <BRUTEFORCERS> flush global )

Чтобы просмотреть заблокированные ip адреса в таблице BRUTEFORCES:

pfctl -t BRUTEFORCES -T show

Удалить адреса:

pfctl -t BRUTEFORCES -T del *тут ip адрес*

Добавить негодяя:

pfctl -t BRUTEFORCES -T add *ip негодяя*

Ну в общем-то и все.

Rtorrent на службе у пользователей

Просмотров: 3650Комментарии: 0
FreeBSDНовости

Давненько я не писал ничего на этом сайте. Для начала поздравляю всех с наступившем Новым годом и наступающим Старым Новым годом smile

Был, то есть есть сервер с win2003... работал он себе и работал, пока в один прекрасный день винда стала тупить от засранности программ и всякого мусора, который был установлен за пару лет ее существования на железе. Чистить, дефрагментировать и совершать остальные действия по оживлению детища Билла не было никакого желания.

Крутилось вертелось на сервере файлопомойка, торрент, дц++ и терминальный сервис. Для перекройки всего этого хозяйства была выбрана ОС FreeBSD с целью реорганизации файлового хранилища и установки веб клиента для закачки торрентов. Файловое хранилище сделал на zfs с рейдом 6 уровня, т.к. боязно было использовать для сих целей страйп, который как раз стоял на винде. Все-таки даже при выходе из строя 2 дисков, все это хозяйство не умрет. Ну да ладно, это все лирика. Процесс установки фряхи на [u]root on zfs[/u] я не буду. В инете есть кучка материалов для этого.

Для меня было принципиально настроить связку apache22+rtorrent(php установлен). На просторах интернетов обычно пишут про нгинкс и lighttpd. Опять же я не буду описывать полной установки и настройки всего этого хозяйства, чтобы не копипастить то, чего уже гигабайты.

Версия на сервере FreeBSD - 9.0. Когда установлен rtorrent и скачана для него веб морда отсюда, то можно в файл конфигурации апача добавить алиасик на это хозяйство:

$ vi /usr/local/etc/apache22/httpd.conf
Alias /rutorrent "/usr/local/www/apache22/rutorrent/"
Directory "/usr/local/www/apache22/rutorrent";
Options Indexes FollowSymlinks Multiviews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Конечно, необходимо сделать авторизацию по паролю, чтоб всякие негодники не удалили добро, но это выходит за рамки этой небольшой заметки. На этом настройка апача закончена. Я не буду использовать для связи вебсервера с фронт-эндом rutorrent tcp стек, для этого воспользуюсь unix сокетами smile Зачем засирать tcp стек?!

$ cat /usr/local/www/apache22/rutorrent/conf/config.php | grep socket
        // For web->rtorrent link through unix domain socket 
        $scgi_host = "unix:///tmp/rtorrent_rpc.socket";
$

Настройка веб морды закончена.Теперь листинг скрипта запуска rtorrent'а:

$ cat /usr/local/etc/rc.d/rtorrent
#!/bin/sh
#
#

# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown
 
. /etc/rc.subr
 
name="rtorrent"
rcvar=`set_rcvar`
 
load_rc_config $name
 
: ${rtorrent_enable="NO"}
: ${rtorrent_args=""}
: ${rtorrent_user="rtorrent"}
 
command="/usr/local/bin/rtorrent"
screen="/usr/local/bin/screen"
 
start_precmd="${name}_prestart"
start_cmd="echo \"Starting ${name}.\"; su ${rtorrent_user} -c '${screen} -A -m -d -S rtorrent ${command} ${rtorrent_args} -o scgi_local=/tmp/rtorrent_rpc.socket'"
 
start_postcmd="${name}_poststart"
 
rtorrent_prestart()
{
        if [ -e "/tmp/rtorrent_rpc.socket" ]; then
                rm -R /tmp/rtorrent_rpc.socket
        fi
        return 0
}
 
rtorrent_poststart()
{
        while [ ! -e "/tmp/rtorrent_rpc.socket" ];
        do
                sleep 0.1
                echo waiting for /tmp/rtorrent_rpc.socket creation...
        done
                echo done
                chown www /tmp/rtorrent_rpc.socket
                return 0
}
 
#stop_postcmd="rm -R /var/tmp/rtorrent_rpc.socket"
 
run_rc_command "$1"
$

freebsd.jpg

rutorrent.jpg

Публикую на тот случай, если у кого-то не работает. У меня на свежеустановленной фряхе запустился без проблем. Скрипт взят из этой статьи. Если не работает, внимательно проверьте то, что скопировали. Я скопировал не с оригинальной статьи и у меня тоже ругался на запуск.

PF+ftp passive

Просмотров: 5252Комментарии: 5
FreeBSDPF

Итак, на шлюзе стоит фряха. На ней крутятся вэб сервер, фтп и другие. Встала маленькая задача - организовать пассивный режим. Разницу между режимами можно найти в инете, объяснять не буду.

Добавляем две строки в /etc/pf.conf

pass in on $ext_if_ppp proto tcp from any to ($ext_if_ppp) port ftp flags S/SA synproxy state
pass in on $ext_if_ppp proto tcp from any to ($ext_if_ppp) port > 49151 keep state

Сохраняем сие действие. Перезапускаем pf

#pfctl -f /etc/pf.conf

 И все замечательно работает.

Бэкап MySQL+планировщик cron и отправка на FTP

Просмотров: 8939Комментарии: 1
FreeBSDMySQLНовости
Дошли руки до резервного копирования. Раньше копировал вручную необходимые данные smile Конечно это прошлый век, но так как сервер не используется в продуктиве, я особо не парился.

Теперь же захотелось попробовать автоматический бэкап баз данных, файловой системы, вернее отдельных каталогов, в которых находятся важные конфиги, и дальнейшей отправки всего этого хозяйства на сторонний ftp серверок. Плюс к этому добавить в планировщик задания, дабы все это дело происходило без моего вмешательства.

Источники для этого я использовал этот и этот. Ничего не украл, просто немного допилил для себя, чтобы все работало без запинки. Итак пример конфигов. Читать далее...

MariaDB замена MySQL

Просмотров: 7798Комментарии: 2
FreeBSDMySQL

Всем привет! В перерыве от подготовки к экзамену нагуглил интересную инфу.

На недавно прошедшей DevConf выступал с докладом Michael “Monty” Widenius, автор и идейный вдохновитель MySQL. Он рассказал про то, что Oracle потихоньку убивает MySQL и презентовал форк под названием MariaDB.
Источник.

И решил поставить Машку вместо обычного мускула. Итак, сразу к делу. Да, я добавлю маленькое примечание к публикации. Я заменял существующую СУРБД MySQL на MariaDB. Принципиального различия в установке нет. По ходу разберемся «что к чему»:

  1. Делаем для себя удобным способом дамп нужных бд. Я делал через phpmyadmin.
  2. Останавливаем мускул. Я еще на всякий вырубил вэб и php-fpm.
  3. # /usr/local/etc/rc.d/mysql-server stop
    Stopping mysql.
    Waiting for PIDS: 1038.
    #
  4. Привел для примера, если кто не знает как это делать smile  Ищем, что у нас установлено от мускула, т.к. надо удалить его Читать далее...

Mysql dump. Дамп базы.

Просмотров: 3951Комментарии: 2
FreeBSDMySQL

Инфы по этому поводу полно. Ниже бэкап базы из консоли, в данном случае FreeBSD:

$mysqldump -u dbuser -p -h dbhost dbname | gzip -9 > dbname.sql.gz

Так, на всякий случай значени ключей:

  • u - имя пользователя от БД.
  • p - пароль [вводите пароль от базы после ввода строки дампа]
  • h - адрес или ip адрес хоста БД [в данном примере dbhost]
  • dbname - вводите имя базы
  • gzip -9 - сжатие, в данном случае цифра это уровень сжатия, чем больше тем выше.
  • dbname.sql.gz - имя архива, можете ввести свое