Возможно вы искали: 'Global Operations'

May 15 2025 18:45:06
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Настройка apache 1.3.X для массового виртуального вебхостинга. (apache vhost virtual web)

Настройка apache 1.3.X для массового виртуального вебхостинга. (apache vhost virtual web)

Ключевые слова: apache, vhost, virtual, web, (найти похожие документы)

From: Шетухин Андрей Владимирович <http://stellar.df.ru.>
Date: Mon, 16 Dec 2007 14:31:37 +0000 (UTC)
Subject: Настройка apache 1.3.X для массового виртуального вебхостинга.

Оригинал: http://reki.ru/massvirthosting.html

Теория

Для создания полноценного сервера вебхостинга необходимо выполнить как
минимум следующие условия:

1) Безопасность.
2) Расширяемость.
3) Легкость в администрировании.
4) Простота в использовании клиентами.


Соответственно план действий будет следующим:

I. Настройка системы аутентификации пользователей.
II. Создание необходимой файловой структуры и установка прав доступа.
III. Установка квот для пользователей.
IV. Сборка и настройка http сервера. Сборка и настройка ftp сервера.
V. Запуск и тестирование системы.


I. Минимальный аудит безопасности системы.

Отключаем возможность просмотра других процессов для всех, кроме рута.
В файл /etc/sysctl.conf вставляем строчки:

security.bsd.see_other_uids=0 # Для FreeBSD 5.X
kern.ps_showallprocs=0 # Для FreeBSD 4.X


Создаем класс russianwww в /etc/login.conf и прописываем лимиты и
переменные окружения для русификации.
Читаем hier(7). На разных OS он выглядит по-разному (что естественно),
однако в большинстве случаев по поводу каталога /home (/usr/home)
написано, что именно здесь должны располагаться домашние каталоги
пользователей. Не в /var/www, как это сделано в RedHat, и не в /www,
/usr/local/www, как это делается во FreeBSD/OpenBSD.
Для упрощения администрирования устанавливаем пакет pam_pgsql (в нем
тоже есть ошибки, но они устраняются патчем). Все пароли пользователей
будут храниться с базе. Тип криптования пароля может быть
произвольным, главное - избежать хранения его в открытом виде.

cd /usr/ports/security/pam-pgsql
make install


Из-за гомерического количества критических ошибок заменяем sendmail на
qmail. Это - один из немногих, если не единственный случай, когда
оправданно использование qmail.
Устанавливаем права на каталоги. Единого правила здесь нет, но общий
принцип следующий: пользователь не должен иметь доступа к тому, что он
не будет использовать.

Создаем отдельный раздел и включаем для него поддержку квот. Как это
сделать, описано в системном руководстве.
Cоздаем группу virtwww и вносим пользователя www в эту группу.

pw groupadd virtwww
pw groupmod virtwww -M www


Права на каталог /home должны быть 0711, чтобы нельзя было получить
список файлов/каталогов внутри.
Создаем каталог /home/www с правами доступа 0710 и владельцем
www:virtwww. Пользователи могут войти в каталог, но не могут получить
листинг.

mkdir /home/www
chmod 0710 /home/www
chown www:virtwww /home/www


Монтируем в этот каталог свежесозданный раздел. При монтировании не
забываем про ключ nosuid.
Как только место в разделе закончится, мы создадим еще один каталог
/home/www1 и замонтируем туда дополнительный раздел по той же самой
схеме. А случае upgrade системы достаточно будет перемонтировать
разделы без копирования данных.

Создаем пользователя; например, username c первичной группой virtwww

pw useradd username -g virtwww -d /home/www/username -s /usr/local/bin/bash -L russianwww -m
chmod 0750 /home/www/username
chown username:www /home/www/username


В каталог username может войти только пользователь www (от которого
будет запущен apache) + сам владелец.

Устанавливаем квоту для пользователя.

Создаем структуру домашнего каталога для пользователя.

mkdir -p /home/www/username/public_html/cgi
chmod -R 0750 /home/www/username/public_html/cgi
chown -R username:virtwww /home/www/username/public_html


Здесь владелец может делать что угодно.

Создаем каталог для лог-файлов. Строго говоря, лог-файлы следует
хранить в отдельном разделе, во избежание переполнения /var.

