Oc-windows.ru

IT Новости из мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Установка ConfigServer Security and Firewall

Установка ConfigServer Security and Firewall

ConfigServer Security and Firewall (CSF) – это свободное программное обеспечение с открытым кодом, являющееся файерволом и имеющее достаточно широкие функциональные возможности по сравнению с другими подобными решениями.

Также CSF интегрирован в такие панели управления VDS хостингом, как cPanel и DirectAdmin. Поэтому после установки настраивать CSF можно будет прямо из этих панелей управления.

Установка CSF выполняется в несколько шагов, описанных ниже:

Содержание

Проверка совместимости с ОС

Убедитесь, что операционная система, установленная на VPS, поддерживается данным продуктом. ConfigServer Security and Firewall поддерживает работу в следующих ОС:

  • CentOS 3 и выше
  • Fedora 1 и выше
  • Debian 3.1 и выше
  • Ubuntu 6.06 LTS и выше

Полный список поддерживаемых ОС можно посмотреть на официальном сайте разработчика configserver.com.

Установка зависимостей

Подключитесь по SSH с правами суперпользователя (root). Для работы CSF необходим Perl, а также библиотека Time/HiRes. Если эти пакеты не установлены, установщик CSF выведет ошибку. Для установки этих пакетов введите следующие команды:

Для Fedora/CentOS:

Для Debian/Ubuntu:

Time/HiRes:

Для Fedora/CentOS:

Для Debian/Ubuntu:

Установка CSF

Для установки необходимо скачать установочный архив CSF, распаковать его и запустить установочный файл. Для этого введите следующие команды:

  • Удаляем файл с именем csf.tgz, если такой есть
  • Загружаем архив
  • Распаковываем архив
  • Заходим в распакованную директорию
  • Запускаем установочный скрипт

Установка происходит в автоматическим режиме. После её завершения необходимо проверить, имеются ли на VPS требуемые модули IPTables. Для этого введите:

Если указанная команда не даст результатов, то вместо неё введите указанную ниже:

Результат выполнения команды должен быть примерно следующим:

Обычно, указанные в выводе модули установлены на VPS по умолчанию. Если какой-либо из нужных модулей отсутствует, результаты теста об этом сообщат, после чего необходимо будет произвести установку указанных модулей, чтобы функциональность CSF не была ограничена.

Также обратите внимание, что если до установки ConfigServer Security and Firewall вы использовали другие скрипты IPtables (например, AFD или BFD), вам необходимо будет удалить их, так как они будут конфликтовать с CSF, что приведет к сбоям в работе программы. Это можно сделать с помощью команды:

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

На этом установка завершена.

Конфигурирование CSF

После установки ConfigServer Security and Firewall работает в тестовом режиме, который рекомендуется отключать только после того как будет отредактирован конфигурационный файл /etc/csf/csf.conf согласно вашим требованиям.

Открыть конфигурационный файл можно любым установленным на сервере текстовым редактором, например, nano:

В конфигурационном файле необходимо как минимум убедиться в том, что все необходимые для работы TCP и UDP порты открыты. Пример таких параметров в конфигурационном файле может быть следующим:

Все остальные параметры конфигурационного файла вы можете изменить на своё усмотрение. По завершении настройки необходимо выключить тестовый режим и сохранить изменения.

Отключение тестового режима выполняется путем изменения значения параметра TESTING в конфигурационном файле, а именно необходимо значение 1 изменить на . После этого можно сохранить изменения. В случае с редактором nano сохранение выполняется сочетанием клавиш Ctrl + O и затем Enter.

Запуск CSF

Запустить CSF можно следующими командами:

Если же Вы проводили настройки после запуска CSF, перезагрузите его, чтобы изменения вступили в силу командой:

Для того, чтобы CSF работал и после перезагрузки системы, нужно добавить его в автозагрузку. Это можно сделать следующими командами:

CentOS 7 / Fedora:

Debian / Ubuntu:

На этом установка CSF завершена.

Дополнительное конфигурирование CSF

Помимо основного конфигурационного файла csf.conf есть возможность добавить в черный, белый списки или список игнорирования. Имена файлов следующие:

