Использование сертификата Let’s Encrypt

На нашем CentOS 7 с веб-сервером nginx и haproxy перед ним, получим бесплатный сертификат для одного сайта.

Настройка и получение первого сертификата

Для получения сертификата и последующего обновления будем использовать программку cetbot с плагином webroot.
Этот способ не предполагает остановки веб-сервера для получения сертификата или вмешательства в DNS.

Read moreИспользование сертификата Let’s Encrypt

Установка агента Zabbix 4.2 на CentOS 7

Данная ветка Zabbix уже не поддерживается и найти репозиторий для установки сложно. Поэтому выкладываю здесь, чтобы долго не искать.

vi /etc/yum.repos.d/zabbix.repo

Вставляем

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://repo.zabbix.com/zabbix/4.2/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://repo.zabbix.com/zabbix/4.2/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

Дальше остаётся только установить:

yum update
yum install zabbix-agent

но может возникнуть ошибка:

warning: /var/cache/yum/x86_64/7/zabbix/packages/zabbix-agent-4.2.8-1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY                                     ] 103 kB/s | 100 kB  00:00:03 ETA
Public key for zabbix-agent-4.2.8-1.el7.x86_64.rpm is not installed
zabbix-agent-4.2.8-1.el7.x86_64.rpm                                                                                                                                                         | 417 kB  00:00:01
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591


GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591"

тогда необходимо выполнить импорт ключа репозитория:

rpm -import https://repo.zabbix.com/RPM-GPG-KEY-ZABBIX-A14FE591

и запустить установку ещё раз.

Установка и использование Composer

Установка:

wget https://getcomposer.org/composer.phar
chmod +x composer.phar

Запуск:

php composer.phar <commands>

Например:

php composer.phar require phpoffice/phpspreadsheet

Создастся папка vendor, в неё будут закачиваться запрошенные и зависимые пакеты.
Также там создастся файл autoload.php, который необходимо будет подключить в файлы веб-проекта.

Установка Nginx, PHP, PHP-fpm, MariaDB

Установка Nginx

Установим пакеты, необходимые для подключения yum-репозитория:

yum install yum-utils

Для подключения yum-репозитория нужно создать файл с именем /etc/yum.repos.d/nginx.repo со следующим содержимым:

[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

По умолчанию используется репозиторий для стабильной версии nginx. Ветка mainline – основная, ветка stable – это bug-fix-only.
Разработка новых фич и исправление всех багов происходит на основной ветке, но критические багфиксы при этом попадают в стабильную ветвь.
В целом, рекомендуется использовать mainline, самые последние версии – в ней.

Read moreУстановка Nginx, PHP, PHP-fpm, MariaDB

Компиляция и установка HAProxy на CentOS 7 из исходников

К сожалению, в CentOS 7 и других RHEL-based системах в репозиториях выложены только древние версии haproxy. Производителем эти ветки уже не поддерживаются, и возможно, силами Red Hat в них и интегрируются патчи безопасности, но уж никаких новых возможностей точно не прибавляется. А продукт тем временем развивается и улучшается и нам, конечно же, хотелось бы воспользоваться последней версией haproxy.

Read moreКомпиляция и установка HAProxy на CentOS 7 из исходников

CentOS: настройка после свежей установки

Устанавливаем программы для управления сетевыми настройками (ifconfig,nslookup и т.д.)

yum install -y net-tools bind-utils traceroute iftop htop atop wget curl telnet tcpdump lsof

Устанавливаем VM Tools

yum -y install open-vm-tools

Отключаем SELinux

открываем файл:
	vi /etc/sysconfig/selinux
выставляем значение:
	SELINUX=disabled
перезагружаемся:
	reboot
проверяем:
	getenforce
должно показать Disabled

Настраиваем сетевые интерфейсы

nmtui

Отключаем firewall

systemctl stop firewalld
systemctl disable firewalld

настройка SSH

открываем файл:
	vi /etc/ssh/sshd_config
выставляем настройки:
	ListenAddress 192.168.128.16	#чтобы не слушать на адресах, доступных из Интернета
	UseDNS no						#рекомендуют против затупов, если вдруг какие-то проблемы с резолвом ДНС
перезапуск службы:
	service sshd restart
проверка:
	netstat -tulpn | grep sshd

Настраиваем время

https://andreyex.ru/operacionnaya-sistema-linux/chrony-alternativnyj-klient-i-server-ntp-dlya-unix-podobnyh-sistem/

как узнать время на сервере:
	date
выставляем часовую зону:
	timedatectl set-timezone Europe/Moscow
проверяем наличие службы синхронизации времени:
	systemctl status chronyd
	systemctl status ntpd
установка chrony, если его нет:
	yum install -y chrony
	systemctl enable chronyd
	systemctl start chronyd
открываем файл:
	vi /etc/chrony.conf
выставляем настройки:
	комментируем серверы pool.ntp.org
	прописываем (если не сделано при установке ОС):
	server 172.16.2.22 iburst
перезапуск службы:
	service chronyd restart
больше инфы про службу:
	chronyc tracking		#чтобы проверить синхронизацию chrony
	chronyc sources			#проверить текущие источники времени
	chronyc sourcestats		#проверить статистику каждого источника

Kernel Parameters and IP Forwarding

Нужно включить ip_nonlocal_bind, чтобы HAProxy мог стартовать без ошибок и слушать на виртуальном адресе, который сейчас не на текущем узле keepalived
Нужно включить ip_forward – хз зачем, но во всех инструкциях есть (In order for the Keepalived service to forward network packets properly to the real servers, each router node must have IP forwarding turned on in the kernel.)

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind = 1
reboot

проверка:
/usr/sbin/sysctl net.ipv4.ip_forward
/usr/sbin/sysctl net.ipv4.ip_nonlocal_bind
должно выдавать единицы

Можно ещё установить Cockpit – веб интерфейс управления. Почти ничего не умеет, но зато “от создателей”
https://winitpro.ru/index.php/2020/05/18/cockpit-web-interfejs-upravleniya-serverom-linux/