mkdir -p /var/log/apache/www
chmod -R 0711 /var/log/apache/www
chown -R 0:0 /var/log/apache


Создаем каталог для лог-файлов пользователя

mkdir /var/log/apache/www/username
chmod 0700 /var/log/apache/www/username
chown username:virtwww /var/log/apache/www/username


Лог-файлы могут читаться только владельцем. Apache пишет в лог всегда
от рута.

Даем пользователю доступ к лог-файлам

ln -s /var/log/apache/username /home/www/username/logs


Настраиваем ротацию логов. Это можно сделать при помощи newsyslog.conf
(5), либо ротатором логов Apache.


Конфигурируем Apache и ftp сервер.


Установка apache с поддержкой suexec

Как обычно, все приложения устанавливаем из портов.
Для правильной работы suexec необходимо установить следующие
переменные окружения:

setenv WITH_APACHE_SUEXEC yes
setenv APACHE_SUEXEC_DOCROOT /home
setenv APACHE_SUEXEC_LOG /var/log/apache/suexec_log


Устанавливам apache.

cd /usr/ports/www/apache13
make install
make clean


Правим httpd.conf

CustomLog /var/log/apache/access_log combined
ErrorLog /var/log/apache/error_log

AddHandler cgi-script .cgi .pl
AddType text/html .shtml
AddHandler server-parsed .shtml

<Directory /home/*/*/public_html>
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec +ExecCGI
AllowOverride All
</Directory>

<Directory /home/*/*/public_html/cgi>
Options -Indexes
AllowOverride All
</Directory>

NameVirtualHost a.b.c.d:80
<VirtualHost a.b.c.d:80>
ServerName www.mysite.ru
ServerAlias mysite.ru
DocumentRoot /home/www/username/public_html
ScriptAlias /cgi /home/www/username/public_html/cgi
ServerAdmin email@user.ru
ErrorLog /var/log/apache/www/username/error_log
CustomLog /var/log/apache/www/username/error_log combined
User username
Group virtwww
</VirtualHost>


В принципе, вместо прописывания для каждого сервера конфигурации в
httpd.conf можно использовать модуль mod_vhost_alias. Документация для
него доступна на сайте http://httpd.apache.org.


Устанавливаем ftp сервер.


В данный момент одним из самых безопасных сверверов является
pure-ftpd. К тому же, этот ftp сервер имеет возможность создания
виртуальных пользователей. В целях повышения безопасности пароль для
захода пользователя по ftp должен быть отличным от пароля для захода
через ssh.

cd /usr/ports/ftp/pure-ftpd
setenv WITH_PGSQL=1
setenv WITH_PRIVSEP=1
make install


Конфигурируем postgresql для хранения базы паролей.


Запуcкаем шелл psql от суперпользователя PostgreSQL:

psql -U pgsql template1


Создаем пользователя и базу данных для хранения паролей:

Добро пожаловать в psql 7.3.4 - Интерактивный Терминал PostgreSQL.

Наберите: copyright для условий распространения
h для подсказки по SQL командам
? для подсказки по внутренним slash-командам (команда)
g или ";" для завершения и выполнения запроса
q для выхода

template1=# CREATE USER passwdmanager WITH ENCRYPTED PASSWORD 'njExk29sjJH' NOC
REATEDB NOCREATEUSER;
CREATE USER
template1=# CREATE DATABASE passwdmanager WITH ENCODING='KOI8' OWNER=passwdmanager;
CREATE DATABASE
passwdmanager=# c passwdmanager passwdmanager

Вы теперь подсоединены к базе данных passwdmanager как пользователь passwdmanager.

