Архив рубрики: debian

Настройка сервера виртуального хостинга на UBUNTU

Потребовалось мне настроить сервер виртуального хостинга со всеми вытекающими (Postfix,mysql,phpmyadmin,apache,php,spamassasin,bind,dovecot ну и приличной мордой управления а ля ispconfig при этом для каждого пользователя доступ в свой сайт как по ftp так и ssh. Приступимс…

Читать далее

Debian+Drupal для начинающих

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

Установка 1С 8.1 в связке с PostgreSQL на UBUNTU SERVER 10.10

cd /usr/local/src

wget http://wwwmaster.postgresql.org/redir/295/h/source/v8.4.1/postgresql-8.4.1.tar.gz

tar -xzvf postgresql-8.4.1.tar.gz

cd postgresql-8.4.1

mkdir patches

cd patches

wget http://v8.1c.ru/overview/postgresql_patches/8-4-1/1c_FULL_84-0.19.2.patch

wget http://v8.1c.ru/overview/postgresql_patches/8-4-1/postgresql-1c-8.4.patch

wget http://v8.1c.ru/overview/postgresql_patches/8-4-1/applock-1c-8.4.1.patch

aptitude install libreadline-dev zlib1g-dev libicu-dev patch unrar

ln -s /usr/lib/libicuio.so.42.1 /usr/lib/libicuio.so.34

ln -s /usr/lib/libicui18n.so.42.1 /usr/lib/libicui18n.so.34

patch -d .. -p0 <1c_FULL_84-0.19.2.patch

patch -d .. -p0 <applock-1c-8.4.1.patch

patch -d .. -p1 <postgresql-1c-8.4.patch

cd /usr/local/src/postgresql-8.4.1/src/interfaces/ecpg/preproc/

rm preproc.h

wget http://pg1c.ru/down/preproc.h

cd /usr/local/src/postgresql-8.4.1/src/backend/parser/

rm gram.h

wget http://pg1c.ru/down/gram.h

cd /usr/local/src/postgresql-8.4.1/

./configure —disable-integer-datetimes —prefix=/usr

make && make install

cd contrib

make && make install

mkdir /var/lib/pgsql

groupadd -g 5026 -o -r postgres

useradd -g postgres -o -r -d /var/lib/pgsql -s /bin/bash -c «PostgreSQL Server» -u 5026 postgres

chown postgres:postgres /var/lib/pgsql

Инициализация от пользователя postgres

su postgres

initdb -D /var/lib/pgsql/data

pg_ctl -D /var/lib/pgsql/data start

psql

password

q

pg_ctl -D /var/lib/pgsql/data stop

exit

Отредактируем pg_hba.conf

nano /var/lib/pgsql/data/pg_hba.conf

#host all all 127.0.0.1/32 trust // так было

host all postgres 127.0.0.1/32 md5 // так стало

nano /var/lib/pgsql/data/postgresql.conf

nano /etc/init.d/postgres

#!/bin/sh

case $1 in

restart)

sudo -u postgres -H /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/lib/pgsql/data/pg.log stop

sudo -u postgres -H /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/lib/pgsql/data/pg.log start

;;

start)

sudo -u postgres -H /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/lib/pgsql/data/pg.log start

;;

stop)

sudo -u postgres -H /usr/bin/pg_ctl -D /var/lib/pgsql/data -l /var/lib/pgsql/data/pg.log stop

;;

*)

echo start|stop|restart

return 1;

;;

esac

chmod u+x /etc/init.d/postgres

update-rc.d postgres defaults

/etc/init.d/postgres start

netstat -atn|grep 5432

Забрасываем на сервер пакаги с 1с

dpkg -i *.deb

chown -R usr1cv81:grp1cv81 /opt/1C

update-rc.d srv1cv81 defaults

locale-gen en_US

locale-gen ru_RU

dpkg-reconfigure locales

/usr/init.d/srv1cv81 start

Использованы материалы http://pg1c.ru/?page_id=173

Организация проверки загружаемых файлов на вирусы в PureFTPd

Ниже представлена инструкция по интеграции в PureFTPd, работающем в Debian или
Ubuntu, функции проверки новых файлов на предмет наличия вирусов. При
обнаружении вируса загруженный файл удаляется.



