Мета-пакет LAMP

Аббревиатура LAMP обозначает ряд продуктов свободного программного обеспечения, используемого совместно, чтобы работать с динамическими вебстраницами или серверами:
Linux: операционная система
Apache: веб-сервер
MySQL: менеджмент банка данных или сервер банка данных
Perl, PHP и/или Python: скриптовые языки

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

Возможности применения как сервера:
a) локальный тестовый сервер для веб-дизайнеров без интернетa-связи (смотрите эту главу)
b) частный файловый сервер с интернет-связью
c) частный веб-сервер с обширной интернет-связью
d) коммерческий веб-сервер (не оговаривается в этом руководстве)

Минимальные требования

Минимум 256 МБ РАМ. Меньшее количество памяти вызовет проблемы, так как сервер MySQL нуждается в большом количестве памяти для соответствующей производительности. Без достаточной памяти MySQL выдает следующее сообщение об ошибке: "cannot connect to mysql.sock".

Пакет sidux: комплексный сервер

Пакет sidux комплексный сервер состоит из заранее подготовленной инсталляции через установоку мета-пакетов. Инсталлируются следующие приложения :

apache2
apache2-utils
apache2-mpm-prefork
php5 php5-common
mysql-server
mysql-common
libapache2-mod-php5
php5-mysql
phpmyadmin

Осторожно!

apt-get remove --purge splashy

Стартовая анимация Splashy конфликтует с mysql

Файл конфигурации для Apache находится здесь:/etc/apache2/apache2.conf, и веб-каталог здесь: /var/www

Чтобы проверить, инсталлирован ли php и правильно он работает, создается файл test.php в/var/www с функцией phpinfo () таким образом, как это здесь указано:

mcedit /var/www/test.php

# test.php
<?  phpinfo(); ?>

Для просмотра в броузере:

http://localhost/test.php
or 
http://yourip:80/test.php

Это показывает все конфигурации php и основные установки.

Теперь возможна как корректировка установок , так и установка виртуальных доменов  с помощью конфигурации Apache.

Чтобы проверить инсталляцию, в браузере:

http://youripaddress/apache2-default/

Если инсталляция произошла успешно и правильно, выводится приветственное сообщение .

Каталогом root для apache2 является /var/www, также необходимы следующие действия:

mkdir /home/myself/www
ln -s /home/myself/www /var/www

Затем можно как нормальный пользователь редактировать веб-страницу в пределах $HOME .

Клиенты FTP

SSH рекомендован (сведения в руководстве SSH, sidux совместно с Konqueror поставляет клиента FTP, который также предоставляет возможность загрузки файлов.

Активации защитных протоколов  для веб-сервера

Брандмауер

Лишенный брендмауера, сервер остается совершенно незащищенным. Рекомендованным образом действий является, блокировать все, до тех пор пока это не понадобится и блокировать снова после употребления..

21 (ftp)
22 (SSH)
25 110 (email)
443 (SSL-http or https)
993 (imap ssl)
995 (pop3 ssl)
80 (http)
а также каждый другой использованный порт!

Принципиальная защита данных сервера

По умолчанию сервер Apache, предоставляет клиентам неограниченный доступ (default access) ко всем файлам, к которым может найти путь посредством обычных правил отображения URL.(Это важный и зачастую упускаемый аспект!)

Например:

 1. # cd /; ln -s / public_html
 2. Accessing http://localhost/~root/

Это позволит клиенту осматривать всю файловую систему! Чтобы это обойти, необходимо добавить следующее к конфигурации сервера:

<Directory />
   Каталог Deny,Allow
   Deny from all
</Directory>

Это принципиально запрещает доступ к областям файловой системы. В соответствии с этим должны быть добавлены блоки <Directory> к конфигурации, которые разрешают доступ исключительно к позволенным областям Например:

<Directory /usr/users/*/public_html>
    Каталог Deny,Allow
    Allow from all
</Directory>
<Directory /usr/local/httpd>
    Каталог Deny,Allow
    Allow from all
 </Directory>

Особенное внимание должно уделяться согласованности команд <Location> и <Directory>. Например, команда <Directory/> может препятствовать доступу, команда <Location/>, тем не менее, может этот запрет обойти.

Также нужно избегать экспериментов с командой UserDir; конфигурация ". / " имела бы для root тот же эффект, который демонстрировался в первом примере. Для версии Apache 1.3 или выше, мы настойчиво рекомендуем вставлять следующую строку в файле конфигурации:

UserDir disabled root 

SSL

Выполнения скрипта “apache2-ssl-certificate”

# apache2-ssl-certificate

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

Creating self-signed certificate
replace it with one signed by a certification authority (CA) enter your ServerName at the Common Name prompt. If you want your certificate to expire after x days call this programm
with -days x
-----
Generating a 1024 bit RSA private key
--------
writing new private key to '/etc/apache2/ssl/apache.pem'
--------
You are about to be asked to enter information that will be incorporated into your certificate request.
-----------
What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value,
----------
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company; recommended) []:

Organizational Unit Name (eg, section) []:

server name (eg. ssl.domain.tld; required!!!) []:

Email Address []:

Выполнения скрипта “a2enmod ssl” i.e

 # a2enmod ssl

Он автоматически производит символическую ссылку между mods-available и mods-enabled.

Затем копируют файл '/etc/apache2/sites-available/default' в папку /etc/apache2/sites-available/ и называют его 'ssl':

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Создание символической ссылки на этот новый файл конфигурации, чтобы использовать их

#  ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/                     
(или)
#a2ensite ssl

Если установки базовой конфигурации изменены в /etc/apache2/apache2.conf и основная установка маршрута документа в /etc/apache2/sites-available/default, сервер Apache необходимо перезапустить.

Сервер Apache перезапускается следующей командой:

#/etc/init.d/apache2 restart

Теперь редактируются адреса портов в /etc/apache2/ports.conf. В основной установке слушается на порту 80, а так как инсталлируется с SSL , это должно изменить на порт 443.

 Listen 443

/etc/apache2/sites-available/ssl (или как файл конфигурации ssl назывался) редактируется и порт 80 изменяется на 443.

В том числе 2 строки вставляются в /etc/apache2/apache2.conf :

  SSLEngine On

  SSLCertificateFile /etc/apache2/ssl/apache.pem

Файл SSLCertificateFile /etc/apache2/ssl/apache.pem редактируется и вводится путь для файлов сертификата и ключей сертификата . Например:

Ex:- SSLCertificateFile /etc/apache2/ssl/online.test.net.crt
        SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key

Чтобы выставить ServerSignature на off (откл.), редактируется /etc/apache2/apache2.conf и вставляются 2 строки :

  ServerSignature Off
 ServerTokens ProductOnly

Если желаемы другие типы индексных файлов , следующая строка должна быть в файле /etc/apache2/apache2.conf

 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml

Перезапуск сервера Apache

 /etc/init.d/apache2 restart

Теперь должен быть установлен Sandbox тестового сервера. Этот тестовый сервер НЕ должен связываться с интернетом. C этой целью должен использоваться исключительно компьютер, который должен служить как сервер!

Источники:

http://www.mysql-apache-php.com

http://httpd.apache.org/docs/1.3/misc/security_tips.html

http://www.debianhelp.co.uk/webserver.htm

Content last revised 10/06/2008 0100hrs UTC