Статья: Установка FAMP

Обсуждаем сайт и форум.

Модератор: f0s

Carabas
проходил мимо

Статья: Установка FAMP

Непрочитанное сообщение Carabas » 2012-09-11 19:51:34

Добрый день!

Это очередная :) статья про FAMP.
Хотелось сделать выверенную статью, в которой бы не было неточностей.

Прошу оценить.
Вложения
Установка FAMP.doc
(272.5 КБ) 224 скачивания

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение Alex Keda » 2012-09-11 23:18:12

однако, вложение качать почти никто не будет
текстом публикуйте

тем более на сайте теги те же самые что и в форуме, тока расширенные
Убей их всех! Бог потом рассортирует...

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть1)

Непрочитанное сообщение Carabas » 2012-09-12 9:23:56

Установка FAMP на базе FreeBSD 8.3
(Для тех, кто хочет просто попробовать)

За основу взяты статьи:
"Чертовски хороший LAMP: Пошаговое руководство по установке стека (L)AMP на FreeBSD" (http://www.xakep.ru/57595),
"Установка Apache, MySQL, PHP и phpMyAdmin" (http://www.lissyara.su/?id=2222).

Собственно, FAMP - это web-сервер Apache, система управления базами данных MySQL и язык программирования PHP, установленные на компьютер
под управлением операционной системы FreeBSD. Название образуется из первых букв названия ОС и пакетов. Подобные сборки существуют и под
Windows, и под Linux, и называются, соответственно, WAMP и LAMP.

I. Устанавливаем FreeBSD 8.3

0. Замечания перед установкой:
- здесь описана установка с DVD.
- в данном примере используется диск ad0 и сетевая карта sk0. В вашем случае вместо них может быть что-то другое.
- перед началом установки необходимо иметь следующие данные для настройки сетевой карты:
- имя устанавливаемого компьютера (хоста),
- имя домена устанавливаемого компьютера,
- IP адрес для устанавливаемого компьютера,
- маску IP адреса для устанавливаемого компьютера,
- IP адрес шлюза по умолчанию в сети устанавливаемого компьютера,
- IP адрес сервера DNS.
1. Скачиваем ISO-образ, нарезаем его на болванку, загружаемся.
2. После окончания загрузки на экране должны появиться следующие окна:
- "Country Selection": выбираем "183 Russian Federation";
- "System Console Keymap": выбираем "Russia KOI8-R";
- "FreeBSD/amd64 8.3-RELEASE - sysinstall Main Menu", состоящее из 12 пунктов: выбираем "Express";
- "FDISK Partition Editor": Нажать <A>(использовать весь диск), нажать <Q>(выход);
- "Install Boot Manager for drive ad0": нажать <Enter> (пункт меню "Standart");
- "FreeBSD Disklabel Editor": нажать <A>(автоматическое разбиение),нажать <Q>(выход);
- "Choose Distribution": отмечаем пробелом "5 Kern-Developer"(для rkhunter на базе lsof нужны исходники ядра);
- "FreeBSD Documentation Installation Menu": отмечаем пробелом "ru" и нажимаем "OK": <TAB>,<Enter>;
- "User Confirmation Requested": (коллекция портов) нажать <Enter>;
- "Choose Distribution": выбрать "X Exit";
- "Choose Installation Media": выбрать "1 CD/DVD" (выбран по умолчанию);
- "User Confirmation Requested": еще раз подумать про содержимое диска и нажать <Enter>;
3. После этого начинается процесс установки системы, по окончании которого (если процесс прошел без ошибок)...
4. ... на экран будут выведены окна:
- "User Confirmation Requested": выбрать "Yes";
- "FreeBSD Configuration Menu":
- выбрать "Packages", выбрать "Security", отметить sudo-1.8.4_1, нажать "OK", нажать
"Install", нажать "OK" - после установки пакета возвращаемся в окно "FreeBSD Configuration Menu";
- выбрать "Root Password", в ответ на предложение ввести пароль и подтверждение пароля (сам пароль не отображается);
- выбрать "Console":
- выбрать "Font", в окне "System Console Font" выбрать "IBM 866";
- выбрать "Keymap", в окне "System Console Keymap" выбрать "Russia KOI8-R";
- выбрать "Repeat", в окне "System Console Keyboard Repeat Rate" выбрать "Fast";
- выбрать "Screenmap", в окне "System Console Screenmap" выбрать "KOI8-R to IBM866";
- выбрать "Ttys", в окне "System Console Terminal Type" выбрать "KOI8-R";
- выбрать "Exit";
- выбрать "Time Zone", в окне "Select local or UTC (Greenwich Mean Time) clock" выбрать "NO" (выбран по умолчанию), в окне "Time Zone
Selector" выбрать "8 Europe", в окне "Countries in Europe" выбрать "39 Russian Federation", в окне "Russian Federation Time Zones" выбрать
"2 Moscow+00 - west Russia", в окне "Confirmation" выбрать "Yes";
- выбрать "Networking", в окне "Network Services Menu" выбрать "Interfaces", в окне "Network interface information required" выбрать сетевую
карту, через которую будет работать компьютер (возможны еще два варианта: первый, когда в списке не будет вашей сетевой платы - в
этом случае начинаются "танцы с бубном", которые в данной статье не описываются; второй вариант, когда у компьютера обнаружено
несколько сетевых плат - в этом случае нужно выбрать ту, через которую вы планируете работать). Итак, выбираем "sk0", в окне "User
Confirmation Request" (про IPV6) выбираем "No" (выбран по умолчанию), в следующем окне "User Confirmation Request" (про DHCP)
выбираем "No", в окне "Network Configuration" вводим:
- поле "Host" - имя хоста;
- поле "Domain" - имя домена;
- поле "IPv4 Gateway" - шлюз по умолчанию;
- поле "Name Server" - адрес DNS сервера;
- поле "IPv4 address" - IP адрес компьютера;
- поле "Netmask" - сетевая маска;
- поле "Extra options to ifconfig (usually empty)" - лучше оставить пустым, если точно неизвестно, что сюда вводить. Нажимаем "OK", в окне "User
Confirmation Request" выбираем "Yes" и попадаем в окно "Network Services Menu";
- выбираем "Mail", в окне "Mail Transfer Agent Selection" выбираем "None" и нажимаем "Ok";
- выбираем "Ntpdate", в окне "NTPDATE Server Selection" выбираем "Worldwide" и нажимаем "Ok";
- выбираем пробелом "sshd"
- нажимаем "Ok" и попадаем обратно в окно "FreeBSD Configuration Menu";
- выбираем "X Exit" и попадаем в окно "FreeBSD/amd64 8.3-RELEASE - sysinstall Main Menu";
- выбираем "X Exit Install", в меню "User Confirmation Requested" выбираем "Yes", вытаскиваем компакт-диск из привода и в окне "Message"
нажимаем "OK".

5. Система уходит на перезагрузку. После перезагрузки система останавливается на запросе логина.

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть 2)

Непрочитанное сообщение Carabas » 2012-09-12 9:37:58

II. Настройка после установки

0. Замечания перед настройкой:
- имя пользователя test замените на то, которое вам больше нравится;
- вводимые пароли на экране не отображаются (даже звёздочек не будет);
- считаем, что устанавливающий сумеет справиться с текстовым редактором ee;
- у вас под руками должен быть адрес электронной почты, куда будут отсылаться сообщения rthunter-ом;
- считаем, что компьютер подключен к сети, которая имеет прямое подключение к Интернету,
- в приглашении командного интерпретатора у пользователя root перед знаком решетки отображается имя компьютера. В моем случае это
будет "host", в вашем - имя вашего компьютера;
- для удобства ввода команд настройки нужно использовать следующие полезные функции командного интерпретатора:
- история команд: можно вызвать предыдущую команду нажатием клавиши "стрелка вверх", отредактировать ее и нажать <Enter> для выполнения;
- автодополнение: если при наборе команды, имени файла или пути к файлу, не набрав это имя до конца нажать <TAB>,то система попробует
сама дополнить имя. Если совпадающее имя одно, то оно будет дополнено до конца, если их несколько, то ничего не произойдет до тех пор,
пока введенные введенная строка не станет соответствовать только одному имени файла или каталога. Попробуйте, например, в командной
строке интерпретатора набрать sh и нажать <TAB> - курсор останется на месте, потому что в системе есть несколько файлов, начинающихся
с "sh". Но если вы добавите символ "u" и снова нажмете <TAB>, то система сразу дополнит имя до полного shutdown. Эту функцию удобно
использовать для ускорения ввода и проверки наличия файла или правильности набора пути к файлу.
- неплохо было бы иметь под руками компьютер, подключенный к той же сети, что и устанавливаемый вами и имеющий программу SSH-клиента
(например, PuTTY). Это позволит вам: во-первых, привыкнуть работать не от имени учетной записи root, а во-вторых, позволит не вводить команды,
приведенные в этом тексте руками, а копировать через буфер обмена,
- начинаем с конца 1-й главы, т.е. с загрузки установленной системы.

1. По окончании загрузки вводим имя пользователя root и пароль и получаем доступ к командному интерпретатору (времена входов в систему будут отличаться от указанных ниже):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

Before seeking technical support, please use the following resources:

o Security advisories and updated errata information for all releases are
at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
for your release first as it's updated frequently.

o The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
along with the mailing lists, can be searched by going to
http://www.FreeBSD.org/search/. If the doc distribution has
been installed, they're also available formatted in /usr/share/doc.

If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the questions@FreeBSD.org mailing list. If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
manual page. If you are not familiar with manual pages, type `man man'.

You may also use sysinstall(8) to re-enter the installation and
configuration utility. Edit /etc/motd to change this login announcement.

host#

2. Отрежем лишнее из /etc/motd
host# ee /etc/motd <Enter>
Переместим курсор на строку номер 4 (сверху) и будем нажимать <Ctrl>+<K>, пока не будут стерты все нижние строки. Затем <ESC>,<A>,<A> и получаем на экране результирующий вывод редактора ee
"/etc/motd" 4 lines, 85 characters

3. Проверяем доступность сети:
host# ping -c 5 http://www.ru
Если получаем вывод наподобие приведенного ниже (ttl в предпоследнем столбце и время в последнем столбце и в последней строке будут отличаться), то сеть настроена правильно:
PING http://www.ru (194.87.0.50): 56 data bytes
64 bytes from 194.87.0.50: icmp_seq=0 ttl=47 time=4.133 ms
64 bytes from 194.87.0.50: icmp_seq=1 ttl=47 time=4.612 ms
64 bytes from 194.87.0.50: icmp_seq=2 ttl=47 time=4.285 ms
64 bytes from 194.87.0.50: icmp_seq=3 ttl=47 time=4.743 ms
64 bytes from 194.87.0.50: icmp_seq=4 ttl=47 time=3.992 ms

--- http://www.ru ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.992/4.353/4.743/0.284 ms
host#

4. Создадим непривилегированного пользователя, учетную запись которого мы будем использовать для входа на сервер через SSH. Для этого воспользуемся командой adduser:
host# adduser <Enter>
Username: test <Enter>
Full name: <Enter>
Uid (Leave empty for default): <Enter>
Login group [test]: <Enter>
Login group is test. Invite test into other groups? []:<Enter>
Login class [default]: <Enter>
Shell (sh csh tcsh bash rbash nologin) [sh]: tcsh <Enter>
Home directory [/home/test]: <Enter>
Home directory permissions (Leave empty for default): <Enter>
Use password-based authentication? [yes]: <Enter>
Use an empty password? (yes/no) [no]: <Enter>
Use a random password? (yes/no) [no]: <Enter>
Enter password: <ЗДЕСЬ ВЫ ДОЛЖНЫ ВВЕСТИ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ test> <Enter>
Enter password again: <ЗДЕСЬ ВЫ ДОЛЖНЫ ЕЩЕ РАЗ ВВЕСТИ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ test> <Enter>
Lock out the account after creation? [no]: <Enter>
Username : test
Password : *****
Full Name :
Uid : 1001
Class :
Groups : test
Home : /home/test
Home Mode :
Shell : /bin/tcsh
Locked : no
OK? (yes/no): yes <Enter>
adduser: INFO: Successfully added (test) to the user database.
Add another user? (yes/no): no <Enter>
Goodbye!
host#

5. Чтобы пользователь смог получать права root, добавим его в файл /usr/local/etc/sudoers (не будем заморачиваться с точным определением
необходимых прав - сделаем права как у пользователя root):
host# echo 'test ALL=(ALL) ALL' >> /usr/local/etc/sudoers <Enter>

6. и тут же проверим что настройка пользователя выполнена правильно:
- переключимся на 1-ю виртуальную консоль <Alt>+<F2> (виртуальных консолей по умолчанию 8, нумерация идет с 0)
- введем логин пользователя и пароль:
FreeBSD/amd64 (host) (ttyv1)

login: test <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

>
- попробуем получить права пользователя root:
> sudo -s <Enter>

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password:
текст перед запросом пароля выводится только при первом запуске sudo -s. Вводим пароль пользователя test (не root!) и получаем
командную строку с правами суперпользователя.
host#
- если все действия выполнились без ошибок, то выходим из режима суперпользователя
host# exit <Enter>
exit
>
- и проверяем, пускает ли нас SSH. Шестнадцатиричные числа во второй строке в вашем случае будут отличаться.
> ssh 127.0.0.1 <Enter>
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is 7f:fa:94:c3:00:27:56:51:0d:51:d4:de:18:8d:7c:e2.
Are you sure you want to continue connecting (yes/no)? yes <Enter>
Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Last login: Sun Aug 19 00:18:25 2012
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

>
- и тут же проверяем, что через SSH у нас тоже получится получить права root:
> sudo -s <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
host#
Если все действия выполнились без ошибок, то выходим из режима суперпользователя:
host# exit <Enter>
exit
>
- выходим из SSH:
> exit <Enter>
logout
Connection to 127.0.0.1 closed.
- Выходим из системы на 1-й виртуальной консоли:
> exit <Enter>
logout

FreeBSD/amd64 (host.) (ttyv1)

login:
- и возвращаемся на нулевую консоль, нажав <Alt>+<F1>.

7. Теперь можно подключиться к устанавливаемому компьютеру с другого и продолжить установку (Если другого компьютера нет, то можно этот пункт
пропустить). Для этого лучше выйти из нулевой консоли (чтобы не оставлять открытую командную строку под правами root):
host# exit <Enter>
logout

FreeBSD/amd64 (host.) (ttyv0)

login:
и подключиться через сеть с использованием SSH-клиента. Подключение должно осуществляться под именем созданного вами в п.4 пользователя,
а не под именем root. После подключения, выполнив в окне терминала команду sudo -s, вы получите права root и сможете продолжить настройку
системы:
login: test <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

> sudo -s <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
host#
Все дальнейшие команды вводятся в окне SSH-клиента.

8. Исправим файл /etc/fstab так, чтобы никто не смог запускать файлы, расположенные на разделах /tmp и /var. Для этого добавим флаги «noexec»
в поле Options каждого из этих разделов.
host# ee /etc/fstab <Enter>
Файл имеет вид:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
У вас должен получиться вид:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw,noexec 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw,noexec 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
Выход из редактора ee с сохранением изменений <ESC><A><A>
Результирующий вывод редактора ee (цифры могут отличаться)
"/etc/fstab" 7 lines, 253 characters

9. Установим более жесткие ограничения на доступ к системным файлам:
host# chmod 0600 /etc/syslog.conf <Enter>
host# chmod 0600 /etc/rc.conf <Enter>
host# chmod 0600 /etc/newsyslog.conf <Enter>
host# chmod 0600 /etc/login.conf <Enter>

10. Также сразу добавим несколько важных для нас опций:
Отключаем переадресацию пакетов и регистрируем все попытки переадресации
host# echo 'icmp_drop_redirect="YES"' >> /etc/rc.conf <Enter>
host# echo 'icmp_log_redirect="YES"' >> /etc/rc.conf <Enter>
Запрещаем ответы на широковещательные ping-запросы
host# echo 'icmp_bmcastecho="NO"' >> /etc/rc.conf <Enter>
Очищаем каталог /tmp при каждой загрузке
host# echo 'clear_tmp_enable="YES"' >> /etc/rc.conf <Enter>
Запрещаем обновление файла /etc/motd при каждой загрузке
host# echo 'update_motd="NO"' >> /etc/rc.conf <Enter>
Не принимаем пакеты с одновременно установленными флагами SYN и FIN
host# echo 'tcp_drop_synfin="YES"' >> /etc/rc.conf <Enter>
Увеличиваем число отображаемых строк на экране
host# echo 'allscreens_flags="80x50"' >> /etc/rc.conf <Enter>
Включаем межсетевой экран IPFW
host# echo 'firewall_enable="YES"' >> /etc/rc.conf <Enter>
host# echo 'firewall_script="/etc/ipfw.conf"' >> /etc/rc.conf <Enter>
host# echo 'firewall_logging="YES"' >> /etc/rc.conf <Enter>

11. Создадим скрипт для запуска межсетевого экрана
host# touch /etc/ipfw.conf <Enter>
host# chmod 0700 /etc/ipfw.conf <Enter>
Добавим необходимые правила.
host# echo '#\!/bin/sh' >> /etc/ipfw.conf <Enter>
Сброс всех правил
host# echo 'ipfw -f flush' >> /etc/ipfw.conf <Enter>
Включить сохранение состояния соединения
host# echo 'ipfw add check-state' >> /etc/ipfw.conf <Enter>
Разрешим весь трафик через localhost
host# echo 'ipfw add allow all from any to 127.0.0.1 via lo0' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow all from 127.0.0.1 to any via lo0' >> /etc/ipfw.conf <Enter>
Разрешаем исходящий PING
host# echo 'ipfw add allow icmp from me to any icmptypes 8' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow icmp from any to me icmptypes 0' >> /etc/ipfw.conf <Enter>
Разрешаем входящий PING
host# echo 'ipfw add allow icmp from any to me icmptypes 8' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow icmp from me to any icmptypes 0' >> /etc/ipfw.conf <Enter>
Разрешаем обращения к DNS (перед cut и после resolv.conf - обратные апострофы!)
host# echo 'ipfw add allow udp from me to `cut -f 2 /etc/resolv.conf` 53' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow udp from `cut -f 2 /etc/resolv.conf` 53 to me' >> /etc/ipfw.conf <Enter>
Разрешаем обращения к серверам NTP
host# echo 'ipfw add allow udp from me to any 123' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow udp from any 123 to me' >> /etc/ipfw.conf <Enter>
Разрешаем входящие соединения SSH, HTTP и HTTPS
host# echo 'ipfw add allow tcp from any to me 22 setup keep-state' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow tcp from any to me 80 setup keep-state' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow tcp from any to me 443 setup keep-state' >> /etc/ipfw.conf <Enter>
Добавляем правило для Webmin (управление компьютером через web-ориентированный интерфейс):
host# echo 'ipfw add allow tcp from any to me 10000 setup keep-state' >> /etc/ipfw.conf <Enter>
Разрешаем исходящие TCP соединения
host# echo 'ipfw add allow tcp from me to any setup keep-state' >> /etc/ipfw.conf <Enter>
Запретить все остальные пакеты и писать в журнал
host# echo 'ipfw add deny log all from any to any via any' >> /etc/ipfw.conf <Enter>

12. Включаем автоматическую загрузку межсетевого экрана
host# echo 'ipfw_load="YES"' >> /boot/loader.conf <Enter>

13. Перезагружаем систему и проверяем, что правила загрузились
host# shutdown -r now <Enter>
Входим в систему как пользователь root (если подключаемся через SSH-клиент, то под именем созданного в п.4 пользователя, а потом выполняем sudo -s):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

host# ipfw list <Enter>
00100 check-state
00200 allow ip from any to 127.0.0.1 via lo0
00300 allow ip from 127.0.0.1 to any via lo0
00400 allow icmp from me to any icmptypes 8
00500 allow icmp from any to me icmptypes 0
00600 allow icmp from any to me icmptypes 8
00700 allow icmp from me to any icmptypes 0
00800 allow udp from me to 10.1.16.1 dst-port 53
00900 allow udp from 10.1.16.1 53 to me
01000 allow udp from me to any dst-port 123
01100 allow udp from any 123 to me
01200 allow tcp from any to me dst-port 22 setup keep-state
01300 allow tcp from any to me dst-port 80 setup keep-state
01400 allow tcp from any to me dst-port 443 setup keep-state
01500 allow tcp from any to me dst-port 10000 setup keep-state
01600 allow tcp from me to any setup keep-state
01700 deny log ip from any to any
65535 deny ip from any to any
helpdesk#

14. Добавим несколько полезных строк в файл /etc/sysctl.conf:
Не отвечать на попытки подключения к закрытым портам (спасет от некоторых видов DoS-атак и затруднит сканирование портов)
host# echo 'net.inet.tcp.blackhole=2' >> /etc/sysctl.conf <Enter>
host# echo 'net.inet.udp.blackhole=1' >> /etc/sysctl.conf <Enter>
Защитим SSH-сервер от брутфорс-атак:
host# echo "MaxStartups 5:50:10" >> /etc/ssh/sshd_config <Enter>
Если вы подключены через SSH-клиент, то лучше перегрузить устанавливаемый компьютер командой host#
host# shutdown -r now <Enter>
и потом подключиться к нему заново. Если вы работаете на консоли, то:
host# /etc/rc.d/sshd restart <Enter>
Теперь SSH-сервер будет отбрасывать 50% новых подключений в случае, если будет произведено пять неправильных регистраций. Когда их станет десять, сервер перестанет отвечать вовсе.

15. Чтобы отключить поддержку IPV6 в устанавливаемых пакетах, добавим строку в файл /etc/make.conf
host# echo 'WITHOUT_IPV6=yes' >> /etc/make.conf <Enter>

16. Получим самый свежий срез портов, не содержащий устаревшего дырявого ПО
host# portsnap fetch extract <Enter>
...
<очень длинный вывод>
...
Building new INDEX files... done.
host#

17. Обновляем базовую систему:
host# freebsd-update fetch <Enter>
...
<опять длинный вывод>
...
--More--(byte 422) <БУДЕТ НЕСКОЛЬКО ПОДОБНЫХ СТРОК: НАЖАТЬ ПРОБЕЛ НЕСКОЛЬКО РАЗ>
...
/var/db/mergemaster.mtree
host# freebsd-update install <Enter>
Installing updates... done.
Перезагружаем систему
host# shutdown -r now <Enter>

18. После того как порты и система будут обновлены, установим в систему инструмент rkhunter, нужный для отлова руткитов, которые могут быть установлены в систему в будущем.
Входим в систему как пользователь root (если подключаемся через SSH-клиент, то под именем созданного в п.4 пользователя, а потом выполняем sudo -s):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

host# cd /usr/ports/security/rkhunter <Enter>
host# make install clean <Enter>
Во всех окнах выбора опций нажимаем "OK".
После установки обновим хэш директорий:
host# rehash <Enter>
Отредактируем в редакторе ee конфигурационный файл /usr/local/etc/rkhunter.conf так, чтобы опция MAIL-ON-WARNING содержала email, на который следует слать сообщения об обнаруженных аномалиях.
Заставим инструмент проверить себя на обновления:
host# rkhunter --update <Enter>
После этого создадим снимок системных файлов, который будет использоваться в качестве эталона во время поиска руткитов:
host# rkhunter --propupd <Enter>
Далее добавим в файл /etc/periodic.conf две строки, благодаря которым проверки обновлений и системы будут происходить каждый день:
host# echo 'daily_rkhunter_update_enable="YES"' >> /etc/periodic.conf <Enter>
host# echo 'daily_rkhunter_check_enable="YES"' >> /etc/periodic.conf <Enter>
Все, теперь все сообщения о подозрительной системной активности будут помещаться в лог /var/log/rkhunter.log и отсылаться на указанный в конфигурационном файле email.

19. Далее настроим cron на синхронизацию системных часов каждые два часа (пробелы вставлены с строку, чтобы она была отформатирована так же, как файл /etc/crontab):
host# echo "0 2 * * * root /usr/sbin/ntpdate -bs pool.ntp.org" >> /etc/crontab <Enter>
и перезапустим cron
host# /etc/rc.d/cron restart <Enter>

20. устанавливаем файловый менеджер mc:
host# cd /usr/ports/misc/mc <Enter>
host# make install clean <Enter>
Во всех окнах настройки опций нажимаем "OK"
После установки обновим хэш директорий:
host# rehash <Enter>

Система (F) готова к установке, собственно, AMP.

ЗЫ: Для повышения надежности и производительности неплохо было бы:
- пересобрать ядро;
- настроить ротацию логов;
- сделать программный RAID-1 на базе GEOM (понадобится второй жесткий диск);
- сконфигурировать отказоустойчивую сеть на базе LAGG (понадобится вторая сетевая карта).
Но, рассмотрение данных настроек выходит за границы статьи цель которой - подробное описание установки FAMP для человека не знакомого с UNIX.

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть 3)

Непрочитанное сообщение Carabas » 2012-09-12 9:42:00

III. Установка AMP

0. Замечания перед настройкой:
- необходимо определить почтовый адрес администратора сервера Apache;
- теперь для перемещения по файловой системе FreeBSD и просмотра/редактирования файлов можно использовать файловый менеджер mc, который
напоминает Far (а некоторым даже NC или VC :)). Если структура файловой системы пока что вам непонятна, то можно изменять текущий каталог, не
выходя из mc, командой cd <ИМЯ КАТАЛОГА>, а просмотр/редактирование производить его (mc) встроенным редактором. В mc, чтобы при наборе
команды вставить в нее имя выделенного файла нужно нажать последовательно <ESC>, <Enter>; чтобы вызвать последнюю выполненную команду -
<ESC>, <P>; чтобы посмотреть на экран "за панелями" - <Ctrl>+<O>. Обратите внимание, что в mc не работает автодополнение!
- для редактирования и вставки строк в конфигурационные файлы в этом описании применяются разные способы не потому, что только так и нужно, а
чтобы показать, что существует несколько альтернативных способов,
- постепенно детализация изложения снижается в надежде, что устанавливающий систему что-то усваивает в процессе установки :)
- для этой части потребуется компьютер с браузером (графическим :)), подключенный к той же сети, что и настраиваемый. Кроме этого на нем
желательно иметь SSH-клиент (например, PuTTY). Это позволит вам: во-первых, привыкнуть работать не от имени учетной записи root, а во-вторых,
позволит не вводить команды, приведенные в этом тексте руками, а копировать через буфер обмена,
- считается, что вы уже залогинились в систему тем или иным способом.

1. Установка Apache. Идем в порты и устанавливаем последнюю версию:
host# cd /usr/ports/www/apache22 <Enter>
host# make install clean <Enter>
На экране появится окно конфигуратора, с помощью которого можно выбрать установку опциональных компонентов сервера. Что-либо менять смысла нет - выбираем "OK". После окончания сборки и установки не забудьте добавить сервер в автозапуск:
host# echo 'apache22_enable="YES"' >> /etc/rc.conf <Enter>
host# echo 'apache22ssl_enable="YES"' >> /etc/rc.conf <Enter>
Также в конфигурационный файл следует добавить инструкцию для загрузки модуля accf_http, который будет буферизировать HTTP-соединения, что разгрузит сервер и поможет в борьбе с SYN-флудом:
host# echo 'accf_http_ready="YES"' >> /etc/rc.conf <Enter>
host# kldload accf_http <Enter>
Сконфигурируем автоматическую загрузку модуля:
host# echo 'accf_http_load="YES"' >> /boot/loader.conf <Enter>

2. Далее установим интерпретатор PHP пятой версии:
host# cd /usr/ports/lang/php5 <Enter>
host# make install clean <Enter>
Необходимо убедиться, что опция «APACHE Build Apache module» выбрана.

3. Устанавливаем расширения к PHP:
host# cd /usr/ports/lang/php5-extensions <Enter>
host# make install clean <Enter>
Важно, в первом окне конфигурирования PHP отметить [x] пункт «MySQL database support», принуждающий систему портов к установке модуля PHP для работы с MySQL. Без него ничего не заработает. Во втором и третьем окнах - просто выбираем "OK".

4. Правим конфигурационный файл Apache (он находится в /usr/local/etc/apache22/httpd.conf): запускаем mc:
host# mc <Enter>
переходим с нужный каталог командой
host# cd /usr/local/etc/apache22 <Enter>
выбираем стрелками файл httpd.conf и нажимаем <F4>.
Основные функциональные клавиши в редакторе mc:
<F2> - сохранить изменения
<F3> - отметить начало и конец выделенного фрагмента (для копирования/перемещения/удаления)
<F4> - заменить
<F5> - копировать выделенный фрагмент
<F6> - переместить выделенный фрагмент
<F7> - поиск
<F8> - удалить выделенный фрагмент
<F9> - меню настроек mc
<F10> - выход из редактора
<Ctrl+O> - свернуть файловые панели (чтобы посмотреть на вывод команд)
Изменяем в файле httpd.conf следующее:
- ищем строку ServerName, раскомментируем её и вписываем туда имя сервера. В данном примере "host":
ServerName host
- после строк LoadModule добавляем следующие две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
- находим опцию ServerAdmin и прописываем в качестве ее значения свой почтовый адрес:
ServerAdmin <АДРЕС ПОЧТЫ АДМИНИСТРАТОРА СЕРВЕРА>
- меняем следующие строки:
<ifModule dir_module>
DirectoryIndex index.html
</ifModule>
На эти:
<ifModule dir_module>
DirectoryIndex index.php index.html
</ifModule>
После редактирования сохраняем изменения, нажав <F2> и <Enter>, затем выходим из редактора, нажав <F10>.

5. Создаем файл настроек PHP (можно делать, не выходя из mc):
host# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini <Enter>
перейдем в каталог с этим файлом
host# cd /usr/local/etc <Enter>
исправим в файле php.ini во встроенном редакторе mc строку
; date.timezone =
на строку
date.timezone = "Europe/Moscow"
Этого будет достаточно для нормальной работы Apache совместно с PHP. Выходим из редактора mc: <F2>, <Enter>, <F10>.
Запускаем Apache:
host# /usr/local/etc/rc.d/apache22 start <Enter>
Нажав <Ctrl+O> можно посмотреть, что вывела команда на экран, и убедиться, что перезапуск прошел без ошибок. Восстанавливаются панели повторным нажатием <Ctrl+O>

6. Теперь проверка того, что у нас все собрано правильно:
Создаете файл /usr/local/www/apache22/data/index.php с содержимым <?php phpinfo(); ?>:
host# echo '<?php phpinfo(); ?>' >> /usr/local/www/apache22/data/index.php <Enter>
В браузере набираете строку http://<АДРЕС ИЛИ ИМЯ КОМПЬЮТЕРА, КОТОРЫЙ МЫ НАСТРАИВАЕМ>
Если в окне браузера информация о пакете PHP, то все установлено правильно.
Если в окне браузера надпись "It works!", значит правильно установлен только Apache, и проблемы с установкой и настройкой php. Если в окне браузера ошибка - значит проблемы с установкой Apache.
Выходим из mc, нажав <F10>, <Enter>.

7. Теперь можно приступить к установке MySQL. Идем в порт:
host# cd /usr/ports/databases/mysql55-server <Enter>
Запускаем установку со следующим параметром:
host# make WITH_OPENSSL=yes install clean <Enter>
Во всех окнах нажимаем "ОК".
После установки обновим хэш директорий:
host# rehash <Enter>

7. Создадим рудиментарный конфигурационный файл, которого хватит на первое время:
host# ee /etc/my.cnf <Enter>
Вводим строки (сервер будет использовать нестандартный порт и не будет принимать внешние соединения):
[client]
port=29912
[mysqld]
port=29912
bind-address=127.0.0.1
Добавим MySQL в автозагрузку и запустим сервер:
host# echo 'mysql_enable="YES"' >> /etc/rc.conf <Enter>
host# /usr/local/etc/rc.d/mysql-server start <Enter>
Установим пароль на доступ к базе данных:
host# mysqladmin -u root password <ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL > <Enter>
И убедимся, что нас пускают:
host# mysql -u root -p <Enter>
Enter password: <ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL> <Enter>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.27 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit <Enter>
Bye
host#

8. Теперь MySQL должна нормально функционировать, но управлять базами данных вручную не очень удобно, к тому же, для некоторых это будет первый опыт установки MySQL, а с наскоку разобраться с ней не так-то просто. Поэтому установим веб-интерфейс управления MySQL под названием PHPMyAdmin:
host# cd /usr/ports/databases/phpmyadmin <Enter>
host# make install clean <Enter>
В окнах выбора опций ничего не меняем, везде выбираем "OK".

9. Поправим конфигурационный файл PHPMyAdmin, указав пароль на доступ к web-интерфейсу:
host# cd /usr/local/www/phpMyAdmin <Enter>
host# cp config.sample.inc.php config.inc.php <Enter>
host# ee config.inc.php <Enter>
$cfg['blowfish_secret'] = 'ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL (из пункта 7)';
Теперь вновь открываем конфигурационный файл Apache (удобнее - в редакторе mc) и делаем следующее:
- перед секцией <IfModule dir_module> добавляем секцию с описанием каталога phpMyAdmin (Встроенный редактор mc "понимает" вставку нескольких строк через буфер обмена. Чтобы строки при вставке не сползали вправо, необходимо в меню Options\General... редактора mc снять [x] у пункта "Return does autoindent"):
<Directory "/usr/local/www/phpMyAdmin">
Order allow,deny
Allow from all
</Directory>
- В секцию <IfModule alias_module> добавляем следующую строку:
Alias /phpmyadmin "/usr/local/www/phpMyAdmin"
Перезапускаем Apache:
host# /usr/local/etc/rc.d/apache22 restart <Enter>

10. Вводим а адресную строку браузера http://<АДРЕС ИЛИ ИМЯ СЕРВЕРА>/phpmyadmin и попадаем на запрос имени и пароля. Вводим root и пароль администратора MySQL и попадаем на главную страницу.

11. В нижней части экрана видим надпись:

Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены. Для определения причины нажмите здесь.

Начинаем выполнять необходимые действия:
- Создайте необходимые таблицы с помощью скрипта examples/create_tables.sql:
host# cd /usr/local/www/phpMyAdmin/examples <Enter>
host# mysql -u root -p < ./create_tables.sql <Enter>
Enter password: <ВВОДИМ ПАРОЛЬ АДМИНИСТРАТОРА MySQL> <Enter>
host#
- В браузере в phpMyAdmin нажимаем кнопку "Обновить фрейм навигации" (зеленая круглая стрелка под надписью phpMyAdmin). В списке таблиц появилась таблица phpmyadmin.
- Создайте пользователя pma и предоставьте доступ к этим таблицам:
нажмите "Пользователи", на открывшейся странице нажмите "Добавить пользователя" и в открывшемся окне введите имя пользователя "pma", хост
выбираем "Локальный" из выпадающего списка, вводим пароль и подтверждение пароля для пользователя pma. Теперь нажмите кнопку "Добавить
пользователя". Появляется уведомление о добавлении нового пользователя и вы возвращаетесь на страницу "Обзор учетных записей".
В строке с пользователем pma щелкаете на ссылку "Редактирование привилегий". Во всплывающем окне, прокрутив его ниже, в
разделе "Привилегии уровня базы данных" из выпадающего меню "Добавить привилегии на следующую базу" выберите "phpmyadmin" и нажмите "OK".
Откроется страница "Редактирование привилегий: Пользователь 'pma'@'localhost' - База данных phpmyadmin", где в разделе "Привилегии уровня базы
данных", в блоке "Данные", поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите "OK". Вверху окна отобразится
уведомление, что данные были изменены. Выходим из phpMyAdmin, нажав на кнопку с изображением открытой двери (под надписью phpMyAdmin)
- Снова открываем конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php и раскомментируем строки в разделах "User used to manipulate
with storage" и "Storage database and tables". Во всех полях оставляем значения по умолчанию кроме:
$cfg['Servers'][$i]['controlhost'] = 'localhost'
$cfg['Servers'][$i]['controlpass'] = '<ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ pma>'
- защищаем файл config.inc.php - создаем в каталоге /usr/local/www/phpMyAdmin файл .htaccess:
host# cd /usr/local/www/phpMyAdmin <Enter>
host# touch .htaccess <Enter>
открываем на редактирование файл .htaccess (выбираем стрелками и нажимаем <F4>):
вводим следующее содержимое:
Order deny,allow
deny from all
allow from <СПИСОК IP-АДРЕСОВ ИЛИ СЕТЕЙ, РАЗДЕЛЕННЫХ ПРОБЕЛАМИ, С КОТОРЫХ РАЗРЕШАЕТСЯ ДОСТУП К phpMyAdmin>
<Files config.inc.php>
Order deny,allow
deny from all
</Files>
сохраняем <F2>, <Enter> и выходим из редактора <F10>
- И защищаем конфигурационный файл phpMyAdmin от изменений:
host# chmod 640 config.inc.php <Enter>
Всё, настройка закончена: заходим в phpMyAdmin и видим, что предупреждение пропало.

12. HTTPS
Настроим поддержку HTTPS для PHPMyAdmin, чтобы в будущем была возможность безопасного зашифрованного соединения между клиентом и сайтом.
Создадим каталог для собственного центра сертификации
host# mkdir /root/CA <Enter>
Запретим доступ в этот каталог
host# chmod 0600 /root/CA <Enter>
скопируем туда конфигурационный файл SSL
host# cp /etc/ssl/openssl.cnf /root/CA/openssl.cnf <Enter>
Для начала исправим конфигурационный файл OpenSSL (/root/CA/openssl.cnf)
- переходим в нужный каталог
host# cd /root/CA <Enter>
- добавляем в файл openssl.cnf следующие строки:
# Каталог для хранения сертификатов
dir = /root/CA
# Срок действия сертификата (~10 лет)
default_days = 3650

Теперь подготовим структуру каталогов и создадим сертификаты для собственного центра сертификации.
Для генерации сертификатов вы должны быть готовы ввести информацию о стране, области, городе, компании, подразделении и общем имени сертификата (COMMON NAME). Эти данные должны совпадать для сертификата CA и для сертификата Apache.
host# mkdir newcerts <Enter>
host# mkdir private <Enter>
host# echo '00' >> serial <Enter>
host# touch index.txt <Enter>
host# openssl req -new -x509 -days 3650 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -config /root/CA/openssl.cnf <Enter>
Вводим пароль для сертификата CA, затем вводим необходимые для сертификата данные.
Например: страна RU,
регион MSK,
город Moscow,
компания TEST,
подразделение IT,
общее имя HOST.
почтовый адрес MY@EXAMPLE.COM
Проверим, что сертификаты были созданы успешно:
host# ls -l cacert.pem private/cakey.pem <Enter>
Сгенерируем сертификаты для Apache. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# openssl req -new -nodes -out имя_хоста-req.pem -keyout private/имя_хоста-key.pem -config /root/CA/openssl.cnf <Enter>
Вводим необходимые для сертификата данные. Страна, регион и город должны совпадать с данными сертификата CA.
Обратите внимание, что общее имя должно в точности совпадать с доменным именем www-сервера, чтобы браузер посчитал сертификат правильным.
Транспортный пароль для сертификата Apache и дополнительное имя можно не вводить, просто нажав <Enter>
Подпишем сертификат Apache сертификатом нашего CA. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# openssl ca -config /root/CA/openssl.cnf -out имя_хоста-cert.pem -infiles имя_хоста-req.pem <Enter>
Вводим пароль на сертификат CA, подтверждаем операцию подписи: <y>, <Enter>, <y>, <Enter>.
Скопируем сертификат и ключ в каталог Apache. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# cp /root/CA/имя_хоста-cert.pem /usr/local/etc/apache22/server.crt <Enter>
host# cp /root/CA/private/имя_хоста-key.pem /usr/local/etc/apache22/server.key <Enter>
И сразу ограничим доступ к ключу сервера
host# chown www /usr/local/etc/apache22/server.key <Enter>
host# chmod 0600 /usr/local/etc/apache22/server.key <Enter>
Снова открываем конфигурационный файл Apache,
host# ee /usr/local/etc/apache22/httpd.conf <Enter>
находим следующую строку(почти в самом конце) и раскомментируем ее:
# Include etc/apache22/extra/httpd-ssl.conf
Сохраняем файл и выходим.
Вносим следующие изменения в файл /usr/local/etc/apache22/extra/httpd-ssl.conf:
host# ee /usr/local/etc/apache22/extra/httpd-ssl.conf <Enter>
# Имя HTTPS-сервера
ServerName ssl.host.com:443
ServerAdmin <АДРЕС ПОЧТЫ АДМИНИСТРАТОРА БЕЗОПАСНОСТИ>
Перезапускаем Apache:
host# /usr/local/etc/rc.d/apache22 restart <Enter>
Компьютер, на котором запускается браузер должен доверять сертификатам, подписанным нашим CA. Для этого его нужно добавить сертификат нашего CA (/root/CA/cacert.pem) в список доверенных корневых центров сертификации. В Windows - запустив в mmc оснастку "Сертификаты" для "Моей учетной записи пользователя".
В браузере вводим в адресную строку https://<ИМЯ СЕРВЕРА> и видим информацию о PHP.
В браузере вводим в адресную строку https://<ИМЯ СЕРВЕРА>/phpmyadmin и видим стартовую страницу phpMyAdmin.

13. Установим Webmin, web-ориентированный интерфейс для удаленного управления сервером (те, кто предпочитает использовать для администрирования SSH, могут пропустить этот шаг):
host# cd /usr/ports/sysutils/webmin <Enter>
host# make install clean <Enter>
host# echo 'webmin_enable="YES"' >> /etc/rc.conf <Enter>
Далее необходимо запустить конфигуратор Webmin:
host# /usr/local/lib/webmin/setup.sh <Enter>
На вопросы можно отвечать нажатием <Enter>, однако когда дело дойдет до ввода пароля (строка «Login password:»), следует ввести пароль на доступ к Webmin (лучше, если он будет отличаться от остальных паролей). При запросе использовать ли SSL ввести "y":
Use SSL (y/n): y <Enter>
В процессе настройки будет выведено сообщение о том что, что не найден пакет syslog-ng(что естественно: он же у нас не установлен!). Кроме того, 2 раза будет выдано сообщение о том, что не найден pid-файл процесса miniserv (что тоже естественно: ведь мы еще не запускали webmin!).
Далее можно запустить Webmin:
host# /usr/local/etc/rc.d/webmin start <Enter>
и протестировать его работу, введя адрес «https://<АДРЕС ИЛИ ИМЯ СЕРВЕРА>:10000/» в адресную строку браузера (браузер будет "ругаться" на сертификат!), а затем имя admin и пароль на доступ к WebMin.

14. Теперь нужно перезагрузить компьютер
host# shutdown -r now <Enter>
и после перезагрузки проверить, что www-сервер, phpMyAdmin и webmin запускаются автоматически и доступны через браузер.

Все, что теперь нужно сделать - это развернуть сайтовый движок в каталог /usr/local/www/apache22/data (не забыв положить скрипты в /usr/local/www/apache22/cgi-bin).

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение Alex Keda » 2012-09-12 22:41:53

а форматирование - где?
Убей их всех! Бог потом рассортирует...

Carabas
проходил мимо

Re: Статья: Установка FAMP

Непрочитанное сообщение Carabas » 2012-09-12 22:57:52

Форматирование вручную нужно делать, с Вордом автоматом ничего не сделать.
Стало быть времени требует.
А текст уже сейчас кто-то сможет глянуть.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35420
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение Alex Keda » 2012-09-13 23:42:57

мда...
сколько займёт простое форматирвоание - выделение листингов, конфигов, и т.п. тегами? минут пять.
отформатированный текст читается за 2 минуты - можно понять суть, и всё.
неотформатированный - минут за десять.
на сейчас - 37 просмотров.
вы поленились потратить своих пять минут, зато отняли у других 37*8 = 5 часов
--
впрочем, большинство народу не читают неформатированные листинги.
так что вы уменьшили свою аудиторию ровно на количество неотнятого времени =))
как-то так =)

я тоже не читаю неформатированный текст.
если автору лень оформить свой материал - то почему мне должно быть не лень его читать? =)
Убей их всех! Бог потом рассортирует...

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть 1 - отформатировано)

Непрочитанное сообщение Carabas » 2012-09-14 12:40:04

Установка FAMP на базе FreeBSD 8.3
(Для тех, кто хочет просто попробовать)

За основу взяты статьи:
  1. "Чертовски хороший LAMP: Пошаговое руководство по установке стека (L)AMP на FreeBSD" (http://www.xakep.ru/57595),
  2. "Установка Apache, MySQL, PHP и phpMyAdmin" (http://www.lissyara.su/?id=2222).
Собственно, FAMP - это web-сервер Apache, система управления базами данных MySQL и язык программирования PHP, установленные
на компьютер под управлением операционной системы FreeBSD. Название образуется из первых букв названия ОС и пакетов.
Подобные сборки существуют и под Windows, и под Linux, и называются, соответственно, WAMP и LAMP.

I. Устанавливаем FreeBSD 8.3

0. Замечания перед установкой:
  • - здесь описана установка с DVD.
    - в данном примере используется диск ad0 и сетевая карта sk0. В вашем случае вместо них может быть что-то другое.
    - перед началом установки необходимо иметь следующие данные для настройки сетевой карты:
    - имя устанавливаемого компьютера (хоста),
    - имя домена устанавливаемого компьютера,
    - IP адрес для устанавливаемого компьютера,
    - маску IP адреса для устанавливаемого компьютера,
    - IP адрес шлюза по умолчанию в сети устанавливаемого компьютера,
    - IP адрес сервера DNS.
1. Скачиваем ISO-образ, нарезаем его на болванку, загружаемся.

2. После окончания загрузки на экране должны появиться следующие окна:
  • - "Country Selection": выбираем "183 Russian Federation";
    - "System Console Keymap": выбираем "Russia KOI8-R";
    - "FreeBSD/amd64 8.3-RELEASE - sysinstall Main Menu", состоящее из 12 пунктов: выбираем "Express";
    • - "FDISK Partition Editor": Нажать <A>(использовать весь диск), нажать <Q>(выход);
      - "Install Boot Manager for drive ad0": нажать <Enter> (пункт меню "Standart");
      - "FreeBSD Disklabel Editor": нажать <A>(автоматическое разбиение),нажать <Q>(выход);
      - "Choose Distribution": отмечаем пробелом "5 Kern-Developer"(для rkhunter на базе lsof нужны исходники ядра);
      - "FreeBSD Documentation Installation Menu": отмечаем пробелом "ru" и нажимаем "OK": <TAB>,<Enter>;
      - "User Confirmation Requested": (коллекция портов) нажать <Enter>;
      - "Choose Distribution": выбрать "X Exit";
      - "Choose Installation Media": выбрать "1 CD/DVD" (выбран по умолчанию);
      - "User Confirmation Requested": еще раз подумать про содержимое диска и нажать <Enter>;
3. После этого начинается процесс установки системы, по окончании которого (если процесс прошел без ошибок)...

4. ... на экран будут выведены окна:
  • - "User Confirmation Requested": выбрать "Yes";
    - "FreeBSD Configuration Menu":
    • - выбрать "Packages", выбрать "Security", отметить sudo-1.8.4_1, нажать "OK", нажать "Install", нажать "OK" - после установки пакета возвращаемся в окно "FreeBSD Configuration Menu";
      - выбрать "Root Password", в ответ на предложение ввести пароль и подтверждение пароля (сам пароль не отображается);
      - выбрать "Console":
      • - выбрать "Font", в окне "System Console Font" выбрать "IBM 866";
        - выбрать "Keymap", в окне "System Console Keymap" выбрать "Russia KOI8-R";
        - выбрать "Repeat", в окне "System Console Keyboard Repeat Rate" выбрать "Fast";
        - выбрать "Screenmap", в окне "System Console Screenmap" выбрать "KOI8-R to IBM866";
        - выбрать "Ttys", в окне "System Console Terminal Type" выбрать "KOI8-R";
        - выбрать "Exit";
      - выбрать "Time Zone", в окне "Select local or UTC (Greenwich Mean Time) clock" выбрать "NO" (выбран по умолчанию), в окне "Time Zone Selector" выбрать "8 Europe", в окне "Countries in Europe" выбрать "39 Russian Federation", в окне "Russian Federation Time Zones" выбрать "2 Moscow+00 - west Russia", в окне "Confirmation" выбрать "Yes";
      - выбрать "Networking", в окне "Network Services Menu" выбрать "Interfaces", в окне "Network interface information required" выбрать сетевую карту, через которую будет работать компьютер (возможны еще два варианта: первый, когда в списке не будет вашей сетевой платы - в этом случае начинаются "танцы с бубном", которые в данной статье не описываются; второй вариант, когда у компьютера обнаружено несколько сетевых плат - в этом случае нужно выбрать ту, через которую вы планируете работать). Итак, выбираем "sk0", в окне "User Confirmation Request" (про IPV6) выбираем "No" (выбран по умолчанию), в следующем окне "User Confirmation Request" (про DHCP) выбираем "No", в окне "Network Configuration" вводим:
      • - поле "Host" - имя хоста;
        - поле "Domain" - имя домена;
        - поле "IPv4 Gateway" - шлюз по умолчанию;
        - поле "Name Server" - адрес DNS сервера;
        - поле "IPv4 address" - IP адрес компьютера;
        - поле "Netmask" - сетевая маска;
        - поле "Extra options to ifconfig (usually empty)" - лучше оставить пустым, если точно неизвестно, что сюда вводить.
        - нажимаем "OK", в окне "User Confirmation Request" выбираем "Yes" и попадаем в окно "Network Services Menu";
      - выбираем "Mail", в окне "Mail Transfer Agent Selection" выбираем "None" и нажимаем "Ok";
      - выбираем "Ntpdate", в окне "NTPDATE Server Selection" выбираем "Worldwide" и нажимаем "Ok";
      - выбираем пробелом "sshd"
      - нажимаем "Ok" и попадаем обратно в окно "FreeBSD Configuration Menu";
      - выбираем "X Exit" и попадаем в окно "FreeBSD/amd64 8.3-RELEASE - sysinstall Main Menu";
    - выбираем "X Exit Install", в меню "User Confirmation Requested" выбираем "Yes", вытаскиваем компакт-диск из привода и в окне "Message" нажимаем "OK".
5. Система уходит на перезагрузку. После перезагрузки система останавливается на запросе логина.

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть 2 - отформатировано)

Непрочитанное сообщение Carabas » 2012-09-14 18:21:22

II. Настройка после установки

0. Замечания перед настройкой:
  • - имя пользователя test замените на то, которое вам больше нравится;
    - вводимые пароли на экране не отображаются (даже звёздочек не будет);
    - считаем, что устанавливающий сумеет справиться с текстовым редактором ee;
    - у вас под руками должен быть адрес электронной почты, куда будут отсылаться сообщения rkhunter-ом;
    - считаем, что компьютер подключен к сети, которая имеет прямое подключение к Интернету,
    - в приглашении командного интерпретатора у пользователя root перед знаком решетки отображается имя компьютера. В моем случае это будет "host", в вашем - имя вашего компьютера;
    - для удобства ввода команд настройки нужно использовать следующие полезные функции командного интерпретатора:
    • - история команд: можно вызвать предыдущую команду нажатием клавиши "стрелка вверх", отредактировать ее и нажать <Enter> для выполнения;
      - автодополнение: если при наборе команды, имени файла или пути к файлу, не набрав это имя до конца нажать <TAB>,то система попробует сама дополнить имя. Если совпадающее имя одно, то оно будет дополнено до конца, если их несколько, то ничего не произойдет до тех пор, пока введенные введенная строка не станет соответствовать только одному имени файла или каталога. Попробуйте, например, в командной строке интерпретатора набрать sh и нажать <TAB> - курсор останется на месте, потому что в системе есть несколько файлов, начинающихся с "sh". Но если вы добавите символ "u" и снова нажмете <TAB>, то система сразу дополнит имя до полного shutdown. Эту функцию удобно использовать для ускорения ввода и проверки наличия файла или правильности набора пути к файлу.
    - неплохо было бы иметь под руками компьютер, подключенный к той же сети, что и устанавливаемый вами и имеющий программу SSH-клиента (например, PuTTY). Это позволит вам: во-первых, привыкнуть работать не от имени учетной записи root, а во-вторых, позволит не вводить команды, приведенные в этом тексте руками, а копировать через буфер обмена,
    - начинаем с конца 1-й главы, т.е. с загрузки установленной системы.
1. По окончании загрузки вводим имя пользователя root и пароль и получаем доступ к командному интерпретатору (времена входов в систему будут отличаться от указанных ниже):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

Before seeking technical support, please use the following resources:

o Security advisories and updated errata information for all releases are
at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
for your release first as it's updated frequently.

o The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
along with the mailing lists, can be searched by going to
http://www.FreeBSD.org/search/. If the doc distribution has
been installed, they're also available formatted in /usr/share/doc.

If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the questions@FreeBSD.org mailing list. If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
manual page. If you are not familiar with manual pages, type `man man'.

You may also use sysinstall(8) to re-enter the installation and
configuration utility. Edit /etc/motd to change this login announcement.

host#


2. Отрежем лишнее из /etc/motd
host# ee /etc/motd <Enter>
Переместим курсор на строку номер 4 (сверху) и будем нажимать <Ctrl>+<K>, пока не будут стерты все нижние строки. Затем <ESC>,<A>,<A> и получаем на экране результирующий вывод редактора ee
"/etc/motd" 4 lines, 85 characters

3. Проверяем доступность сети:
host# ping -c 5 www.ru <Enter>
Если получаем вывод наподобие приведенного ниже (ttl в предпоследнем столбце и время в последнем столбце и в последней строке будут отличаться), то сеть настроена правильно:
PING www.ru (194.87.0.50): 56 data bytes
64 bytes from 194.87.0.50: icmp_seq=0 ttl=47 time=4.133 ms
64 bytes from 194.87.0.50: icmp_seq=1 ttl=47 time=4.612 ms
64 bytes from 194.87.0.50: icmp_seq=2 ttl=47 time=4.285 ms
64 bytes from 194.87.0.50: icmp_seq=3 ttl=47 time=4.743 ms
64 bytes from 194.87.0.50: icmp_seq=4 ttl=47 time=3.992 ms

--- www.ru ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 3.992/4.353/4.743/0.284 ms
host#


4. Создадим непривилегированного пользователя, учетную запись которого мы будем использовать для входа на сервер через SSH. Для этого воспользуемся командой adduser:
host# adduser <Enter>
Username: test <Enter>
Full name: <Enter>
Uid (Leave empty for default): <Enter>
Login group [test]: <Enter>
Login group is test. Invite test into other groups? []:<Enter>
Login class [default]: <Enter>
Shell (sh csh tcsh bash rbash nologin) [sh]: tcsh <Enter>
Home directory [/home/test]: <Enter>
Home directory permissions (Leave empty for default): <Enter>
Use password-based authentication? [yes]: <Enter>
Use an empty password? (yes/no) [no]: <Enter>
Use a random password? (yes/no) [no]: <Enter>
Enter password: <ЗДЕСЬ ВЫ ДОЛЖНЫ ВВЕСТИ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ test> <Enter>
Enter password again: <ЗДЕСЬ ВЫ ДОЛЖНЫ ЕЩЕ РАЗ ВВЕСТИ ПАРОЛЬ ДЛЯ ПОЛЬЗОВАТЕЛЯ test> <Enter>
Lock out the account after creation? [no]: <Enter>
Username : test
Password : *****
Full Name :
Uid : 1001
Class :
Groups : test
Home : /home/test
Home Mode :
Shell : /bin/tcsh
Locked : no
OK? (yes/no):
yes <Enter>
adduser: INFO: Successfully added (test) to the user database.
Add another user? (yes/no):
no <Enter>
Goodbye!
host#


5. Чтобы пользователь смог получать права root, добавим его в файл /usr/local/etc/sudoers (не будем заморачиваться с точным определением
необходимых прав - сделаем права как у пользователя root):
host# echo 'test ALL=(ALL) ALL' >> /usr/local/etc/sudoers <Enter>

6. и тут же проверим что настройка пользователя выполнена правильно:
- переключимся на 1-ю виртуальную консоль <Alt>+<F2> (виртуальных консолей по умолчанию 8, нумерация идет с 0)
- введем логин пользователя и пароль:
FreeBSD/amd64 (host) (ttyv1)

login:
test <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

>

- попробуем получить права пользователя root:
> sudo -s <Enter>

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

Password:

текст перед запросом пароля выводится только при первом запуске sudo -s. Вводим пароль пользователя test (не root!) и получаем
командную строку с правами суперпользователя.
host#
- если все действия выполнились без ошибок, то выходим из режима суперпользователя
host# exit <Enter>
exit
>
- и проверяем, пускает ли нас SSH. Шестнадцатиричные числа во второй строке в вашем случае будут отличаться.
> ssh 127.0.0.1 <Enter>
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is 7f:fa:94:c3:00:27:56:51:0d:51:d4:de:18:8d:7c:e2.
Are you sure you want to continue connecting (yes/no)?
yes <Enter>
Warning: Permanently added '127.0.0.1' (RSA) to the list of known hosts.
Password:
<ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Last login: Sun Aug 19 00:18:25 2012
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

>

- и тут же проверяем, что через SSH у нас тоже получится получить права root:
> sudo -s <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
host#
Если все действия выполнились без ошибок, то выходим из режима суперпользователя:
host# exit <Enter>
exit
>
- выходим из SSH:
> exit <Enter>
logout
Connection to 127.0.0.1 closed.

- Выходим из системы на 1-й виртуальной консоли:
> exit <Enter>
logout

FreeBSD/amd64 (host.) (ttyv1)

login:

- и возвращаемся на нулевую консоль, нажав <Alt>+<F1>.

7. Теперь можно подключиться к устанавливаемому компьютеру с другого и продолжить установку (Если другого компьютера нет, то можно этот пункт
пропустить). Для этого лучше выйти из нулевой консоли (чтобы не оставлять открытую командную строку под правами root):
host# exit <Enter>
logout

FreeBSD/amd64 (host.) (ttyv0)

login:

и подключиться через сеть с использованием SSH-клиента. Подключение должно осуществляться под именем созданного вами в п.4 пользователя,
а не под именем root. После подключения, выполнив в окне терминала команду sudo -s, вы получите права root и сможете продолжить настройку системы:
login: test <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

Welcome to FreeBSD!

>
sudo -s <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ test><Enter>
host#
Все дальнейшие команды вводятся в окне SSH-клиента.

8. Исправим файл /etc/fstab так, чтобы никто не смог запускать файлы, расположенные на разделах /tmp и /var. Для этого добавим флаги «noexec»
в поле Options каждого из этих разделов.
host# ee /etc/fstab <Enter>
Файл имеет вид:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw 2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0

У вас должен получиться вид:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1e /tmp ufs rw,
noexec2 2
/dev/ad0s1f /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw,
noexec 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0

Выход из редактора ee с сохранением изменений <ESC><A><A>
Результирующий вывод редактора ee (цифры могут отличаться)
"/etc/fstab" 7 lines, 253 characters

9. Установим более жесткие ограничения на доступ к системным файлам:
host# chmod 0600 /etc/syslog.conf <Enter>
host# chmod 0600 /etc/rc.conf <Enter>
host# chmod 0600 /etc/newsyslog.conf <Enter>
host# chmod 0600 /etc/login.conf <Enter>

10. Также сразу добавим несколько важных для нас опций:
Отключаем переадресацию пакетов и регистрируем все попытки переадресации
host# echo 'icmp_drop_redirect="YES"' >> /etc/rc.conf <Enter>
host# echo 'icmp_log_redirect="YES"' >> /etc/rc.conf <Enter>
Запрещаем ответы на широковещательные ping-запросы
host# echo 'icmp_bmcastecho="NO"' >> /etc/rc.conf <Enter>
Очищаем каталог /tmp при каждой загрузке
host# echo 'clear_tmp_enable="YES"' >> /etc/rc.conf <Enter>
Запрещаем обновление файла /etc/motd при каждой загрузке
host# echo 'update_motd="NO"' >> /etc/rc.conf <Enter>
Не принимаем пакеты с одновременно установленными флагами SYN и FIN
host# echo 'tcp_drop_synfin="YES"' >> /etc/rc.conf <Enter>
Увеличиваем число отображаемых строк на экране
host# echo 'allscreens_flags="80x50"' >> /etc/rc.conf <Enter>
Включаем межсетевой экран IPFW
host# echo 'firewall_enable="YES"' >> /etc/rc.conf <Enter>
host# echo 'firewall_script="/etc/ipfw.conf"' >> /etc/rc.conf <Enter>
host# echo 'firewall_logging="YES"' >> /etc/rc.conf <Enter>

11. Создадим скрипт для запуска межсетевого экрана
host# touch /etc/ipfw.conf <Enter>
host# chmod 0700 /etc/ipfw.conf <Enter>
Добавим необходимые правила.
host# echo '#\!/bin/sh' >> /etc/ipfw.conf <Enter>
Сброс всех правил
host# echo 'ipfw -f flush' >> /etc/ipfw.conf <Enter>
Включить сохранение состояния соединения
host# echo 'ipfw add check-state' >> /etc/ipfw.conf <Enter>
Разрешим весь трафик через localhost
host# echo 'ipfw add allow all from any to 127.0.0.1 via lo0' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow all from 127.0.0.1 to any via lo0' >> /etc/ipfw.conf <Enter>
Разрешаем исходящий PING
host# echo 'ipfw add allow icmp from me to any icmptypes 8' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow icmp from any to me icmptypes 0' >> /etc/ipfw.conf <Enter>
Разрешаем входящий PING
host# echo 'ipfw add allow icmp from any to me icmptypes 8' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow icmp from me to any icmptypes 0' >> /etc/ipfw.conf <Enter>
Разрешаем обращения к DNS (перед cut и после resolv.conf - обратные апострофы!)
host# echo 'ipfw add allow udp from me to `cut -f 2 /etc/resolv.conf` 53' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow udp from `cut -f 2 /etc/resolv.conf` 53 to me' >> /etc/ipfw.conf <Enter>
Разрешаем обращения к серверам NTP
host# echo 'ipfw add allow udp from me to any 123' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow udp from any 123 to me' >> /etc/ipfw.conf <Enter>
Разрешаем входящие соединения SSH, HTTP и HTTPS
host# echo 'ipfw add allow tcp from any to me 22 setup keep-state' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow tcp from any to me 80 setup keep-state' >> /etc/ipfw.conf <Enter>
host# echo 'ipfw add allow tcp from any to me 443 setup keep-state' >> /etc/ipfw.conf <Enter>
Добавляем правило для Webmin (управление компьютером через web-ориентированный интерфейс):
host# echo 'ipfw add allow tcp from any to me 10000 setup keep-state' >> /etc/ipfw.conf <Enter>
Разрешаем исходящие TCP соединения
host# echo 'ipfw add allow tcp from me to any setup keep-state' >> /etc/ipfw.conf <Enter>
Запретить все остальные пакеты и писать в журнал
host# echo 'ipfw add deny log all from any to any via any' >> /etc/ipfw.conf <Enter>

12. Включаем автоматическую загрузку межсетевого экрана
host# echo 'ipfw_load="YES"' >> /boot/loader.conf <Enter>

13. Перезагружаем систему и проверяем, что правила загрузились
host# shutdown -r now <Enter>
Входим в систему как пользователь root (если подключаемся через SSH-клиент, то под именем созданного в п.4 пользователя, а потом выполняем sudo -s):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

host#
ipfw list <Enter>
00100 check-state
00200 allow ip from any to 127.0.0.1 via lo0
00300 allow ip from 127.0.0.1 to any via lo0
00400 allow icmp from me to any icmptypes 8
00500 allow icmp from any to me icmptypes 0
00600 allow icmp from any to me icmptypes 8
00700 allow icmp from me to any icmptypes 0
00800 allow udp from me to 10.1.16.1 dst-port 53
00900 allow udp from 10.1.16.1 53 to me
01000 allow udp from me to any dst-port 123
01100 allow udp from any 123 to me
01200 allow tcp from any to me dst-port 22 setup keep-state
01300 allow tcp from any to me dst-port 80 setup keep-state
01400 allow tcp from any to me dst-port 443 setup keep-state
01500 allow tcp from any to me dst-port 10000 setup keep-state
01600 allow tcp from me to any setup keep-state
01700 deny log ip from any to any
65535 deny ip from any to any
host#


14. Добавим несколько полезных строк в файл /etc/sysctl.conf:
Не отвечать на попытки подключения к закрытым портам (спасет от некоторых видов DoS-атак и затруднит сканирование портов)
host# echo 'net.inet.tcp.blackhole=2' >> /etc/sysctl.conf <Enter>
host# echo 'net.inet.udp.blackhole=1' >> /etc/sysctl.conf <Enter>
Защитим SSH-сервер от брутфорс-атак:
host# echo "MaxStartups 5:50:10" >> /etc/ssh/sshd_config <Enter>
Если вы подключены через SSH-клиент, то лучше перегрузить устанавливаемый компьютер командой host#
host# shutdown -r now <Enter>
и потом подключиться к нему заново. Если вы работаете на консоли, то:
host# /etc/rc.d/sshd restart <Enter>
Теперь SSH-сервер будет отбрасывать 50% новых подключений в случае, если будет произведено пять неправильных регистраций. Когда их станет десять, сервер перестанет отвечать вовсе.

15. Чтобы отключить поддержку IPV6 в устанавливаемых пакетах, добавим строку в файл /etc/make.conf
host# echo 'WITHOUT_IPV6=yes' >> /etc/make.conf <Enter>

16. Получим самый свежий срез портов, не содержащий устаревшего дырявого ПО
host# portsnap fetch extract <Enter>
...
<очень длинный вывод>
...
Building new INDEX files... done.
host#


17. Обновляем базовую систему:
host# freebsd-update fetch <Enter>
...
<опять длинный вывод>
...
--More--(byte 422) <БУДЕТ НЕСКОЛЬКО ПОДОБНЫХ СТРОК: НАЖАТЬ ПРОБЕЛ НЕСКОЛЬКО РАЗ>
...
/var/db/mergemaster.mtree
host#
freebsd-update install <Enter>
Installing updates... done.
Перезагружаем систему
host# shutdown -r now <Enter>

18. После того как порты и система будут обновлены, установим в систему инструмент rkhunter, нужный для отлова руткитов, которые могут быть установлены в систему в будущем.
Входим в систему как пользователь root (если подключаемся через SSH-клиент, то под именем созданного в п.4 пользователя, а потом выполняем sudo -s):
login: root <Enter>
Password: <ВВОДИМ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ root><Enter>
Aug 19 00:18:25 host login: ROOT LOGIN (root) ON ttyv0
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 8.3-RELEASE (GENERIC) #0: Mon Apr 9 21:23:18 UTC 2012

host#
cd /usr/ports/security/rkhunter <Enter>
host# make install clean <Enter>
Во всех окнах выбора опций нажимаем "OK".
После установки обновим хэш директорий:
host# rehash <Enter>
Отредактируем в редакторе ee конфигурационный файл /usr/local/etc/rkhunter.conf так, чтобы опция MAIL-ON-WARNING содержала email, на который следует слать сообщения об обнаруженных аномалиях.
Заставим инструмент проверить себя на обновления:
host# rkhunter --update <Enter>
После этого создадим снимок системных файлов, который будет использоваться в качестве эталона во время поиска руткитов:
host# rkhunter --propupd <Enter>
Далее добавим в файл /etc/periodic.conf две строки, благодаря которым проверки обновлений и системы будут происходить каждый день:
host# echo 'daily_rkhunter_update_enable="YES"' >> /etc/periodic.conf <Enter>
host# echo 'daily_rkhunter_check_enable="YES"' >> /etc/periodic.conf <Enter>
Все, теперь все сообщения о подозрительной системной активности будут помещаться в лог /var/log/rkhunter.log и отсылаться на указанный в конфигурационном файле email.

19. Далее настроим cron на синхронизацию системных часов каждые два часа (строку лучше отформатировать так же, как в файле /etc/crontab):
host# echo "0 2 * * * root /usr/sbin/ntpdate -bs pool.ntp.org" >> /etc/crontab <Enter>
и перезапустим cron
host# /etc/rc.d/cron restart <Enter>

20. устанавливаем файловый менеджер mc:
host# cd /usr/ports/misc/mc <Enter>
host# make install clean <Enter>
Во всех окнах настройки опций нажимаем "OK"
После установки обновим хэш директорий:
host# rehash <Enter>

Система (F) готова к установке, собственно, AMP.

ЗЫ: Для повышения надежности и производительности неплохо было бы:
- пересобрать ядро;
- настроить ротацию логов;
- сделать программный RAID-1 на базе GEOM (понадобится второй жесткий диск);
- сконфигурировать отказоустойчивую сеть на базе LAGG (понадобится вторая сетевая карта).
Но, рассмотрение данных настроек выходит за границы статьи цель которой - подробное описание установки FAMP для человека не знакомого с UNIX.

Carabas
проходил мимо

Re: Статья: Установка FAMP (Часть 3 - отформатировано)

Непрочитанное сообщение Carabas » 2012-09-14 19:14:52

III. Установка AMP

0. Замечания перед настройкой:
  • - необходимо определить почтовый адрес администратора сервера Apache;
    - теперь для перемещения по файловой системе FreeBSD и просмотра/редактирования файлов можно использовать файловый менеджер mc, который напоминает Far (а некоторым даже NC или VC ). Если структура файловой системы пока что вам непонятна, то можно изменять текущий каталог, не выходя из mc, командой cd <ИМЯ КАТАЛОГА>, а просмотр/редактирование производить его (mc) встроенным редактором. В mc, чтобы при наборе команды вставить в нее имя выделенного файла, нужно нажать последовательно <ESC>, <Enter>; чтобы вызвать последнюю выполненную команду - <ESC>, <P>; чтобы посмотреть на экран "за панелями" - <Ctrl>+<O>. Обратите внимание, что в mc при включенных файловых панелях не работает автодополнение!
    - для редактирования и вставки строк в конфигурационные файлы в этом описании применяются разные способы не потому, что только так и нужно, а чтобы показать, что существует несколько альтернативных способов,
    - постепенно детализация изложения снижается в надежде, что устанавливающий систему что-то усваивает в процессе установки
    - для этой части потребуется компьютер с браузером (графическим ), подключенный к той же сети, что и настраиваемый. Кроме этого на нем желательно иметь SSH-клиент (например, PuTTY). Это позволит вам: во-первых, привыкнуть работать не от имени учетной записи root, а во-вторых, позволит не вводить команды, приведенные в этом тексте руками, а копировать через буфер обмена,
    - считается, что вы уже залогинились в систему тем или иным способом.
1. Установка Apache. Идем в порты и устанавливаем последнюю версию:
host# cd /usr/ports/www/apache22 <Enter>
host# make install clean <Enter>
На экране появится окно конфигуратора, с помощью которого можно выбрать установку опциональных компонентов сервера. Что-либо менять смысла нет - выбираем "OK". После окончания сборки и установки не забудьте добавить сервер в автозапуск:
host# echo 'apache22_enable="YES"' >> /etc/rc.conf <Enter>
host# echo 'apache22ssl_enable="YES"' >> /etc/rc.conf <Enter>
Также в конфигурационный файл следует добавить инструкцию для загрузки модуля accf_http, который будет буферизировать HTTP-соединения, что разгрузит сервер и поможет в борьбе с SYN-флудом:
host# echo 'accf_http_ready="YES"' >> /etc/rc.conf <Enter>
host# kldload accf_http <Enter>
Сконфигурируем автоматическую загрузку модуля:
host# echo 'accf_http_load="YES"' >> /boot/loader.conf <Enter>

2. Далее установим интерпретатор PHP пятой версии:
host# cd /usr/ports/lang/php5 <Enter>
host# make install clean <Enter>
Необходимо убедиться, что опция «APACHE Build Apache module» выбрана.

3. Устанавливаем расширения к PHP:
host# cd /usr/ports/lang/php5-extensions <Enter>
host# make install clean <Enter>
Важно, в первом окне конфигурирования PHP отметить [x] пункт «MySQL database support», принуждающий систему портов к установке модуля PHP для работы с MySQL. Без него ничего не заработает. Во втором и третьем окнах - просто выбираем "OK".

4. Правим конфигурационный файл Apache (он находится в /usr/local/etc/apache22/httpd.conf): запускаем mc:
host# mc <Enter>
переходим с нужный каталог командой
host# cd /usr/local/etc/apache22 <Enter>
выбираем стрелками файл httpd.conf и нажимаем <F4>.
Основные функциональные клавиши в редакторе mc:
<F2> - сохранить изменения
<F3> - отметить начало и конец выделенного фрагмента (для копирования/перемещения/удаления)
<F4> - заменить
<F5> - копировать выделенный фрагмент
<F6> - переместить выделенный фрагмент
<F7> - поиск
<F8> - удалить выделенный фрагмент
<F9> - меню настроек mc
<F10> - выход из редактора
<Ctrl+O> - свернуть файловые панели (чтобы посмотреть на вывод команд)
Изменяем в файле httpd.conf следующее:
- ищем строку ServerName, раскомментируем её и вписываем туда имя сервера. В данном примере "host":
ServerName host
- после строк LoadModule добавляем следующие две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

- находим опцию ServerAdmin и прописываем в качестве ее значения свой почтовый адрес:
ServerAdmin <АДРЕС ПОЧТЫ АДМИНИСТРАТОРА СЕРВЕРА>
- меняем следующие строки:
<ifModule dir_module>
DirectoryIndex index.html
</ifModule>

На эти:
<ifModule dir_module>
DirectoryIndex
index.php index.html
</ifModule>

После редактирования сохраняем изменения, нажав <F2> и <Enter>, затем выходим из редактора, нажав <F10>.

5. Создаем файл настроек PHP (можно делать, не выходя из mc):
host# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini <Enter>
перейдем в каталог с этим файлом
host# cd /usr/local/etc <Enter>
исправим в файле php.ini во встроенном редакторе mc строку
; date.timezone =
на строку
date.timezone = "Europe/Moscow"
Этого будет достаточно для нормальной работы Apache совместно с PHP. Выходим из редактора mc: <F2>, <Enter>, <F10>.
Запускаем Apache:
host# /usr/local/etc/rc.d/apache22 start <Enter>
Нажав <Ctrl+O> можно посмотреть, что вывела команда на экран, и убедиться, что перезапуск прошел без ошибок. Восстанавливаются панели повторным нажатием <Ctrl+O>

6. Теперь проверка того, что у нас все собрано правильно:
Создаете файл /usr/local/www/apache22/data/index.php с содержимым <?php phpinfo(); ?>:
host# echo '<?php phpinfo(); ?>' >> /usr/local/www/apache22/data/index.php <Enter>
В браузере набираете строку http://<АДРЕС ИЛИ ИМЯ КОМПЬЮТЕРА, КОТОРЫЙ МЫ НАСТРАИВАЕМ>
Если в окне браузера информация о пакете PHP, то все установлено правильно.
Если в окне браузера надпись "It works!" или текст "<?php phpinfo(); ?>", значит правильно установлен только Apache, и проблемы с установкой и настройкой PHP. Если в окне браузера ошибка - значит проблемы с установкой Apache.
Выходим из mc, нажав <F10>, <Enter>.

7. Теперь можно приступить к установке MySQL. Идем в порт:
host# cd /usr/ports/databases/mysql55-server <Enter>
Запускаем установку со следующим параметром:
host# make WITH_OPENSSL=yes install clean <Enter>
Во всех окнах нажимаем "ОК".
После установки обновим хэш директорий:
host# rehash <Enter>

7. Создадим рудиментарный конфигурационный файл, которого хватит на первое время:
host# ee /etc/my.cnf <Enter>
Вводим строки (сервер будет использовать нестандартный порт и не будет принимать внешние соединения):
[client]
port=29912
[mysqld]
port=29912
bind-address=127.0.0.1

Добавим MySQL в автозагрузку и запустим сервер:
host# echo 'mysql_enable="YES"' >> /etc/rc.conf <Enter>
host# /usr/local/etc/rc.d/mysql-server start <Enter>
Установим пароль на доступ к базе данных:
host# mysqladmin -u root password <ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL > <Enter>
И убедимся, что нас пускают:
host# mysql -u root -p <Enter>
Enter password: <ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL> <Enter>
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.5.27 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
exit <Enter>
Bye
host#


8. Теперь MySQL должна нормально функционировать, но управлять базами данных вручную не очень удобно, к тому же, для некоторых это будет первый опыт установки MySQL, а с наскоку разобраться с ней не так-то просто. Поэтому установим веб-интерфейс управления MySQL под названием PHPMyAdmin:
host# cd /usr/ports/databases/phpmyadmin <Enter>
host# make install clean <Enter>
В окнах выбора опций ничего не меняем, везде выбираем "OK".

9. Поправим конфигурационный файл PHPMyAdmin, указав пароль на доступ к web-интерфейсу:
host# cd /usr/local/www/phpMyAdmin <Enter>
host# cp config.sample.inc.php config.inc.php <Enter>
host# ee config.inc.php <Enter>
$cfg['blowfish_secret'] = 'ВВЕДИТЕ ЗДЕСЬ ПАРОЛЬ АДМИНИСТРАТОРА MySQL (из пункта 7)';
Теперь вновь открываем конфигурационный файл Apache (удобнее - в редакторе mc) и делаем следующее:
- перед секцией <IfModule dir_module> добавляем секцию с описанием каталога phpMyAdmin (Встроенный редактор mc "понимает" вставку нескольких строк через буфер обмена. Чтобы строки при вставке не сползали вправо, необходимо в меню Options\General... редактора mc снять [x] у пункта "Return does autoindent"):
<Directory "/usr/local/www/phpMyAdmin">
Order allow,deny
Allow from all
</Directory>

- В секцию <IfModule alias_module> добавляем следующую строку:
Alias /phpmyadmin "/usr/local/www/phpMyAdmin"
Перезапускаем Apache:
host# /usr/local/etc/rc.d/apache22 restart <Enter>

10. Вводим а адресную строку браузера http://<АДРЕС ИЛИ ИМЯ СЕРВЕРА>/phpmyadmin и попадаем на запрос имени и пароля. Вводим root и пароль администратора MySQL и попадаем на главную страницу.

11. В нижней части экрана видим надпись:
Дополнительные возможности phpMyAdmin не настроены в полной мере, некоторые функции были отключены. Для определения причины нажмите здесь.
Начинаем выполнять необходимые действия:
- Создайте необходимые таблицы с помощью скрипта examples/create_tables.sql:
host# cd /usr/local/www/phpMyAdmin/examples <Enter>
host# mysql -u root -p < ./create_tables.sql <Enter>
Enter password: <ВВОДИМ ПАРОЛЬ АДМИНИСТРАТОРА MySQL> <Enter>
host#
- В браузере в phpMyAdmin нажимаем кнопку "Обновить фрейм навигации" (зеленая круглая стрелка под надписью phpMyAdmin). В списке таблиц появилась таблица phpmyadmin.
- Создайте пользователя pma и предоставьте доступ к этим таблицам:
нажмите "Пользователи", на открывшейся странице нажмите "Добавить пользователя" и в открывшемся окне введите имя пользователя "pma", хост выбираем "Локальный" из выпадающего списка, вводим пароль и подтверждение пароля для пользователя pma. Теперь нажмите кнопку "Добавить пользователя". Появляется уведомление о добавлении нового пользователя и вы возвращаетесь на страницу "Обзор учетных записей".
В строке с пользователем pma щелкаете на ссылку "Редактирование привилегий". Во всплывающем окне, прокрутив его ниже, в
разделе "Привилегии уровня базы данных" из выпадающего меню "Добавить привилегии на следующую базу" выберите "phpmyadmin" и нажмите "OK".
Откроется страница "Редактирование привилегий: Пользователь 'pma'@'localhost' - База данных phpmyadmin", где в разделе "Привилегии уровня базы данных", в блоке "Данные", поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите "OK". Вверху окна отобразится уведомление, что данные были изменены. Выходим из phpMyAdmin, нажав на кнопку с изображением открытой двери (под надписью phpMyAdmin)
- Снова открываем конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php и раскомментируем строки в разделах "User used to manipulate with storage" и "Storage database and tables". Во всех полях оставляем значения по умолчанию кроме:
$cfg['Servers'][$i]['controlhost'] = 'localhost'
$cfg['Servers'][$i]['controlpass'] = '<ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ pma>'

- защищаем файл config.inc.php - создаем в каталоге /usr/local/www/phpMyAdmin файл .htaccess:
host# cd /usr/local/www/phpMyAdmin <Enter>
host# touch .htaccess <Enter>
открываем на редактирование файл .htaccess (выбираем стрелками и нажимаем <F4>):
вводим следующее содержимое:
Order deny,allow
deny from all
allow from <СПИСОК IP-АДРЕСОВ ИЛИ СЕТЕЙ, РАЗДЕЛЕННЫХ ПРОБЕЛАМИ, С КОТОРЫХ РАЗРЕШАЕТСЯ ДОСТУП К phpMyAdmin или слово all>
<Files config.inc.php>
Order deny,allow
deny from all
</Files>

сохраняем <F2>, <Enter> и выходим из редактора <F10>
- И защищаем конфигурационный файл phpMyAdmin от изменений:
host# chmod 640 config.inc.php <Enter>
Всё, настройка закончена: заходим в phpMyAdmin и видим, что предупреждение пропало.

12. HTTPS
Настроим поддержку HTTPS для PHPMyAdmin, чтобы в будущем была возможность безопасного зашифрованного соединения между клиентом и сайтом.
Создадим каталог для собственного центра сертификации
host# mkdir /root/CA <Enter>
Запретим доступ в этот каталог
host# chmod 0600 /root/CA <Enter>
скопируем туда конфигурационный файл SSL
host# cp /etc/ssl/openssl.cnf /root/CA/openssl.cnf <Enter>
Для начала исправим конфигурационный файл OpenSSL (/root/CA/openssl.cnf)
- переходим в нужный каталог
host# cd /root/CA <Enter>
- добавляем в файл openssl.cnf следующие строки:
Каталог для хранения сертификатов
dir = /root/CA
Срок действия сертификата (~10 лет)
default_days = 3650

Теперь подготовим структуру каталогов и создадим сертификаты для собственного центра сертификации.
Для генерации сертификатов вы должны быть готовы ввести информацию о стране, области, городе, компании, подразделении и общем имени сертификата (COMMON NAME). Эти данные должны совпадать для сертификата CA и для сертификата Apache.
host# mkdir newcerts <Enter>
host# mkdir private <Enter>
host# echo '00' >> serial <Enter>
host# touch index.txt <Enter>
host# openssl req -new -x509 -days 3650 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -config /root/CA/openssl.cnf <Enter>
Вводим пароль для сертификата CA, затем вводим необходимые для сертификата данные.
Например: страна RU,
регион MSK,
город Moscow,
компания TEST,
подразделение IT,
общее имя HOST.
почтовый адрес MY@EXAMPLE.COM
Проверим, что сертификаты были созданы успешно:
host# ls -l cacert.pem private/cakey.pem <Enter>
Сгенерируем сертификаты для Apache. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# openssl req -new -nodes -out имя_хоста-req.pem -keyout private/имя_хоста-key.pem -config /root/CA/openssl.cnf <Enter>
Вводим необходимые для сертификата данные. Страна, регион и город должны совпадать с данными сертификата CA.
Обратите внимание, что общее имя должно в точности совпадать с доменным именем www-сервера, чтобы браузер посчитал сертификат правильным.
Транспортный пароль для сертификата Apache и дополнительное имя можно не вводить, просто нажав <Enter>
Подпишем сертификат Apache сертификатом нашего CA. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# openssl ca -config /root/CA/openssl.cnf -out имя_хоста-cert.pem -infiles имя_хоста-req.pem <Enter>
Вводим пароль на сертификат CA, подтверждаем операцию подписи: <y>, <Enter>, <y>, <Enter>.
Скопируем сертификат и ключ в каталог Apache. В командной строке нужно вместо имя хоста подставить название для вашего сертификата!
host# cp /root/CA/имя_хоста-cert.pem /usr/local/etc/apache22/server.crt <Enter>
host# cp /root/CA/private/имя_хоста-key.pem /usr/local/etc/apache22/server.key <Enter>
И сразу ограничим доступ к ключу сервера
host# chown www /usr/local/etc/apache22/server.key <Enter>
host# chmod 0600 /usr/local/etc/apache22/server.key <Enter>
Снова открываем конфигурационный файл Apache,
host# ee /usr/local/etc/apache22/httpd.conf <Enter>
находим следующую строку(почти в самом конце) и раскомментируем ее (убираем решетку из ее начала):
# Include etc/apache22/extra/httpd-ssl.conf
Сохраняем файл и выходим.
Вносим следующие изменения в файл /usr/local/etc/apache22/extra/httpd-ssl.conf:
host# ee /usr/local/etc/apache22/extra/httpd-ssl.conf <Enter>
# Имя HTTPS-сервера (подставьте имя своего сервера)
ServerName ssl.host.com:443
ServerAdmin <АДРЕС ПОЧТЫ АДМИНИСТРАТОРА БЕЗОПАСНОСТИ>
Перезапускаем Apache:
host# /usr/local/etc/rc.d/apache22 restart <Enter>
Компьютер, на котором запускается браузер должен доверять сертификатам, подписанным нашим CA. Для этого его нужно добавить сертификат нашего CA (/root/CA/cacert.pem) в список доверенных корневых центров сертификации. В Windows - запустив в mmc оснастку "Сертификаты" для "Моей учетной записи пользователя".
В браузере вводим в адресную строку https://<ИМЯ СЕРВЕРА> и видим информацию о PHP.
В браузере вводим в адресную строку https://<ИМЯ СЕРВЕРА>/phpmyadmin и видим стартовую страницу phpMyAdmin.

13. Установим Webmin, web-ориентированный интерфейс для удаленного управления сервером (те, кто предпочитает использовать для администрирования SSH, могут пропустить этот шаг):
host# cd /usr/ports/sysutils/webmin <Enter>
host# make install clean <Enter>
host# echo 'webmin_enable="YES"' >> /etc/rc.conf <Enter>
Далее необходимо запустить конфигуратор Webmin:
host# /usr/local/lib/webmin/setup.sh <Enter>
На вопросы можно отвечать нажатием <Enter>, однако когда дело дойдет до ввода пароля (строка «Login password:»), следует ввести пароль на доступ к Webmin (лучше, если он будет отличаться от остальных паролей). При запросе использовать ли SSL ввести "y":
Use SSL (y/n): y <Enter>
В процессе настройки будет выведено сообщение о том что, что не найден пакет syslog-ng(что естественно: он же у нас не установлен!). Кроме того, 2 раза будет выдано сообщение о том, что не найден pid-файл процесса miniserv (что тоже естественно: ведь мы еще не запускали webmin!).
Далее можно запустить Webmin:
host# /usr/local/etc/rc.d/webmin start <Enter>
и протестировать его работу, введя адрес «https://<АДРЕС ИЛИ ИМЯ СЕРВЕРА>:10000/» в адресную строку браузера (браузер будет "ругаться" на сертификат!), а затем имя admin и пароль на доступ к WebMin.

14. Теперь нужно перезагрузить компьютер
host# shutdown -r now <Enter>
и после перезагрузки проверить, что www-сервер, phpMyAdmin и webmin запускаются автоматически и доступны через браузер.

Все, что теперь нужно сделать - это развернуть сайтовый движок в каталог /usr/local/www/apache22/data (не забыв положить скрипты в /usr/local/www/apache22/cgi-bin).

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение dekloper » 2012-12-05 10:10:23

Carabas писал(а):статья про FAMP.
а чё такое фамп? :x
давайте уж и WAMP заодно :ROFL:
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!

Аватара пользователя
tom.cat
старшина
Сообщения: 446
Зарегистрирован: 2007-11-24 20:23:49
Откуда: Мытищи
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение tom.cat » 2012-12-05 10:17:03

Carabas, для листингов и конфигов есть кнопочка Code.
host# ee /etc/motd <Enter>
Переместим курсор на строку номер 4 (сверху) и будем нажимать <Ctrl>+<K>, пока не будут стерты все нижние строки. Затем <ESC>,<A>,<A> и получаем на экране результирующий вывод редактора ee
"/etc/motd" 4 lines, 85 characters
Это прям вообще для даунов :) Без обид, но для кого такое руководство?
When you see pigs fly it means Windows has become open source

Аватара пользователя
dekloper
ст. лейтенант
Сообщения: 1331
Зарегистрирован: 2008-02-24 15:43:19
Откуда: давно здесь сидим..
Контактная информация:

Re: Статья: Установка FAMP

Непрочитанное сообщение dekloper » 2012-12-05 10:29:34

tom.cat писал(а):Это прям вообще для даунов :) Без обид, но для кого такое руководство?
для LAMP-опсоидов
чо тут непонятного
они такое любят
пущяй вчитываются)
ТОВАгИЩИ! БгАТЬЯ И СЕСТгЫ! ДОЛОЙ гАВНОДУШИЕ!