passwdmanager=> CREATE TABLE userinfo (
passwdmanager(> login varchar(16) NOT NULL,
passwdmanager(> systempassword varchar(32) NOT NULL,
passwdmanager(> ftp_uid int NOT NULL CHECK (ftp_uid > 1000),
passwdmanager(> ftp_gid int NOT NULL CHECK (ftp_uid > 1000),
passwdmanager(> ftp_quota_files int NOT NULL,
passwdmanager(> ftp_quota_size int NOT NULL,
passwdmanager(> ftp_home_dir varchar(255) NOT NULL,
passwdmanager(> ftp_ul_ratio int NOT NULL DEFAULT 0,
passwdmanager(> ftp_dl_ratio int NOT NULL DEFAULT 0,
passwdmanager(> ftp_ul_bandwith int NOT NULL DEFAULT 0,
passwdmanager(> ftp_dl_bandwith int NOT NULL DEFAULT 0,
passwdmanager(> ftp_password varchar(32) NOT NULL,
passwdmanager(> CONSTRAINT userinfo_p_key PRIMARY KEY(login)
passwdmanager(> );
NOTICE: CREATE TABLE / PRIMARY KEY создаст неявный индекс 'userinfo_p_key' для таблицы 'userinfo'
CREATE TABLE
passwdmanager=> INSERT INTO userinfo (login, ftp_uid, ftp_gid, ftp_quota_files,
passwdmanager(> ftp_quota_size, ftp_home_dir, ftp_ul_ratio,
passwdmanager(> ftp_dl_ratio, ftp_ul_bandwith, ftp_dl_bandwith,
passwdmanager(> ftp_password)
passwdmanager-> VALUES ('stellar', 1002, 1002, 10000,
passwdmanager(> 1000000, '/home/www/stellar', 0,
passwdmanager(> 0, 0, 0,
passwdmanager(> 'XXXXXXXXXXXXXXXX');
INSERT 298773 1


Настраиваем pureftpd-pgsql.conf

PGSQLServer a.b.c.d
PGSQLPort 5432
PGSQLUser passwdmanager
PGSQLPassword njExk29sjJH
PGSQLDatabase passwdmanager
PGSQLCrypt md5
PGSQLGetPW SELECT ftp_password FROM userinfo WHERE login='L'
PGSQLGetUID SELECT ftp_uid FROM userinfo WHERE login='L'
PGSQLGetGID SELECT ftp_gid FROM userinfo WHERE login='L'
PGSQLGetDir SELECT ftp_home_dir FROM userinfo WHERE login='L'
PGSQLGetQTAFS SELECT ftp_quota_files FROM userinfo WHERE login='L'
PGSQLGetQTASZ SELECT ftp_quota_size FROM userinfo WHERE login='L'
PGSQLGetRatioUL SELECT ftp_ul_ratio FROM users WHERE login='L'
PGSQLGetRatioDL SELECT ftp_dl_ratio FROM users WHERE login='L'
PGSQLGetBandwidthUL SELECT ftp_ul_bandwith FROM users WHERE login='L'
PGSQLGetBandwidthDL SELECT ftp_dl_bandwith FROM users WHERE login='L'


Настраиваем pure-ftpd.conf

PGSQLConfigFile /usr/local/etc/pureftpd-pgsql.conf


Запускаем и тестируем

# /usr/local/sbin/pure-config.pl /usr/local/etc/pure-ftpd.conf
Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15
-lpgsql:/usr/local/etc/pureftpd-pgsql.conf
-L2000:8 -m4 -s -U133:022 -u100 -w -k99 -Z

zedd!stellar:~$ ftp localhost
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 13:53. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
Name (localhost:stellar):
331 User stellar OK. Password required
Password:
230-User stellar has group access to: stellar
230-This server supports FXP transfers
230-OK. Current restricted directory is /
230-0 files used (0%) - authorized: 10000 files
230 0 Kbytes used (0%) - authorized: 1024 Kb
Remote system type is UNIX.
Using binary mode to transfer files.


Заключение.

Разумеется, это не все действия, необходимые для настройки безопасного
массового вебхостинга. И конечно это не единственный метод. Однако
действуя подобно тому, как описано здесь, можно создать простой в
администрации, удобный для клиентов и безопасный вебхостинг.
Остается только добавить, что подобная схема успешно применяется с
2001 года на хостинговых площадках http://www.bizoppstats.com,
http://www.akmosoft.com.


Приложение.
* Скрипт для автоматического заведения пользователей.


© 2004 stellar. При воспроизведении материала поставьте ссылку на http://stellar.df.ru.
782 Прочтений •  [Настройка apache 1.3.X для массового виртуального вебхостинга. (apache vhost virtual web)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Настройка apache 1.3.X для массовог... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка