LAMP на VPS. Подготовительный этап.

Это вторая статья из цикла про настройку LAMP на VPS.

Начало можно почитать >>ТУТ<<

ШАГ 1.  Проверяем обновления.

Установочный образ у хостинг провайдера может оказаться не особо свежим.

[root@www ~]# yum -y update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.cuegee.com
* extras: mirror.imt-systems.com
* updates: mirror.ratiokontakt.de
No packages marked for update

Ура! В моём случае система оказалась со всеми последними обновлениями.

ШАГ 2. Подключаем репозитарий EPEL

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

Сначала найдём правильное название репозитория.

[root@www ~]# yum search epel
...
epel-release.noarch : Extra Packages for Enterprise Linux repository configuratio
...

А теперь его подключаем.

[root@www ~]# yum -y install epel-release.noarch
...
Installed:
epel-release.noarch 0:7-11
...

Complete!

И опять обновляемся

[root@www ~]# yum -y update

ШАГ 3. Ставим софт для комфортной работы.

[root@www ~]# yum -y install mc screen watchdog sysstat crontabs tmpwatch yum-utils wget sendmail ImageMagick

По желанию можно поставить ещё что-то, но пока на этом остановимся.

ШАГ 4. Отключаем selinux

Можно отключить selinux вручную, отредактировав файл /etc/selinux/config , но я — лентяй, который часто настраивает сервера, поэтому я немного автоматизировал процесс… У меня в записях есть список команд, которые я использую для этих целей. Правка, копировать, правка, вставить… 😉

[root@www ~]# cp /etc/selinux/config /etc/selinux/config.old
[root@www ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@www ~]# reboot

ШАГ. 5. Проверяем наличие SWAP.

root@www ~]# swapon -s
[root@www ~]#

У меня данная команда ничего не вывела. Значит создаём SWAP. Я обычно делаю SWAP в 2 раза больше имеющейся оперативной памяти. Сейчас у меня на сервере 4 гига оперативы, значит SWAP сделаю в 8 гигов. Я понимаю, что это многовато, но… Пока пусть будет. Понаблюдаем за использованием файла подкачки и при необходимости изменим размер. 🙂

Итак, создаём сам файл для подкачки.

[root@www ~]# dd if=/dev/zero of=/swapfile bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 11.0378 s, 778 MB/s

Устанавливаем правильные разрешения на созданный файл

[root@www ~]# chmod 600 /swapfile

Созданный файл «форматируем»…

[root@www ~]# mkswap /swapfile

Включаем использование SWAP

[root@www ~]# swapon /swapfile

Проверяем.

[root@www ~]# cat /proc/swaps
Filename Type Size Used Priority
/swapfile file 8388604 0 -2

Работает.

Для автоматизации подключения файла подкачки в конец /etc/fstab добавляем строку

/swapfile swap swap defaults 0 0

Редактировать /etc/fstab можно любым редактором. Я предпочитаю mcedit. В моём случае для начала редактирования я использовал команду

[root@www ~]# mcedit /etc/fstab

Сохраняем внесённые изменения и перезагружаемся для проверки. 🙂

[root@www ~]# reboot

Проверяем работу SWAP.

[root@www ~]# swapon -s
Filename Type Size Used Priority
/swapfile file 8388604 0 -2

Ура! Всё получилось.

Замечание!!!

Сначала файл подкачки я попробовал создать командой

allocate -l 4G /swapfile

НО! Файл создался с “дырками”. “Дырявый” файл для SWAP не годится. Пришлось использовать команду dd.

ШАГ 5. Отключаем FIREWALLD, включаем IPTABLES

Не люблю я firewalld. Мне по душе классический iptables.

[root@www ~]# systemctl stop firewalld
[root@www ~]# systemctl disable firewalld
[root@www ~]# yum -y install iptables-services
[root@www ~]# systemctl enable iptables.service
[root@www ~]# systemctl start iptables.service

Замечание. Можно полностью скрыть сервис firewalld  командой systemctl mask firewalld , чтобы другие скрипты не смогли его запустить.

Теперь можно просмотреть список правил, которые по-умолчанию работают в iptables

[root@www ~]# cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Видим, что разрешено подключение только по SSH.

Мне очень нравится использовать для мониторинга и несложной настройки webmin, который для работы использует порт 10000. Кроме того, у нас будет работать WWW-сервер и FTP-сервер. Поэтому я привожу содержимое файла /etc/sysconfig/iptables к следующему виду

[root@www ~]# cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

И перезапускаю iptables.

[root@www ~]# systemctl restart iptables.service

ШАГ 6. Ставим WEBMIN

Актуальную ссылку на установочный пакет webmin можно посмотреть тут: http://www.webmin.com/download.html

Ставим webmin

[root@www ~]# yum -y install https://prdownloads.sourceforge.net/webadmin/webmin-1.930-1.noarch.rpm

Проверяем доступность сервера через webmin

Ура. Работает.

ШАГ 7. IFCONFIG

Оказалось, что в системе нет команды ifconfig

[root@www ~]# ifconfig
-bash: ifconfig: команда не найдена

Я к этой команде привык. Устанавливаем её в системе…

[root@www ~]# yum -y install net-tools
[root@www ~]# ifconfig
...

Команда появилась…

Итак, подготовительный этап мы сделали.

>>Идём дальше.<<