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

FreeBSD

Подписаться на эту рубрику по RSS

SVN обновление портов и исходных текстов

Просмотров: 3147Комментарии: 6
FreeBSD

Всем привет. Пока не забыл, напишу маленькую заметку на память про SVN. Что это за шляпа?

Subversion[1] (также известная как «SVN»[2]) — свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc.

Итак SVN это будущее, а CVS это прошлое smile Конечно, если бы не это сообщение на офф. сайте Фряхи:

Warning: As of late 2012, the FreeBSD Ports Project is in the process of migrating revision control systems from CVS to Subversion. As a result, these instructions are in a state of change. The preferred mechanism for general ports use is Portsnap. Users requiring local customization of ports (that is, maintaining additional local patches) will probably prefer to use Subversion directly. The CVSup service is being phased out as of February 28, 2013, and further use is discouraged.

я бы и дальше использовал CVSup или его аналог в поставке с Фрей - csup. Но, времена меняются, а динозавром быть не хочется. В общем, все это лирика. Мне надо было обновить порты с помощью SVN и, что я сделал для этого?

Правильно, установил сначала клиент svn. Читать далее...

Отключение ipfw

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

Понадобилось мне отключить файерволл(который зашит в ядро) ipfw на тазике. Поменял в /etc/rc.conf:

firewall_enable="NO"

Перезагрузился и в итоге машинка перестала отвечать на запросы. Порыл интернеты и обнаружил, что для полного отключения необходимо добавить еще строки в /etc/sysctl.conf:

net.inet.ip.fw.enable=0
net.inet6.ip.fw.enable=0

Перегружаем настройки:

# /etc/rc.d/sysctl restart

Файер отключен более, чем полностью.

FreeBSD. Температура HDD. SMART

Просмотров: 3423Комментарии: 0
СтатистикаFreeBSD

На балконе стоит ацкий тазик, используемый под файлопомойку и dlna сервер. Понадобилось тут следить за температурой жесткого диска и его состоянием, дабы быть в курсе работы девайса. Естессно для фряхи описаны кучи руководств по мониторингу системы. Эта статья на память, чтоб не копаться в гуглах и интернетах в поисках команд smile

beast# pkg_info | grep smart
smartmontools-5.43 S.M.A.R.T. disk monitoring tools
beast#

Это я поставил тулзу для мониторинга жестких дисков.

Теперь посмотрим включена ли поддержка smart:

beast# smartctl -i /dev/ada0
smartctl 5.43 2012-06-30 r3573 (local build)
Copyright (C) 2002-12 by Bruce Allen, https://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint P80 SD
Device Model: SAMSUNG HD160JJ
Serial Number: S08HJ1MP207824
Firmware Version: ZM100-47
User Capacity: 160 041 885 696 bytes
Sector Size: 512 bytes logical/physical
Device is: In smartctl database
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 4a
Local Time is: Mon Sep 17 15:01:57 2012 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Включен. Если нет, то включить smart можно в биосе. В этом веке все диски должны поддерживать эту фичу. Далее, в конфиге я расскомментил только одну строчку:

beast# cat smartd.conf | grep ada0
/dev/ada0 -a -m mail@mail -o on -S on -s (S/../.././02|L/../../6/03)
beast#

Вместо mail@mail указываете свой ящик, туда будут сыпаться уведомления о проблемах и ошибках, если таковые возникнут.

Чтобы узнать текущую температуру жесткого, пишите команду:

beast# smartctl -a /dev/ada0 | grep 194
194 Temperature_Celsius 0x0022 142 064 000 Old_age Always - 32
beast#

Если указать просто:

beast# smartctl -a /dev/ada0

То программка выведет всю инфу по жесткому диску.

Бэкап и восстановление FreeBSD

Просмотров: 3251Комментарии: 2
FreeBSD

Накопал видео на youtube от startnetworkings c подробным описанием бэкапа и восстановления ОС FreeBSD по сети. В видео для хранения бэкапа используется ОС Windows 2008, но это не суть важно smile

P.S. Видео на русском с разжевыванием каждого шага.

Дамп exim'а

Просмотров: 2221Комментарии: 0
FreeBSDExim

На память публикую 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. Некоторые элементы на заметку.

Просмотров: 2838Комментарии: 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 на службе у пользователей

Просмотров: 2351Комментарии: 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

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