3

Ретрансляция Радио на FreeBSD

-

Установка Icecast2 под FreeBSD


Устанавливаем Icecast2
#root cd /usr/ports/audio/icecast2/
#root make install clean

Установка проходит без дополнительной конфигурации. Конфигурационный файл icecast2 у меня имеет такой вид и лежит в /usr/local/etc/icecast.xml

<icecast>
<limits>
<clients>100</clients>
<sources>5</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits><authentication>
<source-password>Пароль</source-password>
<relay-password>Пароль</relay-password>
<admin-user>admin</admin-user>
<admin-password>Пароль</admin-password>
</authentication><shoutcast-mount>/radio.ogg</shoutcast-mount><hostname>server.localhost</hostname><listen-socket>
<port>8000</port>
<bind-address>10.10.10.223</bind-address>
</listen-socket><fileserve>1</fileserve>

<paths>
<basedir>/usr/local/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
<alias source=»/» dest=»/status.xsl»/>
</paths>
# Попытка отображение русских тегов :)
<mount>
<mount-name>/zaycevnet</mount-name>
<mount-name>/ZaycevFM(256)</mount-name>
<charset>CP1251</charset>
</mount>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<loglevel>2</loglevel>
<logsize>1000</logsize>
<logarchive>1</logarchive>
</logging>

<security>
<chroot>0</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>

<relay>
<server>radio.irtel.ru</server>
<port>8000</port>
<mount>/zaycevnet</mount>
<local-mount>/zaycevnet</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>

###########################################################################################

Стартуем радио   server# /usr/local/etc/rc.d/icecast2 start

проверяем что он запустился:
# ps aux | grep icecast2
и если не видим такого процесса — смотрим лог-файл /var/log/icecast/error.log. Если и там пусто — значит не дали права на запись в этот файл

Вот собственно с такими настройками можно стартовать радио, при этом не забываем добавить его в авто загрузку.

#root ee /etc/rc.conf Дописываем сюда пару строчек
icecast_enable=YES

icecast_flags= -b -c /usr/local/etc/icecast.xml

 

2

Proxifier v.3.0 Standard (Eng) + Key

-

Версия: v.3.0
Год/Дата Выпуска: 2011
Разработчик: Initex Software
Сайт разработчика: http://www.proxifier.com
Системные требования: Windows 2K/XP/2003/Vista/7

— Запуск любого сетевого приложения через прокси-сервер; для программ не требуется никакой специальной конфигурации;
— Доступ в Интернет из локальной сети через прокси-сервер;
— Обхода ограничений фаервола (подключение к ограниченным портам);
— Использование трех типов прокси-серверов: SOCKS v4, SOCKS v5 и HTTP;
— `Туннелирование` всей системы (запуск всех сетевых подключений в системе через прокси-сервер);
— Разрешение DNS имен через прокси-сервер;
— Гибкие настройки правил (Proxification Rules);
— Скрытие IP адреса;
— Работа через цепочку прокси-серверов с использованием различных протоколов;
— Использование NTLM аутентификации на HTTP прокси-сервере;
— Просмотр информации о текущих соединениях (адреса, скорость, передачи данных, время подключения и т.д.) в режиме реального времени;
— Просмотр информации о трафике в цветных диаграммах в режиме реального времени;
— Возможность вести логи входящего и исходящего трафика (позволяет изучить устройство сети и вести отладку собственных сетевых приложений);
— Подробные отчеты о сетевых ошибках.

— Новая версия имеет значительно улучшенный пользовательский интерфейс.
— Теперь Proxifier может быть настроен на выход DNS запросов, правил обработки сообщений и многое другое.
— Детализированный выход может быть изменен с помощью меню Журнал.

Скачать с офф сайта

Серийники
MNZNV-LWF5G-LAV2A-JTGAF-N7U67
CFZPT-XYLRS-Q8Z3G-2BVQV-83NCC
ZXZ4T-WWR27-68A2A-VB9X3-YGWF2

4

Samba на FreeBSD с авторизацией для доступа

-

Дать доступ к ресурсам, расположенным на FreeBSD-сервере, клиентам с операционной системой от M$ посредством Samba-сервера (протокол SMB/CIFS). Доступ должен предоставляться по логину/паролю хранящихся в самой samb’e, а не в разных протоколах для доступа к службам каталогов.
Задача такого уровня, можно сказать, простая, но с ней сталкиваются довольно часто(особенно дома), тем более она актуально не только для FreeBSD, но и для других Unix-like систем.
Приступим.
Ставим samba34:
#root cd /usr/ports/net/samba34
make config

