Это вторая статья из цикла про настройку 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
...
Команда появилась…
Итак, подготовительный этап мы сделали.