Показаны сообщения с ярлыком server. Показать все сообщения
Показаны сообщения с ярлыком server. Показать все сообщения

четверг, 24 января 2013 г.

Синхронизация времени в домене 2008


На днях вновь озаботился вопросом синхронизации времени на компьютерах в домене Windows 2008. Теоретически, нет никакой проблемы, если первый контроллер домена будет сверять время с железом, на котором стоит. Однако моя практика показала, что когда DC стоит на виртуальной машине, а платформа виртуализации (конкретно, была использована VMWare ESXi 5) сверяет время, как и все остальные, с DC, то время в домене начинает сильно убегать. В любом случае, намного лучше и удобнее, если время не только синхронизировано внутри самого домена, но и является достоверным.

понедельник, 21 января 2013 г.

Внезапное завершение работы Microsoft Windows Server 2008 R2

Проблема в следующем: Со вчерашнего дня сервер стал самостоятельно завершать работу. Операционная: Microsoft Windows Server 2008 R2. Происходит это каждый час. То есть стабильно работает один час, и вырубаеться, в режиме корректного завершения работы. Останавливает все службы и переходит в режим готовности. Настроен был на постоянную безотказную работу, даже при выключении питания в энергосети и при обратном включении востанавливает свою работу. 
Установил софт 10 дней назад. Есть подозрение что это происходит из-за активации. Хотя В сети нашол какой то кряк, и после пременения пишет что активен, и работал без сбойно. 
Такую же проблему встречал и на некоторых версиях семёрки. Но там по 2 часа работа была. 

Сам вопрос: кто сталкивался с таким? Как решить?

понедельник, 20 октября 2008 г.

Установка и настройка ftp-сервера (ubuntu & proftpd)

Задача: установить фтп-сервер и настроить доступ из интернета.

ОС - ubuntu-sever 8.04 (только консоль).

Устанавливаю пакет proftpd:

sudo aptitude install proftpd

Перед установке потянулись еще три зависимости, согласился.
При установке пакет спрашивает о способе запуска: самостоятельно или через inetd?

Я выбираю "самостоятельно".

Затем открываю файл /etc/shells:

sudo nano /etc/shells

добавляю в него одну строку:

/bin/false

И создаю в /HOME каталоге папку FTP-shared:

sudo mkdir /home/FTP-shared

После этого создаю пользователя с именем userftp:

sudo useradd userftp -p parol -d /home/FTP-shared -s /bin/false

где вместо "parol" - ввожу слово или фразу в качестве пароля :)

В папке FTP-shared создаю две дополнительные папки:

sudo mkdir /home/FTP-shared/public
sudo mkdir /home/FTP-shared/upload

и даю нужные права созданным папкам:

sudo chmod 755 /home/FTP-shared
sudo chmod 755 /home/FTP-shared/public
sudo chmod 777 /home/FTP-shared/upload

После этого переименовываю имеющийся конфигурационный файл proftpd.conf и создаю новый:

sudo mv /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old
sudo nano /etc/proftpd/proftpd.conf

добавив в него следующие строки:

# отключаю протокол
UseIPv6 off

AllowOverwrite on
AuthAliasOnly on

# Здесь присваивается alias пользователю (я присвоил имя donet)
UserAlias donet userftp

ServerName "server"
ServerType standalone
DeferWelcome on

MultilineRFC2228 on
DefaultServer on
ShowSymlinks off

TimeoutNoTransfer 600
TimeoutStalled 100
TimeoutIdle 2200

DisplayChdir .message
ListOptions "-l"

RequireValidShell off

TimeoutLogin 20

RootLogin off

# пути для логов
ExtendedLog /var/log/ftp.log
TransferLog /var/log/xferlog
SystemLog /var/log/syslog.log

#DenyFilter \*.*/

# Я не использую файл /etc/ftpusers (здесь вводим имена пользователей, для ограничения их доступа)
UseFtpUsers off

# Allow to restart a download
AllowStoreRestart on

# Стандартный порт для фтп 21, для повышения безопасности можно выбрать другой (произвольный):
Port 21

# повышение безопасности
MaxInstances 8

# пользователь и группа
User nobody
Group nogroup

# Umask 022 ограничение на создание файлов и папок
Umask 022 022

PersistentPasswd off

MaxClients 8 "Достигнут предел на количество клиентов"
MaxClientsPerHost 8 "Достигнут предел на количество клиентов с Вашего хоста"
MaxClientsPerUser 8 "Достигнут предел на количество подключений (%m)"
MaxHostsPerUser 8 "Больше нельзя"

# вывод приветствия после успешного входа
AccessGrantMsg "Добро пожаловать!!!"
# идентификация
ServerIdent on "Мой домашний сервер"

# делаем /home/FTP-shared папку домашней
DefaultRoot /home/FTP-shared

# запрещаем выходить пользователям за пределы домашней папки (строго рекомендуется)
DefaultRoot ~

MaxLoginAttempts 5 "Количество попыток входа исчерпано - придется подождать, ничего не поделаешь, безопасность превыше всего"

#VALID LOGINS

AllowUser userftp
DenyALL



Umask 022 022
AllowOverwrite off

DenyAll




Umask 022 022
AllowOverwrite off

DenyAll



/home/FTP-shared/upload/>
Umask 022 022
AllowOverwrite on

DenyAll



AllowAll



# # анонимный доступ
#
# User userftp
# Group nogroup
# UserAlias anonymous userftp
# MaxClients 8 "Извините, максимум %m пользователей - попробуйте подключиться позже"
# DisplayChdir .message
#
#
#
# DenyAll
#

#

#

Все, настройка закончена, я буду иметь доступ к фтп-серверу с параметрами доступа:
user (пользователь): donet
password (пароль): parol (тот, что я присвоил для userftp)

Если нужно сделать анонимный доступ, следует закомментировать обе секции для donet и раскомментировать секцию для анонима

Теперь осталось только запустить сервер с измененными параметрами (он уже запущен, но с параметрами по умолчанию):

sudo /etc/init.d/proftpd restart

Для проверки синтаксиса созданного конфиг-файла можно выполнить

sudo proftpd -td5

Что бы узнать, кто подключен к фтп-серверу в данный момент использую команду ftptop (клавиша t меняет отображение, q - выход), можно также использовать команду ftpwho

В итоге я получил фтп-сервер с двумя папками, одна из них (public) доступна только на чтение, а другая (upload) - на запись