csf.allow — «белый» список IP и CIDR (подсетей) адресов.

csf.deny — «черный» список IP и CIDR адресов.

csf.ignore — список IP и CIDR адресов, которые не подлежат проверке и не будут блокироваться файерволом.

csf.*ignore — различные списки игнорирования файлов, пользователей, IP адресов, которые файервол не будет блокировать и проверять.

Каждый из указанных файлов содержит в себе доступное описание того, какие возможности в нем предоставлены и как с ними работать.

Список базовых параметров запуска csf

Ниже описанные параметры используются в командной строке следующим образом:

Полную справку по CSF можно получить командой csf -h или man csf

Установка Asterisk 13 из пакетов на CentOS 7 Minimal (+ настройка и защита)

1. Создаем нового пользователя и ограничиваем настройки входа по SSH

Для начала устанавливаем редактор nano:

Установили редактор nano

Добавляем пользователя и назначаем ему новый пароль:

Читать еще:  Как в Ворде сделать обтекание картинки текстом

Добавляем нового пользователя

Редактируем /etc/ssh/sshd_config. В целях безопасности, запрещаем логин из под root’а и разрешаем вход только нашему новому пользователю:

В конце файла добавляем:

Редактируем sshd_config

После чего перезагрузим службу SSH и заходим по SSH с новым пользователем:

2. Устанавливаем и настраиваем сетевой экран

По умолчанию, в Hetzner сервер предоставляется пользователю без сетевого экрана. Займемся его установкой. Нам понадобятся права суперпользователя:

Мы добавили службу сетевого экрана в автозапуск. Установили зону «public» для интерфейса eth0. Последняя команда добавляет сервисы Asterisk в исключения для того, чтобы мы могли подключаться к АТС снаружи. Вывод команды «firewall-cmd —zone=public —list-all«

Вывод firewalld

3. Подключим репозиторий EPEL и установим libcodec2

Для установки Asterisk нам понадобится пакет «codec2«, который мы можем установить из репозитория EPEL

Установка Codec2

4. Установка Asterisk

Для начала нам понадобится wget

Установку Asterisk будем производить из пакетов по инструкции https://tucny.com/telephony/asterisk-rpms

4.1 Подключаем репозиторий

Отредактируем файл /etc/yum.repos.d/tucny-asterisk.repo и установим строку «enabled=0» в разделах [asterisk-common] и [asterisk-13]. В нашем случае мы устанавливаем Asterisk версии 13. При необходимости, в этом конфигурационном файле можно отметить нужную версию:

Редактируем tucny-astreisk.repo

4.2 Установка Asterisk с репозитория

Установка Asterisk из пакетов

4.3 Добавляем Asterisk в автозапуск, запускаем и проверяем

Статус Asterisk

sip show peers

Astrerisk 13 установлен.

5. Настройка Asterisk

В нашей тестовой конфигурации мы создадим 5 внутренних номеров от 101 до 105. И настроим внутренние звонки между ними.

Для этого в файле /etc/asterisk/sip.conf добавляем наши внутренние номера в раздел [phones]:

В поле secret устанавливаем пароль для каждого внутреннего номера соответственно. Обязательно, в продакшн серверах используйте надежные пароли! Даже если сервер разворачивается как тестовый, через время вы можете решить использовать его для работы, а пароли поменять забудете.

В файле /etc/asterisk/extensions.conf определяем контекст «internal-calls«. Полное содержание файла:

6. Проверка Asterisk

Подключим 2 номера для проверки. Для этого отлично подойдет Zoiper for Windows. Для подключения используем IP-адрес сервера, внутренний номер и пароль. После подключения с помощью команды «sip show peers» увидим пиры:

Вывод команды sip show peers

Протестируем звонок с одного номера на другой:

zoiper_incoming_call.png

Базовая настройка выполнена.

7. Защищаем сервер Asterisk с помощью Fail2Ban

Сервер Asterisk, который находится в «открытом» интернете, постоянно подвергается попыткам примитивного взлома от «ботов«, которые пытаются подобрать пароль от SSH или подлючиться к АТС. Для борьбы с ними, необходимо:

  1. Использовать сложные пароли. Обязательно!
  2. Использовать Fail2Ban, который будет временно блокировать IP-адреса, с которых осуществляется попытка взлома.