Выбираем опции:
Options for samba34 3.4.9
[ ] LDAP With LDAP support
[ ] ADS With Active Directory support
[ ] CUPS With CUPS printing support
[X] WINBIND With WinBIND support
[X] SWAT With SWAT WebGUI
[ ] ACL_SUPPORT With ACL support
[ ] AIO_SUPPORT With Asyncronous IO support
[ ] FAM_SUPPORT With File Alteration Monitor
[X] SYSLOG With Syslog support
[ ] QUOTAS With Disk quota support
[ ] UTMP With UTMP accounting support
[ ] PAM_SMBPASS With PAM authentication vs passdb backends
[ ] DNSUPDATE With dynamic DNS update(require ADS)
[ ] AVAHI With Bonjour service discovery support
[ ] EXP_MODULES With experimental modules
[X] POPT With system-wide POPT library
[ ] MAX_DEBUG With maximum debugging
[ ] SMBTORTURE With smbtorture

ставим:
#root make BATCH=yes -C/usr/ports/net/samba34 install clean
rehash

в /etc/rc.conf добавляем:
samba_enable=»YES»

конфигурационный файл самбы /usr/local/etc/smb.conf:

#======================= Global Settings =====================================
[global]

# WORKGROUP — название рабочей группы
workgroup = WORKGROUP

# server string -комментарий к серверу, который будет
# виден клиентам, например в проводнике.
server string = vbpc003 smb

# security = user — включаем авторизацию по логину и паролю.
security = user

# hosts allow — разрешить доступ только в указаных подсетях
hosts allow = 10.36.1. 192.168.1. 127.

# load printers = no — не показывать принтеры
load printers = no

# log file — файл журнала
log file = /var/log/samba/log.%m

# max log size — максимальный размер журнала
max log size = 50

# local master = no - говорим демону nmbd не пытаться стать
# локальным мастер-браузером. Да и вообще, домена не будет, поэтому
local master = no
domain master = no

# Запрещаем nmbd делать запросы к DNS
dns proxy = no

#================== Открытые ресурсы ==================

# resurs_01 — название открываемого ресурса
[resurs_01]
# comment — комментарий к ресурсу, будет виден пользователям в проводнике m$
comment = resurs_01

# path — открываемая для доступа директория
path = /путь/до/resurs_01

# browseable = yes — отображать ресурс в списке доступных ресурсов.
browseable = yes

# writable = no - запретить запись в открытую директорию
writable = no

# guest ok = no — запретить гостям ходить в resurs_01
guest ok = no

# resurs_02 — не видим в проводнике, попасть туда можно
# явно написав полный путь (\\ip_pc\resurs_02).
# Запрещена запись в resurs_02
# и гостю в доступе отказано.
[resurs_02]
comment = resurs_02
path = /путь/до/resurs_02
browseable = no
writable = no
guest ok = no

# resurs_03 — виден в проводнике,
# запись разрешена
# гостям вход разрешён
[resurs_03]
comment = RW resurs_03
path = /путь/до/resurs_03
browseable = yes
writable = yes
guest ok = yes

стартуем самбу:
#root /usr/local/etc/rc.d/samba start

после внесения изменений в #root /usr/local/etc/smb.conf самбу надо всегда рестартовать:
#root /usr/local/etc/rc.d/samba restart

авторизация для доступа на ресурс samba будет производиться по логину и паролю.
создаём пользователей в самбе через smbpasswd (выполняем от root’a):
#root smbpasswd -a administrator
New SMB password:
Retype new SMB password:
Added user administrator.

Учётная запись с именем administrator будет внесена в базу пользователей самбы.
Для отключения учётной записи в самбе:

smbpasswd -d administrator
Disabled user administrator.Для включения отключённой учётной записи:
smbpasswd -e administrator
Enabled user administrator.Для удаления пользователя из базы samb’ы:
smbpasswd -x administrator
Deleted user administrator.Посмотреть активные подключения:
smbstatus 

 

Примечание:
1) не забываем про порты с 137 по 139 в фаерволе для samb’ы, они должны быть открыты.2) и ещё не забываем про доступ на уровне файловой системы: Если вы открываете через samb’у, например, /путь/до/resurs_03 на запись для пользователя administrator, то этот же пользователь должен иметь права на запись в /путь/до/resurs_03 во FreeBSD. Так как пример наипростейший(домашний вариант, так сказать), то можно сделать в консоли:
chmod 0777 /путь/до/resurs_03
(тоесть дать полный доступ на /путь/до/resurs_03 всем пользователям freebsd) и раздавать права на уровне samb’ы.Всё изложенное выше – это минимум для организации домашней файлопомойки клиентам с операционной системой от m$ с авторизацией для доступа. 

 

 