Полезные советы:

Если нужно подключить какую-либо папку или партицию к фтп-серверу (например, проверить работу только что созданного фтп-сервера) без редактирования конфига пригодится команда:

sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/public

или с доступом на запись:

sudo mount -o bind /здесь/путь/папки/что/я/хочу/расшарить/ /home/FTP-shared/upload

Таким образом можно в срочном порядке временно подключить папку или диск и потом отмонтировать командой:

sudo umount /home/FTP-shared/public

или:

sudo umount /home/FTP-shared/upload

Для постоянного доступа к нужным папкам я подключил их посредством fstab.
Рекомендую предварительно сделать бэкап файла fstab:

sudo cp /etc/fstab /etc/fstab.old

Открыть файл /etc/fstab

sudo nano /etc/fstab

и добавить нужные пути:

/здесь/путь/папки/что/я/хочу/расшарить /home/FTP-shared/public none bind 0 0

Теперь даже при рестарте сервера (компьютера) информация будет доступна, но только в локальной сети. Это потому, что моя локальная сеть находится за роутером. Что бы увидеть фтп-сервер из интернета нужно дать ему внешний ip-адрес. Для этого я просто открываю нужный порт (в моем случае 21) для локального адреса (вида 192.168.xxx.xxx) на котором висит мой сервер, для доступа извне.

Теперь нужно дать моему внешнему динамическому айпи-адресу осмысленный и постоянный адрес. Я иду на DynDNS.com и регистрируюсь. Затем создаю себе удобный и запоминающийся адрес (вида moj-server.homeip.net). Дальше - проще. Вношу регистрационные данные с сервиса DynDNS в настройки роутера1 (этот пункт меню называется у меня Dynamic DNS) и ... все. Работает!!!
Теперь только осталось поменять ServerName "server" в файле proftpd.conf на ServerName "moj-server.homeip.net" и рестартануть фтп-сервер.

источник

вторник, 23 сентября 2008 г.

SQUID: Настройка прокси-кэширующего сервера

Когда нужно предоставить совместный доступ к Web-сервисам с возможностью кэширования трафика, в первую очередь вспоминают о кэширующем прокси-сервере Squid. Это гибкое решение применяют и в мелких офисах с несколькими пользователями, и в корпоративных сетях со сложной топологией. Разберем, как настроить в Squid самые популярные функции - контроль доступа и работу с кэшем.

Для новичков - пара слов о самом Squid. Squid, он же “кальмар” (www.squid-cache.org) - приложение, позволяющее организовать прокси/кэширующий сервер для HTTP, FTP и некоторых других популярных протоколов. Поддерживается работа с защищенными TLS/SSL соединениями, кэширование DNS, возможно использование Squid в качестве прозрачного или реверсного прокси. Распространяется по лицензии GNU GPL. Работает во всех популярных вариантах Unix систем - GNU/Linux, *BSD, MAC OS X, SunOS/Solaris. ЕСть и для Windows.
В качестве примера буду использовать Ubuntu, как более удобного дистрибутива, но сказанное относится и к остальным дистрибутивам или ОС (установка происходит по разному, в различных дистрибуивах). Надо отметить, что сейчас параллельно развивается две ветки: 2.х и 3.х.Третья ветка перешла в разряд Stable в конце прошлого года, и разработчики рекомендуют ее к использованию. В репозитарии Ubuntu, начиная c Festy Fawn (7.04), есть и пакеты с третьей версией Squid. По описываемым в статье параметрам отличий у них практически нет, возможно только некоторые специфические.
Установка кальмара в Ubuntu довольно проста:
$ sudo apt-get install squid squid-common

Или, для Squid 3:
$ sudo apt-get install squid3 squid3-common
После инсталяции Squid будет запущен с установками по умолчанию. При первом запуске возможна ошибка “FATAL: Could not determine fully qualified hostname. Please set ‘visible_hostname’”. Это значит, что по дефолту разрешение имени узла, на котором работает Squid, осуществляется при помощи gethostname(). В зависимости от установок DNS он иногда не может однозначно определить имя, которое будет фигурировать в журналах и выводах об ошибках “Generated … by server.com (squid/3.0.STABLE2)”, поэтому просит тебя помочь. Все настройки Squid производяться в единственном файле /ect/squid/squid.conf. В нем до невероятности много параметров и бросаться менять их все и сразу не стоит. Просмотреть список парметров, убрав пустые и закомментированные строки, можно при помощи команды:
$ sudo grep -v “^#” /ect/squid/squid.conf | sed -e ‘/^$/d’
Формат squid.conf стандартен для Unix. Каждая запись состоит из строк вида: “параметр значение”. Строки, начинающиеся со знака решетки, - комментарии. Для удобства настройки все параметры разбиты по секциям. разбиение чисто условно и свои параметры можно заносить в любое место файла. Возможно подключение внешнего файла с настройками при помощи include. Помни, что установки применяются в порядке очередности.
Для начала запустим Squid, устранив ошибку, указанную выше. Заносим в конфиг строку с именем сервера Squid (необязательно должно совпадать с доменным):
visible_hostname mysquid
И запускаем:
$ sudo /ect/init.d/squid start
В настройках по умолчанию сквид принимает входящие соединение на 3128/tcp. Командой “netstats - ant / grep 3128″ проверяем, слушается ли этот порт. Если все ОК, настраиваем веб-браузер для работы через прокси-сервер и выходим в Сеть. Но сейчас это возможно только с localhost. Чтобы в интернет могли попасть остальные пользователи локальной сети, нужно установить соответствующие разрешения, используя контроль доступа.

НАСТРАИВАЕМ ДОСТУП

Изменив параметр http_port, мы можем подвесить Squid только на внутренний сетевой интерфейс:
http_port 192.168.0.1:3128
Чтобы разрешить всем пользователям сетей 19.168.0.0, 172.16.0.0 и компьютера 192.168.1.1 подключаться к Squid, добовляем описание нового списка доступа в секцию “ACCESS CONTROL”:
acl localhost src 192.168.0.0/24 172.16.0.0/12 192.168.1.1
Переменные чувствительны к регистру, но, применив параметр “ac1 -i”, это можно исправить. Чуть дальше покажу как. Если нужно настроить доступ не для всей сет, а для отдельных ее узлов, проще записать их адреса в файл (по одному в строке), которой и указать в качестве последнего параметра. Третья строка - тип списка доступа. В нашем случае используется src (от source). При помощи других параметров можно задать внешний адрес (dst), MAC-адрес (arp), деменное имя (srcdomain,dstdomain), порт (port), протокол (proto), время (time) и много друго. Фактически, работа по организации доступа сводится к описанию объекта в acl, а затем разрешению или запрету работы объекта при помощи http_access с требуемыми параметрами. Например, чтобы указать рабочее время, применем такую конструкцию:
acl work_hours time M T W T F 9:00 - 18:00
В описании используется первые буквы английского языка, соответствующие дням недели. В секции “ACCESS CONTROL” уже описаны некоторые ACl, в частности, описываются номера некоторых портов (привожу не все) b ACL, соотвестствующий всем адресам:
acl SSL_ports port 443 563 873
acl Safe_ports port 80 21 443 563 1025-65535
acl all src 0.0.0.0/0.0.0.0

Следует внимательно просмотреть весь список и закомментировать строки с портами ненужных или неиспользуемых сервисов. Когда списки составлены, при помощи параметра http_access разрешаем или запрещаем доступ указанному ACL. Общий формат вызова такой:
http_access allow|deny [!]название_ACL
Восклицательный знак инвентирует значение списка, то есть звучит, как “все кроме”. По умолчанию используется правило:
http_access deny all
Его мы обязательно помещаем в конец списка рулесетов. В этом случае все соединения, которое не разрешены явно, будут блокированы. Майнтэйнеры, собирающие пакеты в дистрибутивах, как правило, добавляют и несколько своих правил.
Чтобы разрешить подключение к Squid с указанных адресов и работу только с нужными портами, пишем:
http_access allow localnet
http_access deny !Safe_ports
http_access deny !SSL_ports

Сохраняем результат и перезапускаем Squid:
$ sudo/ect/init.d/squid restart
Проверяем. Если все нормально, идем дальше. Чтобы не перерастраивать клиентские системы, проще использовать iptables:
iptables -t nat -A PREROUTING -i eth1 \
-p tcp -m tcp –dport 80 -j DNAT \
–to-destination 192.168.0.1:3128

iptables -t nat -A PREROUTING -I eth0 -p tcp -m tcp \
–dport 80 -j REDIRECT –to-ports 3128
А вот ее один пример. Нам нужно, чтобы компьютеры с определенными IP могли выходить в инет только в рабочее время. Без проблем:
acl workip src 192.168.1.100 192.168.1.200-
192.168.1.210
http_access deny!work_hours workip

Получается не очень читабильно, но можно сделать так:
http_access allow work_hours workip
http_access deny workip

первая строка разрешит доступ при совпадении двух ACL: рабочее время и IP-адрес. Вторая запретит доступ всех записанных в ACL workip при несовпадении с первым правилом (тоесть в другой временной промежуток).

ЗАПРЕТ БАНЕРОВ И САЙТОВ

Одна из функций, которая делает Squid востребованным, - зпрет доступа к определенным интернет ресурсам. Это реализованно на той же сладкой парочке: acl и http_access. Зная адрес ресурса, можно просто закрыть доступ к конкретному адресу или целевой подсети:
acl denynet dst 194.55.0.0/16
http_access deny denynet

Но всмето того, чтобы использовать адрес, удобнее при помощи dstdomain указать домен назначения. Например, запретим доступ к сервисам вроде RapidShare:
acl rapida dstdomain .rapidshare.com .rapidshare.de
http_access deny rapida

НАСТРОЙКА КЭША

Борьбас баннерами - не единственная возможность сэкономить трафик. нельзя обойти стороной настройку кэширования. В Ubuntu кэш по умолчанию размещается в каталоге /var/spool/squid. В других дистрибутивах может быть иначе. Чтобы не искать, посмотри значение переменной cache_dir. Формат ее такой:
cache_dir type путь размер L1 L2 [options]
Например:
cache_dir ufs /var/spool/squid 10249 16 256
Поле type определят тип кэша: ufs (unix file system), aufs и diskd. Обычно используется ufs как наиболее надежный. Максимальный размер, после которого кэш будет очищаться, установлен по умолчанию в 100 Мб. При серьезных нагрузках он быстро заполнится, поэтому есть смысл увеличить его до нескольких гигабайт (я увеличил до 10 Гб). Удобно, что можно использовать несколько cache_dir, установив кэш на разных дисках, - положительно скажется на производительности. В Squid каждый кэшируемый объект распологается в отдельном файле, а сами файлы не сваливаются в одно место, благодаря механизму работы с двухуровневой иерархией каталогов. Количество каталогов первого и второго уровней определяют параметры L1 и L2. По умолчанию их значения 16 и 256, соответственно. Дополнительно для каждого cache_dir можно определить параметр read-only (только чтение) и max-size (максимальный размер объекта).
Максимальный размер объекта в кэше определяется переменной maximum_object_size. значение по умолчанию - 4Мб, есть смысл его увеличить:
maximum)object_size 10240 KB
Аналогично, есть пример minimum_object_size, отвечает за минимальный размер объекта, по дефолту он отключен (значение 0).Объем ОЗУ, используемый Squid для хранения обрабатываемых объектов, определяется пармаетром cache_mem (по умолчанию - 8 Мб). при большом размере кэша лучше увеличить это значение, тем более что объемы современных ОЗУ это позволяют. Иначе Squid будет сбрасывать всю информацию на диск, что замедлит его работу. Но это еще далеко не все. например, отключенный по умолчанию параметр reload_info_ims разрешает игнорировать nocache или reload и выдать объект из кэша. Это нарушение стандарта HTTP, но большинство серверов умеют корректно обрабатывать такой запрос, поэтому включаем:
reload_into_ime on
Вместо глобальной установки можно задать такой параметр для некоторых типов файлов.
Документация на странице reload_into_ims отсылает нас к не менее интересной директиве refresh_pattern, которая управляет параметрами кэширования:
refresh_pattern [-i] regex min percent max [options]
В regex пишем регулярное выражение, которое будет отвечать правило. Проверка производится до первого совпадения. Поэтому последним всегда устанавливается “.” - то есть правило для всех объектов. Параметр min и max указывают на минимальное и максимальное время в минутах, в течение которого объект считается новым. В percent указывается процент от времени последней модификации объекта. В min рекомендуется устанавливать 0, чтобы корректно работать с динамически обновляемыми страницами. В версии Squid 2.x по умолчанию используется инструкции:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher:1440 0% 1440
refresh_pattern . 0 20% 4320