7.1 Включаем security-log в Asterisk

Включим security-лог Asterisk и настроим чтобы он записывался в отдельный файл. Кроме этого, поменяем формат даты в логах. Для этого, раскоментируем в файле «/etc/asterisk/logger.conf» 2 строки:

Перезагрузим настройки логгера Asterisk:

7.2 Установка Fail2Ban

Для установки Fail2Ban в CentOS 7 должен быть подключен репозиторий EPEL. Мы это уже сделали в предыдущих пунктах. Установим Fail2Ban и активируем в качестве службы:

7.3 Настройка Fail2Ban

Файл настроек лежит по адресу «/etc/fail2ban/jail.conf«. однако, разработчики рекомендуют использовать не его копию по адресу «/etc/fail2ban/jail.conf«, которая будет иметь приоритет. Итак:

В нашем примере на сервере используются 2 службы: SSH и Asterisk. Обе они поддерживают авторизацию и подвержены бруфорсу и требуют защиты. Найдем и отредактируем в файле «jail.local» 2 секции [sshd] и [asterisk]:

В параметр ignoreip можно вписать IP-адреса, которые блокировать не требуется (свои подсети и т. д.). Добавим в файл «jail.local«:

Сохраним файл и перезапустим службу fail2ban:

7.4 Проверка Fail2Ban

Для проверки работы можно использовать команду:

После некоторого времени, начинает появлятся первый «улов». На картинке снизу наблюдаем 3 заблокированных IP-адреса:

Установка и настройка Web-Server в CentOS 7

Для начала установим сервер MariaDB для этого в командной строке нужно выполнить:

# yum -y install mariadb-server mariadb

После установки добавляем сервер MariaDB в автозапуск:

# systemctl start mariadb.service

# systemctl enable mariadb.service

Установка Apache

Для установки веб-сервера Apache нужно выполнить команду:

# yum -y install httpd

После установки добавляем сервер Apache в автозапуск:

# systemctl start httpd.service

# systemctl enable httpd.service

В CentOS 7 используется firewall Firewall-cmd. Добавим настройку которая разрешает подключения на порт 80 (http) и порт 443 (https)

# firewall-cmd —permanent —zone=public —add-service=http

# firewall-cmd —permanent —zone=public —add-service=https

Читать еще:  Как сделать огненный текст в Фотошопе

После, откройте в браузере http://ip-address , и на экране будет отображаться стандартная страница веб-сервера Apache

По умолчанию в веб-сервере Apache корневая директория для сайтов (document root) расположена в директории /var/www/html

Конфигурационный файл (файл с настройками) веб-сервера Apache находится в файле /etc/httpd/conf/httpd.conf

Дополнительные конфигурационные файлы находятся в директории: /etc/httpd/conf.d/

Установка PHP

Для установку PHP необходимо выполнить команду:

# yum -y install php

После установки нужно выполнить перезагрузку веб-сервера apache:

# systemctl restart httpd.service

Для проверки работы PHP в корневой директории (document root) веб-сервера apache /var/www/html можно создать файл pi.php который будет содержать функцию phpinfo()

(функция phpinfo() отображает много полезной информации о настройках веб-сервера и PHP).

Для это нужно выполнить команду:

После чего в браузере можно открыть страницу:

На этой странице отображается вся необходимая информация о веб-сервере Apache и настройках PHP

Настройка поддержки MySQL в PHP

Для поддержки MariaDB в PHP нужно установить пакет php-mysql. Так же можно установить и некоторые другие пакеты для работы PHP с различными модулями, которые могут понадобится. Для этого выполним команду:

# yum -y install php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

После заверешения установки необходимы выполнить перезагрузка apache:

# systemctl restart httpd.service

Теперь можно переоткрыть страницу http://ip-address/pi.php и увидеть новую информацию.

Установка phpMyAdmin

phpMyAdmin это программа предоставляющая веб-интерфейс через который можно управлять базами данных MySQL и MariaDB

Для установки нужно выполнить инициализиацию репозитория EPEL так как в официальном репозитории CentOS 7 phpMyAdmin отсуствует.

# yum -y install epel-release

После добавления репозитория есть возможность установить phpMyAdmin:

# yum -y install phpmyadmin

После установки phpMyAdmin будет доступен по адресу: http://ip-address/phpmyadmin/

Установка WordPress

Для начала создадим директорию temp, в которую загрузим последнюю версию WordPress:

# yum install wget unzip net-tools

Далее, если вам требуется работа с изображениями, необходимо установить дополнительные плагины:

# yum -y install php-gd

# systemctl restart httpd.service

Распакуйтеzip файл WordPress в папку:

# unzip -q latest.zip -d /var/www/html/

Теперь предоставим директории соответствующие права доступа:

# chown -R apache:apache /var/www/html/wordpress

# chmod -R 755 /var/www/html/wordpress

Далее нам нужно вручную создать директорию uploads (для заливки файлов) внутри директории wp-content. Таким образом мы создадим родительскую директорию нашего контента:

# mkdir -p /var/www/html/wordpress/wp-content/uploads

Теперь необходимо разрешить веб-серверу производить запись в данную директорию. Это можно сделать, назначив владельцем группу apache. Это позволит серверу создавать файлы и другие директории внутри исходной директории, таким образом мы сможем в будущем загружать содержимое на сервер средствами движка WordPress (без FTP). Введите следующее:

# chown -R :apache /var/www/html/wordpress/wp-content/uploads

Затем нам необходимо проверить файл конфигурации, для этого нам необходимо скопировать его (за базу берётся стандартный файл примера). Тестовый файл конфигурации находится по адресу /var/www/html/wordpress:

# cp wp-config-sample.php wp-config.php

Смените значения на те, которые вы создали при инициализации баз данных.

Теперь обратимся к нашему сайту через web-интерфейс, для этого перейдем по адресу:http://ip-address/wordpress/wp-admin/install.php:

Сначала выберите язык и нажмите Continue:

Далее задайте значения для вашего сайта, в нашем случае зададим следующее:

Значения могут отличаться, вы можете задать любые значения по вашему выбору. После этого нажмите Install WordPress:

Далее мы попадаем на страницу входа, введите ваши имя пользователя и пароль и затем нажмите LogIn.

Необходимо предоставить пару имя/пароль, которые мы выбрали при установке WordPress.

Далее появится стандартное окно приветствия WordPress. В браузере также можно проверить текущую версию WordPress.

Установка и настройка сервера времени в Centos 7

Наверняка всем известно, что правильно настроенное время – это важная и неотъемлемая часть, которую необходимо выполнять при первоначальной настройке сервера. В противном случае можно столкнуться с проблемами. Например, когда в логах разное время, или же когда не может пройти аутентификация в приложении из-за разницы времени на сервере и клиенте всего в одну секунду. На самом деле список проблем может быть куда больше.

Чтобы избежать всякого рода проблем, необходимо разобраться, как правильно настраивается время на сервере с Linux.

В качестве сервера, на котором выполняется всё нижеописанное, будет Centos 7. Также подойдет любой другой дистрибутив Linux.

Реализация NTP-протокола

Network Time Protocol – протокол сетевого времени, актуальная версия на момент написания статьи – v4, описан в rfc5905. Для работы с данным протоколом используются различные реализации. Самыми известными и популярными являются NTPD и Chrony. О них следует кратко рассказать, в чём отличия. Есть также openntpd, но он не столь популярен.

Читать еще:  Скачать GrandMan последнюю версию

Одна из старых реализаций протокола NTP, по умолчанию используется в Centos 7. Весьма рабочий и надёжный инструмент, если необходимо настроить простой сервер времени или клиента.

Chrony

А реализация chrony является более новой со своими преимуществами, поэтому уже в Centos 8 используется по умолчанию, а ntpd и вовсе отсутствует.

В Red Hat рекомендуют переходить на chrony, они даже запилили python-скрипт, который может сконвертировать текущую конфигурацию ntpd для chrony. Но в данном случае лучше обойтись ручной настройкой.

Почему всё же для сервера времени предпочтительнее использовать chrony, вместо ntpd? Ответ прост. Chrony может синхронизировать системные часы быстрее с большей точностью времени и особенно полезен для систем, которые не всегда находятся в сети. В целом и общем, если нужно просто настроить клиентапростой сервер, подойдёт любая реализация, но если идти в ногу со временем и следовать рекомендациям, то выбор за chrony — быстрее, выше, сильнее.

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

Установка и настройка chrony в качестве сервера

Установка проста и пакет chrony версии 3.4 доступен из базового репозитория:

Конфигурационный файл располагается по пути /etc/chrony.conf. Минимально рабочий конфиг

  1. В поле server указываются вышестоящие серверы времени, с которыми необходимо производить синхронизацию. Здесь предпочтительнее указать близлежащие серверы. Например, серверы провайдера или же публичные серверы проекта pool.ntp.org более близкого региона. Последний вариант как раз и используется в данном случае – серверы расположены в РФ.
  2. директива allow указывает подсети, которые могут запрашивать время для синхронизации
  3. директива driftfile задает путь до файла, в котором располагаются данные с историей изменения времени. Это необходимо на тот случай, если вышестоящие серверы времени станут недоступны. Тогда системные часы будут брать значения как раз-таки из driftfile.
  4. local stratum 10. Серверы NTP работают на основе иерархии. Это и есть stratum. Уровень stratum 0 – это максимально точные часы (атомные или GPS, например). Серверы stratum 1 – это серверы, синхронизирующие своё время с серверами stratum 0. А серверы stratum 2 синхронизируются с серверами со stratum 2. Ну, и так далее до 15. Обычно указывается значение stratum 10.
  5. makestep 1.0 3. Метод корректировки системных часов, когда разница разница очень большая и время корректировки может быть достаточно долгим. Для этого данная директива позволяет изменять часы, если превышено пороговое значение в 1 секунду. Но только в том случае, если с момента запуска демона не было больше обновлений времени, чем указанный предел, т.е. синхронизация была выполнена всего 3 раза.
  6. директива rtcsync информирует ядро ОС о том, что системные часы синхронизированы, и ядро будет обновлять часы реального времени (RTC) каждые 11 минут.
  7. logdir /var/log/chrony – путь до логов, можно не указывать. Все логи будут попадать в /var/log/messages.

Теперь, когда минимально рабочий конфиг подготовлен, можно запускать демона chronyd. Так же отключается ntpd, если используется:

На сервере должен быть настроен firewall, чтобы пропускать UDP-трафик от клиентов.

Настройка клиента chrony

Установка chrony для клиента ничем не отличается от сервера:

Только в конфигурационном файле /etc/chrony.conf будут некоторые различия:

В поле server уже необходимо указать адрес ntp-сервера, настроенного выше.

Теперь остаётся также отключить ntpd при его наличии и запустить демон chronyd:

Управление временем и анализ данных

Сервер и клиент настроен, но может возникнуть логичный вопрос: как понять, что chrony работает и работает правильно?

Для ответа на вопрос выше есть утилита chronyc (аналог ntpq). Но при использовании systemd есть также команда timedate:

На выходе можно увидеть следующее время:

  1. локальное
  2. UTC
  3. RTC
  4. Timezone

И также интересный момент – после запуска chrony на клиенте, NTP synchronized должен быть в состоянии “yes”. Таким образом можно вручную управлять chrony и синхронизацией времени, включая или отключая:

Для включения синхронизации достаточно выполнить обратное действие: timedatectl set-ntp 1 . В syslog можно увидеть, что появились записи о синхронизации времени.

Использование timedatectl set-ntp является первым самым простым способом ручной (manual) синхронизации времени. Вторым же способом является использование утилиты chronyc:

И самое интересное – это интерпретация работы chrony и получение статистики. Для этого есть команда chronyc sources . Команда является аналогом ntpq -pn и её результаты наиболее вероятно будут нужны в случае выяснения каких-либо проблем со временем. Результат выполнения и интерпретация следующие:

Ссылка на основную публикацию
Adblock
detector
×
×