2

Таймауты для SSH-сессий

-

Сколько раз уж бывало так, что сидишь на удалённом сервере, залогинившись по SSH, никого не трогаешь. Потом отвлечешься ненадолго (ну… пообедать там, новости почитать, Симпсонов посмотреть), смотришь в консоль, а сессия отвалилась. Вроде и не смертельно, вроде и секьюрно. В общем, не задумывался об этом и просто залогинивался по-новой. Сегодня, однако, задумался – в какой бы конфиг и какую бы строчку забабахать, чтобы этого не происходило. Гугл и man sshd_config в помощь. В общем, нашёл способ. И не один.

Способ 1

На стороне клиента пишем в ssh_config строку:

ServerAliveInterval 60
ServerAliveCountMax 10

Так мы задаём необходимость клиенту раз в 60 секунд посылать пакеты keep-alive на сервер. И если после 10 посылок сервер так ничего и не отвечает, то отключиться. Работает только в SSHv2.

Кстати, эти же строки можно прописать не для всех в #root etc/ssh/ssh_config, а в файле ~/.ssh/config для конкретного пользователя.

Способ 2

На стороне сервера прописываем в sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 10

На этот раз сервер sshd будет раз в минуту слать пакеты keep-alive клиенту. Если клиент будет активен, то сессия разрываться также не будет. Сессия разорвется только когда клиент 10 раз не ответит на посланный keep-alive.

Само собой, надо не забыть про /etc/init.d/sshd reload

Способ 3

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

ssh -o ServerAliveInterval=60

3

Обновление портов FreeBSD через portsnap

-

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

Файлы порта представляют из себя сценарии, записанные в обычные текстовые файлы. Порт как правило состоит из нескольких файлов:

distinfo
Makefile
pkg-plist
pkg-descr

distinfo — Содержит имена файлов для скачивания и их контрольные суммы для проверки подлинности.

pkg-descr — Краткое описание программы, информация о разработчике, официальный сайт и т.д..

pkg-plist — Это список файлов, которые будут собраны в процессе установки программы, с директориями назначения. Файл используется для регистрации приложения в базе данных пакетов ( /var/db/pkg ).

Makefile — Основной файл сценария. Содержит массу различных опций и переменных, описывающих информацию о версии, разработчике, зависимостях данного приложения от других пакетов и библиотек, опции конфигурирования.

Кроме тога, во многих портах можно обнаружить поддиректорию files, в ней как правило лежат различные патчи и дополнения.

Деревом портов FreeBSD называется древовидная структура в которой размещаются все порты. Дерево портов располагается по адресу /usr/ports, в директории ports, в свою очередь располагаются поддиректории, относящиеся к определенному классу программного обеспечения, например:

  • /usr/ports/archivers — софт для работы с архивами
  • /usr/ports/databases — софт для работы с базами данных
  • /usr/ports/lang - различные языки программирования

и так далее.

Программа Portsnap, для обновления портом, операционной системы FreeBSD

Обновить дерево портов FreeBSD можно несколькими способами. Один из них, на мой взгляд самый удобный, использовать штатную утилиту обновления портов – Portsnap.

Как было сказано выше, данная утилита является штатной, для операционной системы FreeBSD, поэтому присутствует в системе по-умолчанию, во всяком случае в версии 7.1, если ничего не путаю, то в старых версиях, например 5.4, нужно было ее, персонально, из портов ставить.

Программа Portsnap, не работает напрямую с основным деревом портов /usr/ports, она использует рабочий каталог, по-умолчанию /var/db/portsnap, туда скачивается сжатая копия ( snapshot ) дерева портов, а оттуда уже обновляется основное дерево портов. Конфигурационный файл живет по адресу /etc/portsnap.conf, в принципе его можно не трогать, но если вдруг надумаете, например, поменять адрес сервера, откуда программы будет качать исходники или расположение рабочей директории, там все довольно хорошо откомментировано.

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

  • Команда fetch — Скачивает снимок ( snapshot ), основного дерева портов с указанного в конфигурации сервера. Используется только для интерактивной работы, не через cron
  • Команда cron — Используется для запуска из планировщика заданий cron.
  • Команда extract — Разворачивает дерево портов, данная команда полностью удаляет существующее дерево портов, включая все внесенные в него изменения, как правило выполняется в первый раз и в случае, если нужно получить, чистое дерево портов или при использовании с опцией path( cм. ниже )
  • Команда update — Служит для, непосредственно, обновления, основного дерева портов.
  • path — Это дополнительная опция, используется с командой extract, для обновления конкретного порта, или нескольких портов.