В версии 3.0 перед “.” добавлена строка:
refresh_pattern (cgi-bin|\?) 0 0% 0
В поле options через пробел указываются дополнительные параметры. В версии 2.х параметров семь, в 3.х добавилось еще два. Большинство из них идут в разрез со стандартами HTTP, и их использование может вызвать проблемы при работе с некоторыми серверами. Однако они весьма полезны для оптимизации кэша и понадобятся в дальнейших настройках:
- override-expire - в нарушение стандарта заставляет игнорировать параметр expire, то есть время актуальности объекта;
- override-lastmod - игнорирует время последней модификации объекта, переданного сервером;
- reload-inti-ims, ignore-reload - изменяет или игнорирует клиентские запросы nocache или reload и принудительно выдает объект, хранящийся в кэше;
- ignore-no-cache, ignore-private, ignore-auth - игнорирует заголовки “Pragma: no-cache”, “Cache-control: no-cache”, “Cache-control: private” и “Cache-control: public”, принудительное кэшируя такой объект. Параметры, появившиеся в третьей версии:
- ignore-no-store - Игнорировать заголовок “Cache-control: no-store”;
- refresh-ims - заставляет проверять наличие новой версии файла при получении от клиента if-Modified-Since.
В самом простом случае вместо правил по умолчанию можно написать одно правило, заставляющее принудительно кэшировать объекты на целый год:
refresh_pattern . 518400 80% 518400
override-expire override-lastmod reload-into-ims
ignore-no-cache ignore-private ignore-auth ignore-no-store

Устанавливаем размер кэша побольше и забываем о Squid. Это даст весьма ощутимую экономию трафика. Но таокй подход не всегда приемлен, да и кэш быстро заполнится старыми файлами. Поэтому лучше установить свои варианты кэширования для различных типов файлов. Например, часто на сайтах проектов экзешники, архивы и некоторые другие типы файлов имеют постоянный адрес, вроде server.com/current.exe. Укажем для таких файлов время хронения в месяц:
refresh_pattern \.exe$ 43200 100% 43200
override-expire override-lastmod reload-into-ims
ignore-no-cache ignore-private ignore-auth ignore-no-store

refresh_pattern \.zip$ 43200 100% 43200
override-expire override-lastmod reload-into-ims
ignore-no-cache ignore-private ignore-auth ignore-no-store
И так далее. Схожим образом “вырезаем” рекламу. Так как довольно трудно создать универсальное правило для acl/http_access и всегда можно допустить ошибку, рекламу проще кэшировать, чем блокировать:
refresh_pattern http://ad\. 43200
100% 43200 override-expire override-lastmod
reload-into-ims ignore-no-cache ignore-
private ignore-auth ignore-no-store
refresh_pattern http://click\. 43200
100% 43200 override-expire override-lastmod
reload-into-ims ignore-no-cache ignore-
private ignore-auth ignore-no-store
refresh_pattern http://count\. 43200
100% 43200 override-expire override-lastmod
reload-into-ims ignore-no-cache ignore-
private ignore-auth ignore-no-store

Это наиболее простой способ. При тщательном изучении логов можно составить коллекцию URL, которые стоит поместить в вечный кэш.
В настройки Squid, не так уж и сложен. Если не считешь удобную ручную настройку, обратись к Webmin, где большинство установок можно произвести в наглядной форме. Базовая настройка занимает минут 10. После определенной доводки пользователи будут радоваться скорости открытия страниц, да и по карману сильно не ударит.

источник

суббота, 20 сентября 2008 г.

Postfix+VirtualMailBox+ ClamSmtp на Ubuntu

источник

Вот уже несколько лет Ubuntu Linux занимает ведущие позиции на пользовательских десктопах и пользуется заслуженной любовью своих почитателей. Все под рукой, все удобно…нет проблем с мультимедиа, с дополнительным оборудованием тоже. А как в плане его юзабильности как серверной платформы? каков он, как сервер? Так ли все хорошо и удобно там, как на десктопе?

Этой статейкой я хочу начать цикл описательных работ по использованию Ubuntu Linux (далее просто Ubuntu) в качестве сервера и, как мне кажется, многим будет интересно это прочитать и реально использовать.
В этой статье я буду описывать применение Ubuntu 8.04 Server i386 Hardy Heron в качестве платформы для развертывания почтовой системы Postfix+VirtualMailBox+ClamSmtp.

В дальнейшем (в рамках цикла) опишу как присоединить к этому всему spamassassin. После чего перейдем к описанию исчерпывающего руководства Postfix Complete Virtual Mail System, где уже описана почтовая система уровня серьезного провайдера без каких либо ограничений.

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

Идеальный сервер: настройка Ubuntu Gutsy Gibbon 7.10 Server для ISP и хостеров

б зщисточник

Работаете администратором или инженером в провайдерской конторе? А может сами хотите начать свой бизнес в этой сфере? Вполне вероятно, что вам сильно поможет данное руководство.

Материал подготовлен на базе статьи с howtoforge.com (автор: Falko Timme)

Материал посвящен быстрому развороту системы для нужд интернет сервис провайдеров и хостеров, на базе Ubuntu Gutsy Gibbon (Ubuntu 7.10 Server).

Эта статья расскажет о подробной установке веб-сервера Apache (+SSL), почтового сервера Postfix (+ SMTP-AUTH и TLS), BIND DNS сервера, Proftpd FTP сервера, MySQL сервера, Courier POP3/IMAP, Quota, Firewall, и т.п.

Рассматривается установка на 32-х битную версию Ubuntu Server, для иных версий (x64, UltraSPARC) возможны небольшие отличия.

