Первое, что вы должны сделать после установки CentOS 7, — это настроить приличный брандмауэр. Обычный брандмауэр, который предустановлен в CentOS, называется iptables — и, хотя это очень тщательное решение, он обычно ориентирован на более опытных пользователей, и из-за более крутой кривой обучения он может чувствовать себя не интуитивно понятным для начала работы. Вот почему мы рекомендуем стороннее решение под названием ConfigServer Security & Firewall (CSF). Он бесплатный, с открытым исходным кодом и является одним из лучших способов управления потребностями вашего брандмауэра в CentOS.
В этой статье мы подробно расскажем, как устанавливать, настраивать и блокировать порты с помощью CSF. В этой статье рассматривается установка CSF на CentOS 7 VPS.
Пакет CSF использует Perl для некоторых своих функций. Итак, сначала мы должны убедиться, что Perl установлен, выполнив следующую команду:
yum list installed perl
Если он не установлен, вы можете установить его, набрав:
sudo yum install perl
Теперь мы можем продолжить установку CSF.
Вы можете использовать нашу команду ниже, чтобы напрямую загрузить и извлечь последнюю версию CFS, используя их текущую прямую ссылку для скачивания. Если ссылка изменится, посетите веб-страницу CFS для получения последней ссылки для загрузки CSF. Вы должны найти это здесь, вот так:
Скопируйте ссылку. Теперь мы можем скачать и извлечь все это одновременно, например так:
wget -qO- https://download.configserver.com/csf.tgz | tar xvz
Это создаст новую папку с именем «csf». Перейдите в него:
cd csf
И установить пакет:
sudo sh install.sh
Установка должна завершиться быстро. Теперь мы можем активировать скрипт, который сообщает нам, что CSF готов к установке. Он проверит настройки нашей системы и сообщит нам, все ли в порядке:
perl /usr/local/csf/bin/csftest.pl
Перво-наперво — прежде чем активировать какое-либо брандмауэрное решение, вам необходимо убедиться в двух вещах:
Для этого откройте файл конфигурации CSF /etc/csf/csf.conf в предпочитаемом вами текстовом редакторе. Например:
nano /etc/csf/csf.conf
Теперь прокрутите вниз до строки под названием «TCP_IN». Это список портов через запятую, доступ к которым разрешен. Большинство из них уже занесены в белый список, например, для HTTP и HTTPS. Однако обратите внимание, что последний порт — «7022»:
«7022» — это настраиваемый порт SSH, настроенный на этом сервере. Итак, CSF выполнил свою работу и автоматически добавил ее в список разрешенных портов.
CSF также включает в себя демон входа в систему, который следит за повторными попытками проникновения на ваш сервер. Служба вызывается lfd
, и мы должны включить ее, установив для переменной «TESTING» значение «0» в файле конфигурации CSF.
Сохраните изменения, и теперь CSF настроен и готов к работе.
Чтобы запустить CSF и позволить ему работать магически, нам нужно использовать следующую команду:
systemctl start csf
И мы можем проверить статус следующим образом:
systemctl status csf
Теперь давайте проверим это.
Последняя версия Windows поставляется с PowerShell. Вы можете использовать его, чтобы проверить, открыт ли порт на удаленном хосте. Допустим, мы хотим проверить номер порта 7022 (SSH на этом сервере), мы можем сделать это так:
Test-NetConnection -ComputerName 206.196.115.159 -Port 7022
(Не забудьте заменить IP-адрес тем, который назначен вашему серверу)
Эта команда должна заканчиваться сообщением “success” или “failure”, например:
Вы можете использовать это, чтобы проверить, работает ли CSF как следует. Проверьте несколько портов и добавьте несколько новых в переменную «TCP_IN» в файле конфигурации CSF, чтобы увидеть, все ли работает должным образом.
Если это так, то поздравляем! Вы успешно настроили CSF на вашем CentOS VPS.
Поправьте меня, если я не прав, в CentOS 7 уже есть встроенный брандмауэр Firewall и SELinux и они неплохо справляются со своими задачами, я к ним уже привык и достаточно свободно ориентируюсь. Или я что-то не понимаю? Дело в том, что я довольно долго (более 25 лет) работал сисадмином в сетях под Windows а Linux изучаю самостоятельно, после выхода на пенсию. Спасибо. Николай.
SELinux для многих сложноват в настройках, IPTables прост, а так в качестве самообразования можно и его изучить
Это понятно, но в CentOS есть SELinux и хотелось бы его использовать. Пока перевожу руководство по нему, настройку для Samba и SSH уже освоил, но в руководстве более сотни политик и неизвестно, какие мне могут понадобиться для работы. А во всех описаниях настройки сервера, пока видел только как отключить SELinux. Пока хватает настроек для Samba и SSH. Не думаю, что периодическая проблема с Samba связана с настройками SELinux, отключал и Firewall и SELinux, проблема всё равно остаётся. Пока развернул на сервере Ubuntu 18.04.2, уже почти неделю работает без проблем, хотя подключение через Samba на сервере с CentOS пропадало примерно раз в два дня, и, что интересно, с рабочей станции под Linux, с рабочей станции под Windows, было только увеличение времени подключения к ресурсу сервера. Пока USB_HDD с CentOS отключил и работаю с Ubuntu также с USB_HDD, месяц потестирую систему, а потом переведу на SATA. Хотя очень хотелось бы запустить на сервере CentOS. Чуть не забыл, с CentOS на сервере была ещё одна проблема, ни с того, ни с сего он переводил один, или несколько разделов в режим «Только чтение», причём, иногда даже в процессе копирования файла и эту проблему тоже не решил, тестировал диски, ошибок нет, отключал опцию errors=remount-ro, не помогает. Самое сложное в том, что обе проблемы возникают периодически.