Устанавливаем антивирусный пакет ClamAV:

sudo aptitude install clamav clamav-daemon

Настраиваем PureFTPd.
Создаем файл /etc/pure-ftpd/conf/CallUploadScript в который добавляем одну строку со словом "yes":

echo "yes" > /etc/pure-ftpd/conf/CallUploadScript

Создаем скрипт /etc/pure-ftpd/clamav_check.sh, который будет вызывать из
PureFTPd для проверки новых файлов в clamav:

#!/bin/sh
/usr/bin/clamdscan --remove --quiet --no-summary "$1"


Делаем скрипт исполняемым:

chmod 755 /etc/pure-ftpd/clamav_check.sh

Изменяем основой файл конфигурации PureFTPd /etc/default/pure-ftpd-common,
находим по ключевому слову строку UPLOADSCRIPT и указываем путь к скрипту
проверки, примерно так:

UPLOADSCRIPT=/etc/pure-ftpd/clamav_check.sh

Перезапускаем PureFTPd:

/etc/init.d/pure-ftpd-mysql restart

hylafax

Посылаем факс :

sendfax -n -d number file1 file2 ..

Проверяем результаты :

faxstat -s (shows fax in the queue waiting to be sent)
faxstat -d (shows faxes sent)
faxstat -r (shows faxes received)

Удаляем факс из очереди :

faxrm number_of_job

Очистить spool :

faxqclean

Статистика :

faxcron

Debian asterisk howto

Итак- для начала установим дебиан — при установке выбирайте минимальную конфигурацию, настраивайте подключение к интернет,
и, зайдя под рутом, дайте
aptitude update
aptitude upgrade
reboot

после ребута поставим

aptitude install ssh ntp screen

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

для этого установим всё необходимое

aptitude install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential

Загрузим исходники ядра
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.12.tar.bz2
(можно посвежее)

распакуем
tar xjf linux-2.6.*

ln -s /usr/src/linux-2.6.23.12 /usr/src/linux
cd /usr/src/linux

Копируем текущую конфигурацию в /usr/src/linux:
make clean && make mrproper
cp /boot/config-`uname -r` ./.config
make menuconfig

в меню выбираем «Load alternate configuration…» и выбираем конфигурационный файл который скопировали в /usr/src/linux
— /usr/src/linux/.config

Нужно поправить несколько параметров в конфиге ядра
В разделе «Processor type and features» выбираем:
«Enable IRQ balancing» is disabled
«Timer frequency» change the value 250 Hz by 1000 Hz.
«High Resolution Timer Option» and «HPET Timer Support» as built-in.

После всего сохраняем конфиг и выходим
Компилим ядро и хедеры
make-kpkg clean
fakeroot make-kpkg —initrd —append-to-version=-custom kernel_image kernel_headers

Компилится долго. После этого должно появиться два .deb пакета в каталоге /usr/src/
Инсталлируем их:

cd /usr/src
dpkg -i linux-image-2.6.23.12-custom_2.6.23.12-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.23.12-custom_2.6.23.12-custom-10.00.Custom_i386.deb
reboot

Смотрим запустилось ли то ядро что нужно:
uname -a
Должно вывести что-то наподобие «Linux asterisk 2.6.23.12-custom».

Дабы удовлетворить зависимости в дальнейшем ставим:

aptitude install build-essential libcurl3-dev libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev flex xsltproc
aptitude install linux-headers-`uname -r` g++ libncurses5-dev libnewt-dev libusb-dev subversion git-core

Качаем и распаковываем исходники:

cd /usr/src
wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
wget http://www.misdn.org/downloads/mISDN.tar.gz
wget http://www.misdn.org/downloads/mISDNuser.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
tar xvzf asterisk-1.4-current.tar.gz && tar xvzf zaptel-1.4-current.tar.gz && tar xvzf libpri-1.4-current.tar.gz && tar xvzf mISDN.tar.gz && tar xvzf mISDNuser.tar.gz && tar xvzf asterisk-addons-1.4-current.tar.gz