Используемое ПО:

  • веб-сервер: Apache 2.2
  • сервер баз данных: MySQL 5.0
  • почтовый сервер: Postfix
  • DNS сервер: BIND9
  • FTP сервер: proftpd
  • POP3/IMAP: используется формат Maildir с установкой Courier-POP3/Courier-IMAP.
  • Webalizer для статистики
  • В итоге, вы получите надежную работающую систему, и сможете поверх нее установить бесплатную систему для удаленного управления веб-хостингом ISPConfig.

    Для установки нам нужен CD с Ubuntu Server 7.10 x86 и хорошее соединение с интернетом.

    В статье будет использовано имя хоста server1.example.com с IP-адресом 192.168.0.100 и шлюзом 192.168.0.1.

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

    Шаги установки, на которых система будет требовать от вас действий:

    1. Ставим диск с Ubuntu Server 7.10 x86 и загружаемся с него.
    2. Перед началом установки выбираем опцию F2 и выбираем русский язык.
    3. Выбираем “Установить на жесткий диск”.
    4. Выбираем способ переключения языковой раскладки (у меня например Alt+Shift).
    5. Вводим имя компьютера.
    6. Разметка диска (Авто - использовать весь диск), либо на ваше усмотрение.
    7. Выбрать диск для разметки (если их несколько, выберите нужный).
    8. Подтверждаем изменения на диске.
    9. Выбираем часовой пояс.
    10. Указываем, что системные часы показывают UTC.
    11. Заводим учетную запись пользователя с административными привелегиями.
    12. Забиваем и подтверждаем пароль для этого пользователя.
    13. Выбираем какие пакеты мы поставим. ВНИМАНИЕ: нужно выбрать только OpenSSH.
    14. Завершаем установку, вынимаем диск, перезагружаемся.

    После перезагрузки, заходим в систему под тем пользователем и паролем, который мы создали.

    Дальнейшая работа будет происходить под суперпользователем root, для этого зададим ему пароль:

    $ sudo passwd root

    указываем пароль для него и начинаем работать уже из-под root

    $ su

    если вы вдруг не поставили OpenSSH сервер во время установки, это можно исправить установив его сейчас

    # apt-get install ssh openssh-server

    после этого можно вообще отключить от этой машины монитор, клаву и мышь, и работать удаленно по сети, например
    через Putty, чтобы не забивать ручками, а просто копировать информацию для конфигов прямо из этого руководства :)
    В оригинале статьи автор использует консольный редактор vim, я предлагаю начинающим использовать ee (easy editor), а бывалые пользователи пусть используют, что им по вкусу.
    Ставим ee:

    #apt-get install ee

    Настраиваем сеть:
    По умолчанию установщик сконфигурировал наш сетевой интерфейс на получение настроек по DHCP, но наш сервер должен иметь статический IP-адрес, для этого надо поправить настройки в файле /etc/network/interfaces

    # ee /etc/network/interfaces

    Пример файла конфигурации (тут вам надо использовать уже ваши данные, вместо примера данных, описывающих iface eth0 inet static, то есть укажите ваш адрес, маску сети, сеть и броадкаст):

    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface
    auto lo
    iface lo inet loopback

    # The primary network interface
    auto eth0
    iface eth0 inet static
    address 192.168.0.100
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

    Указали свои данные? Сохраните файл и перезапустите сеть:

    # /etc/init.d/networking restart

    Затем поправьте файл /etc/hosts

    # ee /etc/hosts

    Он должен выглядеть примерно так (только с вашими данными):
    127.0.0.1 localhost.localdomain localhost
    192.168.0.100 server1.example.com server1

    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    Теперь выполните

    # echo server1.example.com > /etc/hostname

    # /etc/init.d/hostname.sh start

    Затем:

    # hostname

    # hostname -f

    Обе команды должны вывести server1.example.com (или то имя, которое указали вы)

    Правим файл /etc/apt/sources.list и проводим апдейт для нашей системы

    # ee /etc/apt/sources.list

    Закомментируем или удалим ссылки на установочный CD из этого файла и удостоверимся, что репозитории universe и multiverse доступны, т.е. файл будет выглядеть примерно так:

    #
    # deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted

    #deb cdrom:[Ubuntu-Server 7.10 _Gutsy Gibbon_ - Release i386 (20071016)]/ gutsy main restricted
    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.

    deb http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy main restricted

    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted

    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team, and may not be under a free licence. Please satisfy yourself as to
    ## your rights to use the software. Also, please note that software in
    ## universe WILL NOT receive any review or updates from the Ubuntu security
    ## team.
    deb http://de.archive.ubuntu.com/ubuntu/ gutsy universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy universe
    deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates universe

    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team, and may not be under a free licence. Please satisfy yourself as to
    ## your rights to use the software. Also, please note that software in
    ## multiverse WILL NOT receive any review or updates from the Ubuntu
    ## security team.
    deb http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy multiverse
    deb http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse

    ## Uncomment the following two lines to add software from the ‘backports’
    ## repository.
    ## N.B. software from this repository may not have been tested as
    ## extensively as that contained in the main release, although it includes
    ## newer versions of some applications which may provide useful features.
    ## Also, please note that software in backports WILL NOT receive any review
    ## or updates from the Ubuntu security team.
    # deb http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse
    # deb-src http://de.archive.ubuntu.com/ubuntu/ gutsy-backports main restricted universe multiverse

    ## Uncomment the following two lines to add software from Canonical’s
    ## ‘partner’ repository. This software is not part of Ubuntu, but is
    ## offered by Canonical and the respective vendors as a service to Ubuntu
    ## users.
    # deb http://archive.canonical.com/ubuntu gutsy partner
    # deb-src http://archive.canonical.com/ubuntu gutsy partner

    deb http://security.ubuntu.com/ubuntu gutsy-security main restricted
    deb-src http://security.ubuntu.com/ubuntu gutsy-security main restricted
    deb http://security.ubuntu.com/ubuntu gutsy-security universe
    deb-src http://security.ubuntu.com/ubuntu gutsy-security universe
    deb http://security.ubuntu.com/ubuntu gutsy-security multiverse
    deb-src http://security.ubuntu.com/ubuntu gutsy-security multiverse

    Затем запускаем обновление базы данных ПО:

    # apt-get update

    и устанавливаем последние обновления (если они есть):

    # apt-get upgrade

    Теперь нам необходимо сменить шелл, поскольку иначе мы не сможем установить ISPConfig.

    /bin/sh это символическая ссылку на /bin/dash, а нам нужно /bin/bash, а не /bin/dash

    Поправляем это таким образом:

    # ln -sf /bin/bash /bin/sh

    Теперь нам нужно установить кое-какие пакеты, которые нам потребуются в дальнейшем.

    # apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.3-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

    Внимание: эта команда идет одной строкой!

    Настройка квот.

    Если вы сделали разметку своего диск как-то по своему, то вам придется применять квотирование к тем разделам где это вам нужно.

    Установим:

    # apt-get install quota

    Поправим /etc/fstab. Мой выглядит так(я добавил usrquota, grpquota к основному разделу с точкой монтирования /):

    # ee /etc/fstab

    # /etc/fstab: static file system information.
    #
    #

    proc /proc proc defaults 0 0
    # /dev/sda1
    UUID=9fc157ff-975c-4f20-9fef-6a70085abdbd / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
    # /dev/sda5
    UUID=48fb7dd8-f099-4d63-ac1b-30e886ac7436 none swap sw 0 0
    /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
    /dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0
    Для активации квоты выполните:

    # touch /quota.user /quota.group

    # chmod 600 /quota.*

    # mount -o remount /

    # quotacheck -avugm

    # quotaon -avug

    Настройка DNS

    Выполните:

    # apt-get install bind9

    Про соображениям безопасности BIND надо запускать через chroot:

    # /etc/init.d/bind9 stop

    Правим файл /etc/default/bind9 так, чтобы демон запускался как непривелигированный пользователь bind, с chroot в /var/lib/named. Поправьте строку: OPTIONS=”-u bind” на OPTIONS=”-u bind -t /var/lib/named”:

    # ee /etc/default/bind9

    OPTIONS=”-u bind -t /var/lib/named”
    # Set RESOLVCONF=no to not run resolvconf
    RESOLVCONF=yes

    Создадим необходимые директории в /var/lib:

    # mkdir -p /var/lib/named/etc

    # mkdir /var/lib/named/dev

    # mkdir -p /var/lib/named/var/cache/bind

    # mkdir -p /var/lib/named/var/run/bind/run

    Переместим директорию с конфигами из /etc в /var/lib/named/etc:

    # mv /etc/bind /var/lib/named/etc

    Создадим символическую ссылку на новую директорию с конфигами ( чтобы не было проблем с обновлением bind в дальнейшем):

    # ln -s /var/lib/named/etc/bind /etc/bind

    Создадим null и random устройства, исправим разрешения для директорий:

    # mknod /var/lib/named/dev/null c 1 3

    # mknod /var/lib/named/dev/random c 1 8

    # chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random

    # chown -R bind:bind /var/lib/named/var/*

    # chown -R bind:bind /var/lib/named/etc/bind

    Изменим /etc/default/syslogd чтобы мы могли получать важные сообщения в логах
    Исправьте строку: SYSLOGD=”" на эту SYSLOGD=”-a /var/lib/named/dev/log”:

    # ee /etc/default/syslogd

    #
    # Top configuration file for syslogd
    #

    #
    # Full documentation of possible arguments are found in the manpage
    # syslogd(8).
    #

    #
    # For remote UDP logging use SYSLOGD=”-r”
    #
    SYSLOGD=”-a /var/lib/named/dev/log”

    Перезапускаем демон логов:

    # /etc/init.d/sysklogd restart

    Запускаем BIND, и проверяем /var/log/syslog на ошибки:

    # /etc/init.d/bind9 start

    MySQL

    Устанавливаем пакет:

    # apt-get install mysql-server mysql-client libmysqlclient15-dev

    Вас спросят ввести пароль для root пользователя MySQL - этот пароль будет использоваться как для пользователя root@localhost , так и для r...@server1.example.com, так что нам не придется указывать пароль для рута MySQL позже(как это было в предыдущих версиях):

    New password for the MySQL “root” user: введите-свой-пароль

    Нам нужно чтобы MySQL слушал на других интерфейсах, а не только на localhost, для этого правим /etc/mysql/my.cnf и закомментируем строку bind-address = 127.0.0.1:

    # ee /etc/mysql/my.cnf

    […]
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #bind-address = 127.0.0.1
    #
    […]

    Затем перезапускаем MySQL:

    # /etc/init.d/mysql restart

    Проверьте, что MySQL доступен для сети:

    # netstat -tap | grep mysql

    Вывод должен быть примерно таким:

    root@server1:~# netstat -tap | grep mysql
    tcp 0 0 *:mysql *:* LISTEN 5286/mysqld
    root@server1:~#

    Postfix с SMTP-AUTH и TLS

    По шагам:

    # apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules libdb3-util procmail

    Вам зададут два вопроса, отвечать надо примерно так:

    General type of mail configuration: <– Internet Site System mail name: <– server1.example.com

    затем запустите

    # dpkg-reconfigure postfix

    И опять ответьте на вопросы:

    General type of mail configuration: <– Internet Site System mail name: <– server1.example.com Root and postmaster mail recipient: <– [blank] Other destinations to accept mail for (blank for none): <– server1.example.com, localhost.example.com, localhost.localdomain, localhost Force synchronous updates on mail queue? <– No Local networks: <– 127.0.0.0/8 Use procmail for local delivery? <– Yes Mailbox size limit: <– 0 Local address extension character: <– + Internet protocols to use: <– all

    Затем, сделайте следующее:

    # postconf -e ’smtpd_sasl_local_domain =’

    # postconf -e ’smtpd_sasl_auth_enable = yes’

    # postconf -e ’smtpd_sasl_security_options = noanonymous’

    # postconf -e ‘broken_sasl_auth_clients = yes’

    # postconf -e ’smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination’

    # postconf -e ‘inet_interfaces = all’

    # echo ‘pwcheck_method: saslauthd’ >> /etc/postfix/sasl/smtpd.conf

    # echo ‘mech_list: plain login’ >> /etc/postfix/sasl/smtpd.conf

    После этого создадим сертификаты для TLS:

    # mkdir /etc/postfix/ssl

    # cd /etc/postfix/ssl/

    # openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

    # chmod 600 smtpd.key

    # openssl req -new -key smtpd.key -out smtpd.csr

    # openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt

    # openssl rsa -in smtpd.key -out smtpd.key.unencrypted

    # mv -f smtpd.key.unencrypted smtpd.key

    # openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

    И сконфигурируем Postfix для TLS (удостоверьтесь, что вы используете правильное имя компьютера для myhostname):

    # postconf -e ‘myhostname = server1.example.com’

    # postconf -e ’smtpd_tls_auth_only = no’

    # postconf -e ’smtp_use_tls = yes’

    # postconf -e ’smtpd_use_tls = yes’

    # postconf -e ’smtp_tls_note_starttls_offer = yes’

    # postconf -e ’smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’

    # postconf -e ’smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’

    # postconf -e ’smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’

    # postconf -e ’smtpd_tls_loglevel = 1′

    # postconf -e ’smtpd_tls_received_header = yes’

    # postconf -e ’smtpd_tls_session_cache_timeout = 3600s’

    # postconf -e ‘tls_random_source = dev:/dev/urandom’

    теперь файл /etc/postfix/main.cf должен выглядеть примерно так:

    # cat /etc/postfix/main.cf

    # See /usr/share/postfix/main.cf.dist for a commented, more complete version

    # Debian specific: Specifying a file name will cause the first
    # line of that file to be used as the name. The Debian default
    # is /etc/mailname.
    #myorigin = /etc/mailname

    smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
    biff = no

    # appending .domain is the MUA’s job.
    append_dot_mydomain = no

    # Uncomment the next line to generate “delayed mail” warnings
    #delay_warning_time = 4h

    # TLS parameters
    smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
    smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
    smtpd_use_tls = yes
    smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.

    myhostname = server1.example.com
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = server1.example.com, localhost.example.com, localhost.localdomain, localhost
    relayhost =
    mynetworks = 127.0.0.0/8
    mailbox_command = procmail -a “$EXTENSION”
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    inet_protocols = all
    smtpd_sasl_local_domain =
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
    smtpd_tls_auth_only = no
    smtp_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom

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

    # /etc/init.d/postfix restart

    Аутентификация будет производится saslauthd. Нужно кое-что изменить, чтобы это работало как надо.
    Поскольку Postfix работает через chroot в /var/spool/postfix мы делаем так:

    # mkdir -p /var/spool/postfix/var/run/saslauthd

    Теперь мы правим /etc/default/saslauthd для того чтобы активировать saslauthd.
    Установите START значение yes и измените строку OPTIONS=”-c” на OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”:

    # ee /etc/default/saslauthd

    #
    # Settings for saslauthd daemon
    #

    # Should saslauthd run automatically on startup? (default: no)
    START=yes

    # Which authentication mechanisms should saslauthd use? (default: pam)
    #
    # Available options in this Debian package:
    # getpwent — use the getpwent() library function
    # kerberos5 — use Kerberos 5
    # pam — use PAM
    # rimap — use a remote IMAP server
    # shadow — use the local shadow password file
    # sasldb — use the local sasldb database file
    # ldap — use LDAP (configuration is in /etc/saslauthd.conf)
    #
    # Only one option may be used at a time. See the saslauthd man page
    # for more information.
    #
    # Example: MECHANISMS=”pam”
    MECHANISMS=”pam”

    # Additional options for this mechanism. (default: none)
    # See the saslauthd man page for information about mech-specific options.
    MECH_OPTIONS=”"

    # How many saslauthd processes should we run? (default: 5)
    # A value of 0 will fork a new process for each connection.
    THREADS=5

    # Other options (default: -c)
    # See the saslauthd man page for information about these options.
    #
    # Example for postfix users: “-c -m /var/spool/postfix/var/run/saslauthd”
    # Note: See /usr/share/doc/sasl2-bin/README.Debian
    OPTIONS=”-c -m /var/spool/postfix/var/run/saslauthd -r”

    Теперь запускаем saslauthd:

    # /etc/init.d/saslauthd start

    Чтобы удостоверится, что SMTP-AUTH и TLS работают правильно, проверим так:

    # telnet localhost 25

    После соединения с Postfix наберите:

    ehlo localhost

    Если вы увидети строки:

    250-STARTTLS

    и

    250-AUTH PLAIN LOGIN

    значит все в порядке

    Вывод на моей системе выглядел так:

    root@server1:/etc/postfix/ssl# telnet localhost 25
    Trying 127.0.0.1…
    Connected to localhost.localdomain.
    Escape character is ‘^]’.
    220 server1.example.com ESMTP Postfix (Ubuntu)
    ehlo localhost
    250-server1.example.com
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH PLAIN LOGIN
    250-AUTH=PLAIN LOGIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    root@server1:/etc/postfix/ssl#

    наберите

    quit

    и вернитесь в шелл

    Courier-IMAP/Courier-POP3

    Устанавливаем Courier-IMAP/Courier-IMAP-SSL (для IMAP на порту 993) и Courier-POP3/Courier-POP3-SSL (для POP3 на порту 995):

    # apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

    Вам зададут вопросы:

    Create directories for web-based administration ? <– No SSL certificate required <– Ok

    Если вы не захотите использовать систему управления ISPConfig, сконфигурируйте Postfix на доставку почты в Maildir* пользователя:

    # postconf -e ‘home_mailbox = Maildir/’

    # postconf -e ‘mailbox_command =’

    # /etc/init.d/postfix restart

    *Обратите внимание: вам не надо этого делать, если вы будете использовать ISPConfig, поскольку он сам выполнит необходимое конфигурирование. При этом, вам лучше убедится в этом самостоятельно - удостоверьтесь что Maildir задействован в Management -> Server -> Settings -> EMail (в веб-интерфейсе ISPConfig).

    Apache/PHP5

    Ставим Apache:

    # apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

    Затем PHP5:

    # apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    Отвечаем на вопрос:

    Continue installing libc-client without Maildir support? <– Yes

    Далее правим /etc/apache2/mods-available/dir.conf:

    # ee /etc/apache2/mods-available/dir.conf

    Правим строку DirectoryIndex (в IfModule mod_dir.c):
    #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml
    DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

    Теперь надо активировать некоторые модули Apache (SSL, rewrite, suexec и include):

    # a2enmod ssl

    # a2enmod rewrite

    # a2enmod suexec

    # a2enmod include

    Перезагружаем конфигурацию Apache:

    # /etc/init.d/apache2 force-reload

    Отключаем глобальную работу PHP (если вы не планируете установку ISPConfig пропустите этот раздел!)

    В ISPConfig вы сконфигурируете PHP под каждый веб-сайт, т.е. укаже кто может использовать скрипты PHP, а кто нет. Это можно сделать только при отключении глобальной работы PHP, потому что иначе все вебсайты смогут запускать скрипты PHP, несмотря на установки в ISPConfig.

    Для отключения мы правим /etc/mime.types и закомментируем строки application/x-httpd-php:

    # ee /etc/mime.types

    […]
    #application/x-httpd-php phtml pht php
    #application/x-httpd-php-source phps
    #application/x-httpd-php3 php3
    #application/x-httpd-php3-preprocessed php3p
    #application/x-httpd-php4 php4
    […]
    Правим /etc/apache2/mods-enabled/php5.conf и закомментируем следующие строки в IfModule mod_php5.c:

    # ee /etc/apache2/mods-enabled/php5.conf

    #AddType application/x-httpd-php .php .phtml .php3
    #AddType application/x-httpd-php-source .phps

    Перезагружаем Apache:

    # /etc/init.d/apache2 restart

    Proftpd

    Устанавливаем:

    # apt-get install proftpd ucf

    Отвечаем на вопрос:

    Run proftpd from inetd or standalone? <– standalone

    Открываем /etc/proftpd/proftpd.conf и отклбчаем UseIPv6 (off); иначе будем получать предупреждения:

    - IPv6 getaddrinfo ’server1.example.com’ error: Name or service not known

    или можно поправить /etc/hosts and add server1.example.com (добавив строку ::1):

    127.0.0.1 localhost.localdomain localhost
    192.168.0.100 server1.example.com server1

    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback server1.example.com
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts

    или изменить /etc/proftpd/proftpd.conf:
    […]
    UseIPv6 off
    […]

    По соображениям безопасности нужно добавить следуюшие строки в /etc/proftpd/proftpd.conf (спасибо Reinaldo Carvalho; подробности здесь: http://proftpd.org/localsite/Userguide/linked/userguide.html):

    # ee /etc/proftpd/proftpd.conf

    […]
    DefaultRoot ~
    IdentLookups off
    ServerIdent on “FTP Server ready.”
    […]

    ISPConfig ищет конфиг в /etc/proftpd.conf вместо /etc/proftpd/proftpd.conf, поэтому создадим символическую ссылку (можете пропустить этот шаг если вы не будете ставить ISPConfig):

    # ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

    Затем перезапустим Proftpd:

    # /etc/init.d/proftpd restart

    Webalizer

    Просто ставим его:

    # apt-get install webalizer

    Синхронизируем системные часы

    Через сервер NTP(network time protocol), достаточно установить:

    # apt-get install ntp ntpdate

    И все, часы будут синхронизированы.

    Поставим некоторые модули Perl, которые потребуются SpamAssassin (который идет с ISPConfig):

    # apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl

    ISPConfig

    Поскольку конфигурирование нашего сервера завершено, теперь вы можете поставить на него систему управления ISPConfig, работающую через веб-интерфейс. Мануал по ее установке здесь: http://www.ispconfig.org/manual_installation.htm

    Обратите внимание на SuExec

    Если вы хотите запускать CGI скрипты под suExec, вам нужно указать /var/www в качестве домашней директории для вебсайтов создаваемых через ISPConfig в то время как Ubunt-овый suExec скомпилирован с /var/www в качестве Doc_Root.

    Выполните:

    # /usr/lib/apache2/suexec -V

    Вывод будет примерно таким:

    root@server1:~# /usr/lib/apache2/suexec -V
    -D AP_DOC_ROOT=”/var/www”
    -D AP_GID_MIN=100
    -D AP_HTTPD_USER=”www-data”
    -D AP_LOG_EXEC=”/var/log/apache2/suexec.log”
    -D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin”
    -D AP_UID_MIN=100
    -D AP_USERDIR_SUFFIX=”public_html”
    root@server1:~#

    Так что если вы будете использовать suExec с ISPconfig, не меняйте значения web-пути по умолчанию (т.е. оставьте /var/www) если вы работает в expert mode, когда будете устанавливать ISPConfig (в standard mode вы в любом случае этот путь поменять не сможете).

    Скриншот из expert mode:

    Ну вот и все…

    Метки: ,

    Комментариев: 10

    1. K.Slicen пишет:

      Сижу чешу репу, где тут про настройку файрволла-то?
      Снова перерыл оригинал и не нашел, таким образом думаю, что дело тут вот в чем: файрволл отстраивается все-таки через ISPConfig, либо статья в паблике на howtoforge не полная.

    2. gluki пишет:

      Если у меня кабельный модем без дайлера и переодически обнавляется IP (редко), но всё же
      - то как мне править interfaces и hosts???

    3. M.Archenko пишет:

      C interfaces все просто:

      auto eth0
      iface eth0 inet dhcp

      а вот с hosts, чуть сложнее, я думаю можно сделать так:
      1) копируем hosts в hosts.dynip, в котором вместо IP-адреса пишем нечто $OUR_IP_ADDRESS

      Пример:
      127.0.0.1 localhost
      $OUR_IP_ADDRESS myserver.mydomain

      2) правим /etc/rc.local, добавляем в конец следующие строки
      my_ip=`ifconfig eth0 | grep ‘inet addr:’| sed -r ’s/^.*inet addr://;s/[a-zA-Z]+:[0-9\.]+//g’`
      cat /etc/hosts.dynip | sed -e `echo s/\\\$OUR_IP_ADDRESS/$my_ip/` > /etc/hosts

    4. vitroo пишет:

      Что-то не понял, а каким образом заводить пользователей, точнее почтовые ящики? И пароли как задавать?
      Пытаюсь через этот сервер отослать почту, он спрашивает пароль к SMTP, что там вводить? Пробовал свой системный, пробовал тот, что задавал для сертификата, в итоге только:

      localhost postfix/smtpd[32423]: warning: SASL authentication failure: Password verification failed
      localhost postfix/smtpd[32423]: warning: local[127.0.0.1]: SASL PLAIN authentication failed: authentication failure

    5. gluki пишет:

      Попробовал поставил - работает!

      всё хорошо кроме одного - proftpd не нравится - поставил vsftpd - установилось всё хорошо - только вот через ispConfig в WebFTP не подключается, и принимает только локальных пользователей. разумеется прописал в ispconfig вместо proftpd.conf -> vsftpd.conf - всёравно не получатется

      Не подскажете где смотреть?

    6. gluki пишет:

      Спасибо M.Archenko за Ваше внимание!

      прописал как было сказано выше, при загрузке получаю след. сообщение:

      *Running local boot sctips (etc/rc.local):
      grep: addr:’(##)’: no such file or directory
      sed -e: expression #1, char 1: unknown command: `(#)’
      /etc/rc.local: line 14: =: command not found

    7. M.Archenko пишет:

      а если попробовать - создать отдельный скрипт и его выполнить (после загрузки) ?

    8. mechanik пишет:

      Ну вроде так “ничего”, т.е. нормально !
      Реально помогло в процессе установки !

      Так что спасибо большое !


    Неактивный атрибут "скрытый" или как снять атрибут скрытый после вируса

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