Итак, если это первый запуск portnap, делаем:

  • root# portsnap fetch
  • Looking up portsnap.FreeBSD.org mirrors… 3 mirrors found.
  • Fetching snapshot tag from portsnap2.FreeBSD.org… done.
  • Fetching snapshot metadata… done.
  • Updating from Mon Jun 1 17:22:35 UTC 2009 to Sun Jun 28 08:01:56 UTC 2009.
  • Fetching 3 metadata patches.. done.
  • Applying metadata patches… done.
  • Fetching 3 metadata files… done.
  • Fetching 2058 patches…..10….20….30….40….50….60….70….80… done.
  • Applying patches… done.
  • Fetching 2094 new ports or files… done.

Я недавно обновлял порты, поэтому сейчас это заняло минуту, если обновление дерева портов делается впервые или давненько не делалось, естественно процесс будет куда более долгим. Пугаться этого не стОит, ничего не застряло и не зависло.

Теперь можно распаковать дерево:

  • root# portsnap extract
  • /Mk
  • /usr/ports/Templates
  • /usr/ports/Tools
  • /usr/ports/accessibility
  • /usr/ports/arabic
  • ——————————
  • пропущено..
  • ——————————
  • /usr/ports/x11/yelp/
  • /usr/ports/x11/zenity/
  • Building new INDEX files… done.

Данная команда разворачивает все дерево целиком, поэтому время выполнения не зависит от того, как давно вы обновлялись. У меня на тестовой, не самой сильной машине, с операционной системой FreeBSD 7.1, ушло порядка 15-ти минут

Теперь обновляем:

  • root# portsnap update
  • Removing old files and directories… done.
  • Extracting new files:
  • /usr/ports/devel/Makefile
  • /usr/ports/devel/p5-DateTime-Format-SQLite/
  • /usr/ports/lang/neko/
  • /usr/ports/security/fakeroot/
  • /usr/ports/security/tor-devel/
  • /usr/ports/www/lighttpd/
  • /usr/ports/www/webcheck/
  • /usr/ports/www/xpi-noscript/
  • Building new INDEX files… done.

Вот собственно и все, имеем свежее дерево портов. Если обновление система обнаружит что обновление не требуется, будет выдано соответствующее сообщение:

root# portsnap update
Ports tree is already up to date.

Повторюсь, первоначально, процедура может быть весьма длительной, но переживать из-за этого особо не стОит.

Использование программы Portsnap из планировщика Cron

Согласитесь, очень удобно периодически обновлять порты, практически не принимая в этом участия. Для этого у программы portsnap, есть специальная команда, cron. Это именно специальная команда, обычный portsnap fetch, из крона работать не будет. Сделано это не случайно, команда portsnap cron, после запуска, до загрузки чего-либо, отсчитывает произвольный интервал времени от 1 до 3600 секунд, это сделано разработчиками, что-бы снизить кол-во одновременно подключающихся пользователей к серверу обновлений, а затем приступает к работе.

Настоятельно не рекомендуется прописывать в cron команду update, может получится неприятная ситуация, например, если вы компилируете какую-то программу а cron запустит в этот момент обновление портов.

Что-бы избежать вышеописанной ситуации, нужно обновлять только индексный файл, для этого у программы portsnap, есть опция -I.

Итак, в конфигурационном файле /etc/crontab, прописываем следующую строку:

0            0           *            *            0 root portsnap -I cron update

С такой конфигурацией, cron, будет выполнять обновление индекса в 00:00 каждого воскресенья.

Не забывайте, что в данном варианте у вас обновляется только индексный файл, а это не есть обновление дерева портов. Для обновления самих портов нужно вручную выполнить команду portsnap update, из командной строки. Делайте это периодически, как того требует ваша политика поддержания системы портов в актуальном состоянии.

Snapshot is corrupt, испортилась база программы portsnap

Fetching 3 metadata files… /usr/sbin/portsnap: cannot open beea5333deea7ef646b497e9cd751ba72e17fd59708f9eed1f8d857bc585ad70.gz: No such file or directory metadata is corrupt.

Наличие на экране данного сообщения, зачастую говорит о том, что попортилась база данных, программы portsnap. Ничего страшного в этом тоже нет, всякое случается. Исправить можно следующим образом:

  • root# rm -rf /var/db/portsnap
  • root# mkdir /var/db/portsnap
  • root # portsnap fetch extract

Удачного администрирования!!!

RSS-подписка блога Ylianova.ru Мы в Твиттере iGoogle Reader
.