Ставим всё что нужно для работы Asterisk:
aptitude install build-essential libcurl3-dev libvorbis-dev libspeex-dev unixodbc unixodbc-dev libiksemel-dev flex xsltproc
aptitude install linux-headers-`uname -r` g++ libncurses5-dev libnewt-dev libusb-dev subversion git-core

Скачиваем и распаковываем:
cd /usr/src
wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
wget http://www.misdn.org/downloads/mISDN.tar.gz
wget http://www.misdn.org/downloads/mISDNuser.tar.gz
wget http://downloads.digium.com/pub/asterisk/asterisk-addons-1.4-current.tar.gz
tar xvzf asterisk-1.4-current.tar.gz && tar xvzf zaptel-1.4-current.tar.gz && tar xvzf libpri-1.4-current.tar.gz && tar xvzf mISDN.tar.gz && tar xvzf mISDNuser.tar.gz && tar xvzf asterisk-addons-1.4-current.tar.gz

Ставим Zaptel:
cd /usr/src/zaptel-1.4*
./install_prereq test
./install_prereq install
./configure
make
make install
make config
modprobe ztdummy

Cтавим Libpri:
cd /usr/src/libpri-1.4*
make && make install

Ставим mISDN:
Не ставьте версию (1.1.7) с ядром (2.6.23.12). В доках написано что не работает. Я ставил всё самое последнее — работает.
cd /usr/src
git-clone git://git.misdn.org/git/mISDN.git/
git-clone git://git.misdn.org/git/mISDNuser.git/
cd /usr/src/mISDN
make
make install
cd /usr/src/mISDNuser/
make && make install

Конфигурим:
mISDN scan
mISDN config
будет создан /etc/mISDN.conf котрый можно смотреть и дополнять.
vi /etc/mISDN.conf
Если всё ок то стартуем:
mISDN start

Проверяем всё ли в порядке
misdnportinfo
Системные скрипты для старта mISDN:
/usr/sbin/update-rc.d mISDN defaults 15 30

Собственно установка Asterisk
cd /usr/src/asterisk-1.4*
./configure

Можно выбрать дополнительные звуковые дорожки для голосового меню
make menuselect
Выберите core-sounds которые будете использовать и другие если нужно . Выходите через «x» с записью изменений. Затем:
make
make install
make samples
make config
asterisk -vvvc
stop now
echo «ztdummy» >> /etc/modules

Если ошиблись и компиляция закончилась неудачно то
make clean
then
./configure
and
make install

снова.

Перезагрузитесь и проверьте как работает Asterisk.
reboot
asterisk -r
exit

Установка аддонов:
cd /usr/src/asterisk-addons*
./configure && make && make install
make samples

Установимl Asterisk-GUI
Конфиги сохраним
cp -r /etc/asterisk /etc/asterisk.bak

Скачаем и установим Asterisk-GUI:
cd /usr/src
svn checkout http://svn.digium.com/svn/asterisk-gui/trunk asterisk-gui
cd /usr/src/asterisk-gui
./configure && make && make install
make samples

Внесём несколько ньюансов в конфиг…
cat </etc/asterisk/http.conf
[general]
enabled=yes
enablestatic=yes
EOF

cat </etc/asterisk/manager.conf
[general]
displaysystemname = yes
enabled = yes
webenabled = yes
port = 5038
;httptimeout = 60
bindaddr = 0.0.0.0

[admin]
secret = admin
read = system,call,log,verbose,command,agent,config
write = system,call,log,verbose,command,agent,config
EOF
Checking configuration…
make checkconfig
asterisk -r
reload
exit

Заходите и администрируйте систему. логин/пароль по умолчанию admin/admin
адрес гуи:

http://IPADDRESS:8088/asterisk/static/config/setup/install.html
http://IPADDRESS:8088/asterisk/static/config/cfgbasic.html

SIP ответы

1xx = информационные ответы

SIP/2.0 100 Trying — запрос обрабатывается

SIP/2.0 180 Ringing — местоположение вызываемого пользователя определено. Выдан сигнал о входящем вызове

SIP/2.0 181 Call is Being Forwarded — прокси,сервер переадресует вызов к другому пользователю

