Полноценный web сервер на ubuntu: нужны мануалы, советы и ответы на вопросы?
Всем привет, знаю, что вопросов насчет поднятия web сервера и настройки домашнего сервера задают много. Большую часть из них я читал и сам вполне неплохо справляюсь с тривиальными задачами по установке и настройки серверов, но возникла потребность настроить web сервер на котором будут работать несколько сайтов доступных через интернет. Сейчас он у меня работает под Debian но к сожалению первый мой опыт был не столь удачным, поэтому я планирую переставить систему на ubuntu server 14.04 и на этот раз сделать все правильно. Здесь я опишу задачи которые надо реализовать и проблемы с которыми я уже сталкивался и надеюсь что вы поможете мне составить пошаговый мануал для настройки и поднятия web сервера на ubuntu. Попрошу сразу, не кидать ссылки на статьи если вы не уверены в актуальности информации, потому как 95% статей сейчас не совсем актуальны, в связи с изменениями в работе apache2 сервера ftp клиента да и вообще системы прав в ubuntu.
Что имеется из оборудования и иерархии сети: Есть белый IP адрес к которому привязаны 4 доменных имени. Интернет приходит на роутер (белый IP) который все входящие по белому IP запросы передает на сервер в локальной сети со статическим IP 192.168.0.50, который ему выдает роутер по имени машины. В качестве сервера используется компьютер с 4х ядерным процессором AMD, жестким диском на 1тб и скоростью чтения и записи 6мб/с и оперативной памятью 8гб
Основные задачи: 1) Установить ubuntu server 14.04 (это не нуждается в описании) 2) Установить SSH сервер работающий через ключ доступа ssh (поставить сервер не проблема, а вот настроить сервер под работу с ключами я не знаю как) 3) Установить и настроить LAMP, FTP, MAIL сервера 4) Установить систему управления сервером через веб морду с удаленного компьютера
Казалось бы задачи вполне себе тривиальные, но есть пара но: Необходимо сделать так, чтобы пользователь подключаясь через FTP попадал в папку с одним из виртуальных хостов привязанных к этому пользователю. Желательно, чтобы можно было делать отдельные настройки PHP для каждого виртуального хоста. Для каждого виртуального хоста необходимо обеспечить работу своего mail сервера с доменным именем этого хоста. Каждому хосту должна создаваться база данных с именем хоста. У пользователя владельца этой базы должны быть полные права (кроме удаления базы) на работу с этой базой, но при этом не должно быть прав на другие базы данных. Соответственно стает вопрос как организовать подобную работу. В свое время я делал просто, создавал пользователей в системе LINUX а виртуальные хосту помещал в их домашние каталоги. Ставил FTP сервер, настраивал подключение через пользователей linux и запирал пользователей в своем домашнем каталоге, но этот способ по моему далек от совершенства, да и сейчас потерял актуальность, так как при размещении виртуального хоста в домашнем каталоге, сервер попросту возвращает ошибку что нет доступа, причем добавление пользователя в группу www-data или добавление пользователя www-data в группу user не приносят результатов. Сейчас точно не помню что я делал но помогло выставление прав 777 на домашний каталог пользователя, добавления пользователя в группу www-data и какое-то шаманство с конфигами виртуального хоста. После этих манипуляций сервер вроде как стал доступным но права 777 на все файлы сильно смущают, а если ставить другие права, то файл становится недоступным. Кроме этого появилась проблема с ftp сервером (по моему vsftpd), если мы запиарем пользователя в его домашнем каталоге, то к серверу становится невозможно подключиться, но как только мы разрешаем запирать пользователя в домашнем каталоге, то проблема сразу отпадает, вот только подключившись через ftp таким образом он получает полный доступ к всему серверу как минимум на закачку файлов.
В общем выслушаю ваши мнения, советы и почитаю предложенные вами мануалы. Еще раз прошу, перед тем как кидать статью, убедитесь что она актуальна, так как статей я прочитал много но очень мало что из этого реально работает так как описано в статье в связи с тем, что изменения в программных продуктах и безопасности линукс сильно поменялись за эти годы.
Кроме этого выслушаю в подробностях как нормально сделать работу сервера через доменные имена, а то я уже раз ошибся, и не указал адрес у провайдера список доменов привязанных к IP адресу в связи с чем мой IP занесли в черный список почтовые сервера. Сейчас вот как раз буду менять у провайдера белый IP на новый. В общем расскажите что еще надо сделать чтобы все сервисы нормально работали.