SIP/2.0 182 Call is Queued — вызываемый абонент временно не доступен, вызов поставлен в очередь

SIP/2.0 183 Session Progress — используется для того, чтобы заранее получить описание сеанса информационного обмена от шлюзов на пути к вызываемому пользователю


2xx = ответы о завершении запроса

SIP/2.0 200 OK — успешное завершение

SIP/2.0 202 Accepted — запрос принят для обработки Используется для справки о состоянии обработки


3xx = сообщения о переадресации

SIP/2.0 300 Multiple Choices — указывает несколько SIP-адресов, по которым можно найти вызываемого пользователя

SIP/2.0 301 Moved Permanently — вызываемый пользователь больше не находится по адресу, указанному в запросе

SIP/2.0 302 Moved Temporarily — пользователь временно сменил местоположение

SIP/2.0 305 Use Proxy — вызываемый пользователь не доступен непосредственно, входящий вызов должен пройти через прокси-сервер

SIP/2.0 380 Alternative Service — запрошенная услуга недоступна, но доступны альтернативные услуги


4xx = невозможность обработать запрос

SIP/2.0 400 Bad Request — запрос не понят из-за синтаксических ошибок в нем, ошибка в сигнализации, скорее всего что-то с настройками оборудования

SIP/2.0 401 Unauthorized — нормальный ответ сервера о том, что пользователь еще не авторизировался; обычно после этого абонентское оборудование отправляет на сервер новый запрос, содержащий логин и пароль

SIP/2.0 401 Expired Authorization — время регистрации истекло

SIP/2.0 402 Payment Required — требуется оплата (зарезервирован для использования в будущем)

SIP/2.0 403 No Such User — нет такого пользователя, ошибка в номере, логине или пароле

SIP/2.0 403 User Disabled — пользователь отключен

SIP/2.0 403 Wrong Guess — ошибка в пароле

SIP/2.0 403 Conflict — такой SIP-номер уже используется

SIP/2.0 403 Forbidden — абонент не зарегистрирован

SIP/2.0 403 Empty Route Set — нет ни одного шлюза в роутинге

SIP/2.0 403 Caller Not Registered — нет такого пользователя

SIP/2.0 403 Out of Look-Ahead Retries — перебор узлов закончен

SIP/2.0 403 Invalid Phone Number — нет такого направления

SIP/2.0 403 No Money Left on RFC Account — на счету нет денег для совершения звонка

SIP/2.0 404 Not found — вызываемый абонент не найден, нет такого SIP-номера

SIP/2.0 404 Undefined Reason — неопределенное направление

SIP/2.0 404 Unknown user account — логин и пароль не найдены

SIP/2.0 404 Out of Order — в заявке на маршрутизацию по этому направлению нет ни одного шлюза, проверьте настройку маршрутизации по этому направлению.

SIP/2.0 405 Method Not Allowed — метод не поддерживается, может возникать если пользователь пытается отправлять голосовую почту и т.п.

SIP/2.0 406 No codecs match — неправильная конфигурация кодеков

SIP/2.0 406 Not Acceptable — пользователь не доступен

SIP/2.0 407 Proxy Authentication Required — необходима аутентификация на прокси-сервере

SIP/2.0 408 Request Timeout — время обработки запроса истекло: Абонента не удалось найти за отведенное время

SIP/2.0 408 Login timed out — за отведенное время не получен ответ от сервера на запрос авторизации

SIP/2.0 410 No Route — вариант SIP/2.0 403 Empty Route Set; нет доступа к ресурсу: Ресурс по указанному адресу больше не существует

SIP/2.0 413 Request Entity Too Large — размер запроса слишком велик для обработки на сервере

SIP/2.0 415 No Media — звонок совершается неподдерживаемым кодеком

SIP/2.0 416 Unsupported Scheme — сервер не может обработать запрос из-за того, что схема адреса получателя ему непонятна

SIP/2.0 420 Bad extension — неизвестное расширение: Сервер не понял расширение протокола SIP

SIP/2.0 421 Extension Required — в заголовке запроса не указано, какое расширение сервер должен применить для его обработки

SIP/2.0 423 Interval Too Brief — сервер отклоняет запрос, так как время действия ресурса короткое

SIP/2.0 480 Invalid Phone Number — неправильный номер телефона, не соответствует к-во цифр или неправильный код страны или города

SIP/2.0 480 Destination Not Found In Client Plan — направления нет в тарифном плане абонента

SIP/2.0 480 Wrong DB Response — проблемы с центральной базой сети

SIP/2.0 480 DB Timeout — проблемы с центральной базой сети

SIP/2.0 480 Database Error — проблемы с центральной базой сети

SIP/2.0 480 Codec Mismatch — несоответствие кодеков

SIP/2.0 480 No Money Left on RFC Account — нет денег на счету, обратитесь к администратору сети!!!

SIP/2.0 480 Empty Route Set — пустое направление, нет принемающих шлюзов

SIP/2.0 480 No money left — недостаточно денег на счете

SIP/2.0 480 Temporarily Unavailable — временно недоступное направление попробуйте позвонить позже

SIP/2.0 481 Call Leg/Transaction Does Not Exist — действие не выполнено, нормальный ответ при поступлении дублирующего пакета

SIP/2.0 482 Loop Detected — обнаружен замкнутый маршрут передачи запроса

SIP/2.0 483 Too Many Hops — запрос на своем пути прошел через большее число прокси-серверов, чем разрешено

SIP/2.0 484 Address Incomplete — принят запрос с неполным адресом

SIP/2.0 485 Ambiguous — адрес вызываемого пользователя не однозначен

SIP/2.0 486 Busy Here — абонент занят

SIP/2.0 487 Request Terminated — запрос отменен, обычно приходит при отмене вызова

SIP/2.0 488 Codec Mismatch — нет шлюзов с поддержкой заказанного кодека

SIP/2.0 488 Private IP Address — адрес RTP media из сетей RFC1918

SIP/2.0 491 Request Pending — запрос поступил в то время, когда сервер еще не закончил обработку другого запроса, относящегося к тому же диалогу

SIP/2.0 493 Undeciperable — сервер не в состоянии подобрать ключ дешифрования: невозможно декодировать тело S/MIME сообщения

SIP/2.0 499 Codec Mismatch — отсутствует кодек

5xx = ошибки сервера

SIP/2.0 500 Internal Server Error — внутренняя ошибка сервера

SIP/2.0 500 DB Timeout — нет ответа от базы данных

SIP/2.0 500 Database Error — то же самое, но в другой момент

SIP/2.0 500 Wrong DB Response — неправильный ответ базы данных, редкая ошибка

SIP/2.0 500 Undefined Reason — неопределенная причина

SIP/2.0 500 account has been moved to a remote system — аккаунт перенесен в удаленную систему (дословно)

SIP/2.0 501 Method Not Supported Here — в сервере не реализованы какие-либо функции, необходимые для обслуживания запроса: Метод запроса SIP не поддерживается

SIP/2.0 502 Bad Gateway — сервер, функционирующий в качестве шлюза или прокси-сервера, принимает некорректный ответ от сервера, к которому он направил запрос

SIP/2.0 503 Service Unavailable — сервер не может в данный момент обслужить вызов вследствие перегрузки или проведения технического обслуживания

SIP/2.0 504 Server time-out — сервер не получил ответа в течение установленного промежутка времени от сервера, к которому он обратился для завершения вызова

SIP/2.0 505 SIP Version not supported — версия не поддерживается: Сервер не поддерживает эту версию протокола SIP

SIP/2.0 513 Message too big — сервер не в состоянии обработать запрос из-за большой длины сообщения


6xx = глобальная ошибка

SIP/2.0 600 Busy everywhere — вызываемый пользователь занят и не желает принимать вызов в данный момент

SIP/2.0 603 Decline — вызываемый пользователь не желает принимать входящие вызовы, не указывая причину отказа

SIP/2.0 604 Does Not Exist Anywhere — вызываемого пользователя не существует

SIP/2.0 606 Not Acceptable — соединение с сервером было установлено, но отдельные параметры, такие как тип запрашиваемой информации, полоса пропускания, вид адресации не доступны