Настройка CentOS 7 для сервера 1С 8.3. Centos 7 настройка selinux
Как отключить SELinux на CentOS 7
Кто может — грабит, кто не может — ворует (Д.И. Фонвизин).
SELinux ( Security Enhanced Linux ) – это модуль безопасности ядра Linux, который позволяет администраторам и пользователям контролировать элементы управления доступом. Он обеспечивает доступ на основе правил политики SELinux.Правила политики SELinux определяют, как процессы и пользователи взаимодействуют друг с другом, а также как взаимодействуют процессы и пользователи с файлами.
Если не существует правила политики SELinux, которое специально разрешает доступ, например, для процесса открытия файла, доступ запрещен.
SELinux имеет три режима:
- Enforcing: SELinux разрешает доступ на основе правил политики SELinux.
- Permissive: SELinux регистрирует только те действия, которые были бы лишены, если они будут работать в режиме принудительного исполнения.
- Disabled: политика SELinux не загружена.
По умолчанию в CentOS 7 SELinux включен и находится в режиме принуждения.
Рекомендуется сохранять SELinux в режиме принудительного исполнения, но в некоторых случаях вам может потребоваться установить его в разрешающем режиме или полностью отключить его.
В этом уроке мы покажем вам, как отключить SELinux для систем CentOS 7.
Предпосылки
Прежде чем начать с учебника, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Проверьте состояние SELinux
Чтобы просмотреть текущее состояние SELinux и политику SELinux, используемую в вашей системе, вы можете использовать команду sestatus:
SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 31
Выше видно, что SELinux включен и установлен в режим принудительного исполнения.
Отключить SELinux
Вы можете временно изменить режим SELinux с targetedна permissiveс помощью следующей команды:
Однако это изменение будет действительным только для текущего сеанса выполнения.
Чтобы навсегда отключить SELinux в вашей системе CentOS 7, выполните следующие действия:
- Откройте файл /etc/selinux/config и установите для SELINUX в режим disabled: # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
- Сохраните файл и перезагрузите систему CentOS с помощью команды:
- Как только система загрузится, проверьте изменение с помощью команды sestatus:
Результат должен выглядеть следующим образом:
SELinux status: disabled
Вывод
В этой статье вы узнали, как навсегда отключить SELinux на машине CentOS 7.
Если у вас есть какие-либо вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Просмотров: 27
Если статья понравилась, то поделитесь ей в социальных сетях:
andreyex.ru
Как отключить SELinux на CentOS
Как отключить SELinux на CentOS
Security- Enhanced Linux (SELinux) является особенностью механизма в Linux, что обеспечивает поддержку политик безопасности контроля доступа.
SELinux может создавать правила обращения юзерам или утилитам что дает возможность ограничить некоторые возможности доступа утилит, задав эти возможности и их поведения в виде правил, а ОС с использованием SELinux будет смотреть за соблюдением данных правил. В этой теме я расскажу как выключить или включить SELinux на CentOS. На некоторых из дистрибутивах SELinux включен по умолчанию, что может вызвать некоторые нежелательные действия с его стороны, если вы не понимаете как SELinux работает или как его настроить.
Чтобы отключить SELinux можно использовать любые из 4-х различных методов, упомянутых в этой статье.
SELinux будет применять политики безопасности в том числе обязательного контроля доступа который определен в Linux Kernel. Каждые файлы и процессы в системе будут помечены определенными ярлыками, которые будут использоваться в SELinux. Вы можете использовать команду и просматривать эти ярлыки, как показано ниже:
Это не полный список который я привел, он может быть другой у вас.
1-й метод отключения SELinux на CentOS. Временно.
Чтобы отключить SELinux временно необходимо изменить /selinux/enforce, как показано ниже. Обратите внимание, что этого параметра уже не будет после перезагрузки системы.
И так, проверим какое состояние имеет SELinux на сервере:
# cat /selinux/enforce 1Или, можно использовать:
# /usr/sbin/sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: enforcing Policy version: 24 Policy from config file: targetedЭто означает что он включен. Чтобы выключить, используем следующую команду:
# echo 0 > /selinux/enforceИ, снова проверяем:
# cat /selinux/enforce 0- 1 (включить).
- 0 (отключить).
Вы также можете использовать команду setenforce, как показано ниже, чтобы отключить SELinux. Вот пример выполнения этой команды:
# setenforce 0Или, предоставлю еще один вариант использования:
# setenforce PermissivePS: Для проверки, служит еще одна замечательная команда:
# getenforce Permissive2-й метод отключения SELinux на CentOS. Раз и навсегда!
Проверим состояние SELinux на CentOS.
# sestatusпроверка статуса selinux с помощью sestatus
# cat /etc/selinux/configУ меня он включен, я хочу его выключить, то для этого нужно открыть конфиг и прописать:
# vim /etc/selinux/configНужно найти:
SELINUX=enabledЗаменить на:
SELINUX=disabledКак показано на следующем скриншоте:
После чего нужно перезапустить нашу ОС:
# reboot3-й метод. Отключение SELinux в самом загрузчике Grub.
Если вы не можете найти /etc/selinux/config на вашей системе, вы можете передать отключить SELinux путем передачи параметра в загрузчик GRUB, как показано ниже.
Отключение SELinux в самом загрузчике граб в grub.conf
4-й метод. Отключение только конкретной услуги в SELinux — HTTP / Apache
Если вы не заинтересованы в отключении всего SELinux, вы также можете отключить SELinux только для конкретной услуги. Например, вы хотите отключить SELinux для обслуживания HTTP / Apache, то нужно изменить переменную httpd_disable_trans в файле /etc/selinux/targeted/booleans.
Установите переменную httpd_disable_trans в 1, как показано ниже.
Установите значение 1 или 0 с помощью команды setsebool как показано ниже, после нужно перезапустить службу HTTP.
# setsebool httpd_disable_trans 1 # service httpd restartНа этом я завершу свою тему «Как отключить SELinux на CentOS».
linux-notes.org
Настройка SELinux | Losst
Security-Enhanced Linux (SELinux) - это новый метод контроля доступа в Linux на основе модуля ядра Linux Security (LSM). SELinux включен по умолчанию во многих дистрибутивах на основе Red Hat, использующих пакетную базу rpm, например, Fedora, CentOS, OpenSUSE и т д.
В этой статье будет рассмотрена настройка SELinux, мы не будем трогать создание новых политик, а постараемся подойти к системе с другой стороны, посмотреть чем она может быть полезна обычному пользователю Linux, рассмотрим основы ее работы, включение, отключение и изменение состояний.
Основы SELinux
SELinux представляет собой систему маркировки, каждый процесс имеет метку. Каждый файл, каталог или даже пользователь в системе имеет метку. Даже портам и устройствам и именам хостов в системе присвоены метки. SELinux определяет правила доступа процесса к объектам с определенными метками. Это и называется политикой. За соблюдением правил следит ядро. Иногда это еще называется обязательный контроль доступа (Mandatory Access Control, MAC)
Владелец файла не имеет полной свободы действий над атрибутами безопасности. Стандартные атрибуты контроля доступа, такие как группа и владелец ничего не значат для SELinux. Полностью все управляется метками. Значения атрибутов могут быть установлены и без прав root, но на это нужно иметь специальные полномочия SELinux.
Теперь поговорим немного о политиках. Мы определяем метку для процессов определенного типа, а также на объекты файловой системы тоже определенного типа. Вот представьте, себе систему, в которой объекты (процессы) это кошки и собаки. Это типы процессов. И у нас есть объекты, к которым они хотят иметь доступ - еда. Но еда у них разная еда_котов и еда_собак. Нужно чтобы объекты имели доступ только к своей еде.
У собаки есть разрешение есть свою пищу, а у кошки - свою. В политиках SELinux это будет выглядеть вот так:
разрешить кошке корм_кошек есть
разрешить собаке корм_собак есть
Теперь ядро будет следить, чтобы соблюдались эти правила. В системе SELinux все по умолчанию запрещено, таким образом, если собака попытается съесть кошачий корм, ядро не позволит это сделать.
Допустим, процесс Apache имеет метку httpd_t, а файлы, к которым у Apache должен быть доступ мы назвали httpd_sys_content. Также у нас есть данные кредитных карт, которые хранятся в базе данных mysql. Если хакер взломает процесс Apache и у него будет root доступ, то он все равно не сможет получить доступ к файлам от mysql.
В системе довольно часто встречаются процессы с одинаковыми типами. Чтобы это обойти, и настроить полномочия для разных процессов одного типа была придумана система категорий безопасности Multi Category Security (MCS). Мы можем добавить к объекту категорию, и настраивать полномочия уже в зависимости от этой категории.
SELinux может вызвать у системных администраторов большое количество проблем, многие ее просто отключают, таким образом, решив проблему и уменьшив безопасность. Как уже говорилось выше, по умолчанию SELinux блокирует все и вся. Это подходит под описание строгой политики. Но чтобы облегчить системным администраторам работу, были разработаны другие стандартные политики. Во многих дистрибутивах используется целевая политика (targeted), она охватывает около 200 сетевых служб и процессов, все же остальные программы запускаются и работают свободно, к ним никакие модели SELinux не применяются.
SELinux может работать в трех режимах - отключен, система полностью отключена и не работает, режим ограничений Enforcing - программа активирована и блокирует все не соответствующие политикам действия и третий режим Permissive - только фиксировать нарушения.
Теория в общих чертах рассмотрена. А теперь перейдем к практической части.
Настройка SELinux
Система SELinux предустановлена вместе с дистрибутивом в системах ,основанных на Red Hat, скорее всего, там уже все компоненты установлены, но в Ubuntu и других подобных дистрибутивах придется все делать самому. Для установки SELInux в Ubuntu выполните команду:
sudo apt-get install selinux
После завершения установки, систему необходимо будет перезагрузить для применения всех настроек, поскольку будет перезаписан файл конфигурации Grub, для передачи необходимых параметров ядру.
После перезагрузки мы можем посмотреть состояние SELinux:
sestatus
SELinux status: enabledSELinuxfs mount: /sys/fs/selinuxSELinux root directory: /etc/selinuxLoaded policy name: ubuntuCurrent mode: permissiveMode from config file: permissivePolicy MLS status: enabledPolicy deny_unknown status: allowedMax kernel policy version: 29
Здесь мы видим, что система включена SELinux status: enabled, Текущий режим Current mode - permissive, то есть мы будем только получать сообщения о нарушениях в логе. Используемая сейчас политика - Ubuntu.
Сейчас давайте включим активный режим, для этого выполните команду:
sudo setenforce 1
Отключить активный режим можно передав в ту же команду 0:
sudo setenforce 0
Посмотреть используемый сейчас режим тоже можно подобной командой:
getenforce
Вся основная настройка SELinux выполняется через файл /etc/selinux/config. Здесь можно как полностью отключить selinux, так и настроить используемую политику безопасности.
sudo vi /etc/selinux/config
Этот параметр означает режим работы SELinux, вы можете указать здесь один из трех параметров enforce, permissive и disabled
SELINUX=permissive
Используйте disabled чтобы полностью отключить SELinux или любой другой, чтобы включить SELinux обратно. Этот режим будет применяться по умолчанию при старте системы.
Настройка SELinux политик выполняется тоже в этом файле. За политику отвечает параметр SELINUXTYPE:
SELINUXTYPE=ubuntu
Вы можете ссылаться на любую политику, расположенную в каталоге /etc/selinux.
Могут использоваться три основные политики:
- targeted (или здесь ubuntu) защищает основные системные сервисы, например, веб-сервер, DHCP, DNS, но не трогает все остальные программы.
- minimum - это политика для экспериментов, основана на targeted, но ее правила не включены по умолчанию, вы можете включать и отключать когда нужно также часто используется на мобильных устройствах.
- strict - самая строгая политика, управляет не только сетевыми службами, но и программами пользователя.
- mls - содержит не только правила, но и различные уровни безопасности. Она позволяет реализовать многоуровневую систему безопасности на основе SELinux.
Политики в Ubuntu необходимо устанавливать отдельно, для targeted и strict установите пакет:
sudo apt-get install selinux-policy-default
Для применения политики необходимо перезагрузить компьютер, и желательно чтобы SELinux во время этой перезагрузки был в режиме аудита (permissive). Также, чтобы система обновила все метки в файловой системе, возможно, придется создать пустой файл в корне:
sudo vi ~/.autolabel
Хотите почувствовать всю мощь и заодно недостатки SELinux? Установите значение SELINUXTYPE в strict, и перезагрузите систему:
SELINUXTYPE=default
Только смотрите, чтобы SELinux работал в режиме permissive, иначе быть беде. Политика default реализует и targeted и strict, чтобы получить strict необходимо просто выгрузить модуль unconfined:
sudo semoule -r unconfined
Затем запускаем активный режим:
sudo setenforce 1
Ну а теперь можете попробовать почитать системные журналы, или включить обратно режим аудита. Ничего не работает? Правильно SELinux блокирует любые неразрешенные действия. У меня окно терминала сразу было закрыто и я больше не мог управлять своей системой. Чтобы получить обратно управление над своим компьютером его необходимо перезагрузить.
Теперь вы знаете как включить, отключить SELinux, а также как поменять политику или режим работы программы. Все остальное выходит за рамки нашей небольшой статьи.
Оцените статью:
Загрузка...losst.ru
CentOS 7 — базовая настройка безопасности — Персональный IT-блог
В данной статье будет описано, как настроить свежую систему для безопасной работы. Особенно актуально для тех, кто собирается хостить что-то либо на своей машине, либо открывать доступ к компьютеру извне. Итак, начнем.
SELinux
SELinux — это реализация системы принудительного контроля доступа, которая может работать параллельно с классической избирательной системой контроля доступа. Весьма полезный инструмент для гибкой и точной настройки безопасности. Многие считают, что его нужно сразу отключать и не использовать вообще. В этой статье мы не будем рассматривать его конфигурирование. Временно отключим SELinux, материала о его настройке достаточно для отдельной статьи.
Файл конфигурации находится в /etc/sysconfig/selinux. Открываем его текстовым редактором и правим строчку:
#nano /etc/sysconfig/selinux SELINUX = Enforcing DisabledТем самым вы переведете режим работы SELinux в «отключить». Для применения настройки необходимо перезагрузиться командой:
#systemctl rebootFirewalld
Firewalld предоставляет функциональность динамически управляемого брандмауэра с поддержкой сетевых зон, призванных определить уровень доверия для сетевого соединения или интерфейса. Он имеет поддержку настройки межсетевого экрана IPv4, IPv6 и сетевых мостов, а также разделяет среду выполнения и параметры конфигурации. Firewalld также имеет интерфейс для добавления правил брандмауэра непосредственно из служб и приложений.
По умолчанию Firewalld включен, а все порты считаются закрытыми. Если вам необходимо открыть какой-либо порт, воспользуйтесь командой:
#firewall-cmd --permanent --zone=public --add-port=80/tcpВ данном случае 80 — номер порта, который необходимо открыть (подставьте нужный). Порты будут открытыми до тех пор, пока вы их сами не закроете, или пока не отключите Firewalld. Firewalld отключается командами:
#systemctl stop firewalld #systemctl disable firewalldНо делать это категорически не рекомендую, особенно, если вы собираетесь открывать доступ к серверу извне. В целях безопасности, доступ по SSH открывают на нестандартном порту. Выберите свой порт, и пропишите новое правило в Firewalld:
#firewall-cmd --permanent --zone=public --add-port=12345/tcpТо же самое необходимо проделать для каждого порта, который вы планируете держать открытыми. Если какой-либо порт уже не будет использоваться вами в будущем, лучше всего его закрыть командой:
#firewall-cmd --permanent --zone=public --remove-port=12345/tcpFail2ban
Fail2ban — это система для защиты сервера от брутфорс-атак (атаки с перебором пароля). Принцип работы заключается в том, что если в течение определенного времени было n неудачных попыток авторизации, то ip-адрес, с которого были предприняты попытки авторизации заносится в бан-лист. Данная система просто необходима, т.к. без него к вашему серверу могут получить доступ. Fail2ban следит за указанными портами, например SSH — 22 (стандартный, желательно изменить на свой). Fail2ban настраивается через конфигурационный файл. Ниже инструкция о том, как установить и настроить Fail2ban.
Для начала необходимо подключить репозиторий EPEL, пакет Fail2ban находится там. Делаем это командой:
#rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpmДалее устанавливаем:
#yum install fail2banПосле установки производим настройку Fail2ban. Конфигурационный файл находится здесь — /etc/fail2ban/jail.conf, но, как сказано в комментариях в его начале, данный файл рекомендуется не изменять, вместо этого нужно создать локальную копию /etc/fail2ban/jail.local. И в дальнейшем править конфигурацию именно в нем.
#cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local #nano /etc/fail2ban/jail.localКонфигурационный файл содержит множество секций, сначала обратим внимание на [Default]. В данной секции указаны настройки по умолчанию, если Fail2ban настроен для работы различных сервисов и там не прописаны правила для них, то параметры будут браться отсюда. Приведу пример настроек:
ignoreip = 127.0.0.1/8 192.168.1.10/24 bantime = 900 findtime = 600 maxretry = 6ignoreip — означает, какие ip-адреса будут игнорироваться при отслеживании. Указываем здесь localhost, а также, через пробелы вы можете указать дополнительные ip-адреса, например адрес другого вашего компьютера в локальной сети, за которым вы постоянно работаете. Можно также указывать внешние ip-адреса, но, в таком случае, безопасность снижается.
bantime — время, на которое указанный ip-адрес попадет в бан-лист. Время указывается в секундах. Для постоянного бана достаточно указать любое отрицательное число.
findtime — время, в течение которого после неверной попытки авторизации будет производится слежение за данным ip-адресом. Если за время findtime совершится maxretry попыток неудачной авторизации, то ip-адрес попадет в бан-лист.
maxretry — максимальное количество неверных попыток авторизации за время findtime. При достижении этого порогового значения ip-адрес будет занесен в бан-лист.
Далее спускаемся ниже и находим раздел JAILS, в нем описывается, какие сервисы и порты нужно мониторить, и что с ними делать в случае срабатывания защиты. Также в каждой секции можно определить свои параметры bantime, findtime, maxretry, а если они не указаны, то параметры берутся из секции [Default]. Ищем интересующие нас секции и редактируем их, мы настроим слежение за сервисом SSH. Для этого переходим к секции [sshd], дописываем в нее строчку «enabled = true», и меняем порт на назначенный нами ранее:
[sshd] enabled = true port = 12345 action = iptables-multiport[name=SSH,port=12345] logpath = %(sshd_log)sЗапускаем сервис fail2ban и добавляем его в автозагрузку:
#systemctl start fail2ban #systemctl enable fail2banНа этом базовая настройка безопасности заканчивается. Теперь можно спокойно открывать доступ к серверу по SSH. Если какой-либо злоумышленник попытается использовать брутфорс для получения доступа к вашему серверу по SSH, то у него ничего не выйдет — его ip-адрес будет блокироваться. Все остальные порты защищены с помощью firewalld.
ishankulov.ru
Первичная настройка сервера CentOS 7 — AdminCorner
Перед началом работы на сервере требуется выполнить ряд действий что бы работа на нем была комфортна и безопасна. Каким бы функционалом не обладал сервер в итоге, вам придется настроить сеть, правильное время и ряд других утилит. В этой теме я постараюсь максимально изложить свое видение того, что нужно настраивать в первую очередь.
У нас в наличии:
# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
# uname -a Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
Базовая настройка CentOS 7
Если при попытке выполнить команду sudo из под пользователя получаем ошибку:
%user% is not in the sudoers file. This incident will be reported
%user% is not in the sudoers file. This incident will be reported |
Это значит что пользователь не включен в список /etc/sudoersДобавляем себя в список:
и дописываем строчку:Ins включает и отключает режим редактирования. Для выхода используем Esc -> :wq
где %user% имя вашего пользователя
Теперь обновляем систему
Для удобства установим mc (Midnight Commander)
В минимальной версии если посмотреть настройки через ifconfig получаем ошибку:
bash: ifconfig: команда не найдена
bash: ifconfig: команда не найдена |
Альтернативой является ip addr которая и реализована в дистрибутиве. Для удобства и по привычки предпочтительнее установить пакет сетевых утилит:
yum -y install net-tools.x86_64
yum -y install net-tools.x86_64 |
При попытке использовать nslookup будет вывод:
nslookup bash: nslookup: команда не найдена
nslookup bash: nslookup: команда не найдена |
Поэтому устанавливаем ее:
yum -y install bind-utils
yum -y install bind-utils |
Отключаем SELinux:
Данное решение временное и действует до следующей перезагрузки.Отключаем перманентно:
nano /etc/sysconfig/selinux
nano /etc/sysconfig/selinux |
Выставляем значение disabledSELINUX=disabled
После данных манипуляций требуется перезагрузка:
Ее можно выполнить позже т.к. SELinux уже отключен.
Настройка сетевых параметров
Для настройки сетевых параметров интерфейса смотрим его идентификатор.
# ifconfig ens192: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168.0.246 netmask 255.255.255.0 broadcast 192.168.0.255 .....
# ifconfig ens192: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168.0.246 netmask 255.255.255.0 broadcast 192.168.0.255 ..... |
В данном случае он называется: ens192. Теперь открываем файл /etc/sysconfig/network-scripts/ifcfg-ens192
# nano /etc/sysconfig/network-scripts/ifcfg-ens192
# nano /etc/sysconfig/network-scripts/ifcfg-ens192 |
и видим примерно следующее:
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens192 UUID=f21af057-64e7-47cd-8cf4-6da91a57164c DEVICE=ens192 ONBOOT=yes
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens192 UUID=f21af057-64e7-47cd-8cf4-6da91a57164c DEVICE=ens192 ONBOOT=yes |
Для того что бы задать статический ip адрес изменяем параметры:BOOTPROTO — с dhcp на noneDNS1 — указали dns серверIPADDR0 — настроили статический ip адресPREFIX0 — указали маску подсетиGATEWAY0 — настроили шлюз по-умолчаниюу меня получилось так:
BOOTPROTO=none DNS1=77.88.8.8 IPADDR0=192.168.0.94 PREFIX0=255.255.255.0 GATEWAY0=192.168.0.1
BOOTPROTO=none DNS1=77.88.8.8 IPADDR0=192.168.0.94 PREFIX0=255.255.255.0 GATEWAY0=192.168.0.1 |
Перезагружаем интерфейс
# systemctl restart network
# systemctl restart network |
Проверяем, применились ли новые настройки:
ens192: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168.0.94 netmask 255.255.255.0 broadcast 192.168.0.255 .....
ens192: flags=4163 UP,BROADCAST,RUNNING,MULTICAST mtu 1500 inet 192.168.0.94 netmask 255.255.255.0 broadcast 192.168.0.255 ..... |
Настраиваем FireWall
По умолчанию iptables запущен. Что бы посмотреть его настройки, нужно ввести команду:
ВНИМАНИЕ! Без физического доступа к серверу настраивать firewall очень плохая затея.В CentOS 7 вместо привычного iptables был создан новый инструмент firewalld. По факту это просто надстройка над iptables со своим синтаксисом. Так и не понял зачем было все так усложнять. Возвращаемся к привычному виду конфигурации firewall. Для этого полностью отключаем firewalld
# systemctl stop firewalld # systemctl disable firewalld # Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. # Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.</code>
# systemctl stop firewalld # systemctl disable firewalld # Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. # Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.</code> |
Устанавливаем утилиты для iptables:
# yum install iptables-services -y
# yum install iptables-services -y |
Добавляем iptables в автозапуск:
# systemctl enable iptables
# systemctl enable iptables |
Создаем правила /etc/iptables_rules.shследующие настройки взяты с просторов интернета
#!/bin/bash # Объявление переменных export IPT="iptables" # Интерфейс который смотрит в интернет export WAN=eth0 export WAN_IP=149.154.71.205 #Разрешаем доступ SSH $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Очистка всех цепочек iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Установим политики по умолчанию для трафика, не соответствующего ни одному из правил $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # разрешаем локальный траффик для loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Разрешаем исходящие соединения самого сервера $IPT -A OUTPUT -o $WAN -j ACCEPT # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. # Пропускать все уже инициированные соединения, а также дочерние от них $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, а так же уже инициированные и их дочерние соединения $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для уже инициированных и их дочерних соединений $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Отбрасывать все пакеты, которые не могут быть идентифицированы # и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Приводит к связыванию системных ресурсов, так что реальный # обмен данными становится не возможным, обрубаем $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Открываем порт для ssh $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Открываем порт для DNS $IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT # Открываем порт для NTP $IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT # Логирование # Все что не разрешено, но ломится отправим в цепочку undef $IPT -N undef_in $IPT -N undef_out $IPT -N undef_fw $IPT -A INPUT -j undef_in $IPT -A OUTPUT -j undef_out $IPT -A FORWARD -j undef_fw # Логируем все из undef $IPT -A undef_in -j LOG --log-level info --log-prefix "-- IN -- DROP " $IPT -A undef_in -j DROP $IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP " $IPT -A undef_out -j DROP $IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP " $IPT -A undef_fw -j DROP # Записываем правила /sbin/iptables-save > /etc/sysconfig/iptables
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #!/bin/bash # Объявление переменных export IPT="iptables" # Интерфейс который смотрит в интернет export WAN=eth0 export WAN_IP=149.154.71.205 #Разрешаем доступ SSH $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Очистка всех цепочек iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Установим политики по умолчанию для трафика, не соответствующего ни одному из правил $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # разрешаем локальный траффик для loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Разрешаем исходящие соединения самого сервера $IPT -A OUTPUT -o $WAN -j ACCEPT # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. # Пропускать все уже инициированные соединения, а также дочерние от них $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, а так же уже инициированные и их дочерние соединения $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для уже инициированных и их дочерних соединений $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Отбрасывать все пакеты, которые не могут быть идентифицированы # и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Приводит к связыванию системных ресурсов, так что реальный # обмен данными становится не возможным, обрубаем $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Открываем порт для ssh $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Открываем порт для DNS $IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT # Открываем порт для NTP $IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT # Логирование # Все что не разрешено, но ломится отправим в цепочку undef $IPT -N undef_in $IPT -N undef_out $IPT -N undef_fw $IPT -A INPUT -j undef_in $IPT -A OUTPUT -j undef_out $IPT -A FORWARD -j undef_fw # Логируем все из undef $IPT -A undef_in -j LOG --log-level info --log-prefix "-- IN -- DROP " $IPT -A undef_in -j DROP $IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP " $IPT -A undef_out -j DROP $IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP " $IPT -A undef_fw -j DROP # Записываем правила /sbin/iptables-save > /etc/sysconfig/iptables |
Логи заблокированных соединений будут падать в /var/log/messagesДелаем файл исполняемым и запускаем:
# chmod 0740 /etc/iptables_rules.sh # /etc/iptables_rules.sh
# chmod 0740 /etc/iptables_rules.sh # /etc/iptables_rules.sh |
Проверяем, применились ли правила:
При каждом запуске файла с правилами iptables, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.
Настройки времени
Узнаем какое время установлено на сервере:
Чтобы изменить часовой пояс необходимо подобрать файл часовой зоны в папке <strong>/usr/share/zoneinfo</strong>. Если у вас тоже Московское время, тогда делаем следующее:
# mv /etc/localtime /etc/localtime.bak # ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# mv /etc/localtime /etc/localtime.bak # ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime |
или автоматической утилитой:
# timedatectl set-timezone Europe/Moscow
# timedatectl set-timezone Europe/Moscow |
В CentOS 7 есть предустановленная утилита chrony. Она есть даже в минимальной версии. Если ее все же нет, устанавливаем:
Запускаем и добавляем в автозагрузку:
# systemctl start chronyd # systemctl enable chronyd
# systemctl start chronyd # systemctl enable chronyd |
Проверяем запущена ли chrony:
# systemctl status chronyd
# systemctl status chronyd |
? chronyd.service — NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)Active: active (running) since Пт 2017-10-20 22:21:04 MSK; 31min agoDocs: man:chronyd(8)man:chrony.conf(5)Main PID: 704 (chronyd)CGroup: /system.slice/chronyd.serviceL-704 /usr/sbin/chronyd -4
окт 20 22:21:03 zabbix.localdomain systemd[1]: Starting NTP client/server…окт 20 22:21:03 zabbix.localdomain chronyd[704]: chronyd version 3.1 start…окт 20 22:21:03 zabbix.localdomain chronyd[704]: Frequency -10.854 +/- 0.0…окт 20 22:21:04 zabbix.localdomain systemd[1]: Started NTP client/server.окт 20 22:23:38 zabbix.localdomain chronyd[704]: Selected source 93.180.6.3окт 20 22:23:38 zabbix.localdomain chronyd[704]: System clock wrong by 1.0…окт 20 22:23:39 zabbix.localdomain chronyd[704]: System clock was stepped …окт 20 22:25:49 zabbix.localdomain chronyd[704]: Selected source 194.190.1…Hint: Some lines were ellipsized, use -l to show in full.
Все отлично, сервис запущен и исправно работает синхронизируя время.
Добавление репозитория EPEL
Для установки различных пакетов требуется установка дополнительных репозиториев. Поэтому ставим самый популярный EPEL:
# yum install epel-release
# yum install epel-release |
Хранение истории команд в bash_history
Достаточно полезно будет вести лог команд. Эта функция часто выручает. Но в стандартных стройках есть ряд ограничений:
- По-умолчанию, сохраняются только последние 1000 команд. При переполнении старые затираются
- Не указана дата и время выполнения команд
- Файл со списком команд обновляется после завершения сессии. При параллельных сессиях часть команд может быть утеряна.
- Сохраняются абсолютно все команды, хотя в хранении некоторых нет никакого смысла.
Список последний команд хранится в файле .bash_historyНо для удобства есть команда:
Появится пронумерованный список. Найти интересующие команды можно так:
После ввода увидим все варианты использования команды systemctl которые хранятся в истории. Для изменения стандартных настроек открываем .bashr c который расположен рядом с файлом истории.У меня он расположен /root/.bashrc
Добавляем в него следующие строки:
export HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND='history -a' export HISTIGNORE="ls:ll:history:w"
export HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND='history -a' export HISTIGNORE="ls:ll:history:w" |
HISTSIZE увеличил лог до 10000 команд. Следующий параметр указал необходимость сохранять время и дату выполнения команды. Третья строка требует сразу же после выполнения команды сохранять ее в лог. В последней создаем список исключений для тех команд, запись которых в историю не требуется. Приведен пример самого простого списка. Если хотите дополните его на свое усмотрение.
Применяем настройки:
или делаем релог.
Установка вспомогательных утилит
iftop показывает нагрузку на сетевой интерфейс, так же присутствует большое количество ключей запуска:
Диспетчер задач:
альтернатива
Мне больше нравится htop.
Для того что бы знать какие процессы используют определенные файлы можно использовать утилиту lsof.
Так же советую установить wget, bzip2, traceroute, gdisk.
# yum install wget bzip2 traceroute gdisk -y
# yum install wget bzip2 traceroute gdisk -y |
wget — консольная программа для загрузки файлов по сетиbzip2 — утилита командной строки для сжатия данныхtraceroute — программа предназначенная для определения маршрутов следования данных в сетях TCP/IP.gdisk — приложение для работы с GPT разделами любого размера.
Итог
Так я вижу первичную настройку сервера CentOS которую обычно выполняю перед началом эксплуатации. Буду рад обоснованной критике и комментариям.
admincorner.ru
Настройка CentOS 7 для сервера 1С 8.3
После установки CentOS 7 приступим к ее настройке.
Для настройки системы воспользуемся подключением по SSH используя клиент PuTTy или другой SSH клиент.
Начальная настройка CentOS 7
Обновим систему:
yum -y updateТак как CentOS 7 у нас гостевая ОС ESXi 6.5, то нужно установить VMware tools:
yum install open-vm-toolsДля дальнейшего удобства установим файловый менеджер Midnight Commander:
yum -y install mcВ CentOS 7 minimal все утилиты, такие как dig, host, nslookup, теперь включены в пакет bind-utils, поэтому установим этот пакет:
yum -y install bind-utilsОтключаем SELinux:
mcedit /etc/sysconfig/selinuxменяем значение SELINUX=enforcing на SELINUX=disabled . Сохраняем и выходим.Для вступления изменений в силу перезагрузим ОС:
rebootНастройка сетевого интерфейса сервера
Сервер 1С:Предприятие будет находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.Отключаем firewalld:
systemctl stop firewalld systemctl disable firewalldВ файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:
mcedit /etc/hosts127.0.0.1 localhost
192.168.xxx.yyy SERVER_NAME.DOMAIN.LOCAL SERVER_NAME
Что бы новые параметры вступили в силу нужно перезагрузить сервер.
rebootПосле перезагрузки имя сервера должно разрешаться в IP-адрес.
Подключение репозиториев
Для инсталляции различных пакетов ПО необходимо подключить репозитории в CentOS. Добавим популярный EPEL:
yum -y install epel-releaseНастройка и синхронизация времени
Настроим время сервера. Узнать, какое время на сервере можно с помощью команды date:
dateЧтобы сменить часовой пояс на +3, воспользуемся специальной утилитой, которая входит в комплект CentOS 7:
timedatectl set-timezone Europe/MoscowУстановим утилиту для синхронизации времени chrony:
yum install -y chronyЗапускаем chrony и добавляем в автозагрузку:
systemctl start chronyd systemctl enable chronydПроверяем:
systemctl status chronyd dateУстановка дополнительных пакетов
Добавим несколько полезных утилит, которые могут пригодиться в процессе эксплуатации сервера.
iftop показывает в режиме реального времени загрузку сетевого интерфейса:
yum -y install iftopДиспетчер задач htop:
yum -y install htopУстановим также необходимые пакеты отсутствующие в поставке:
yum install policycoreutils-python wget bzip2 ntp net-tools unixODBC ImageMagick fontconfig-develСкачиваем необходимые шрифты и устанавливаем их:
wget http: yum install msttcore-fonts-installer-2.6-1.noarch.rpmПубликация общей папки
Для удобства установим Samba и добавим в автозагрузку:
yum -y install samba samba-client samba-common systemctl enable smb systemctl enable nmbДалее создадим папку, к которую дадим общий доступ и настроим Samba:
sudo mkdir -p /home/public mv /etc/samba/smb.conf /etc/samba/smb.conf.bak mcedit /etc/samba/smb.confНастроим Samba внеся в smb.conf следующий текст:
[global]workgroup = WORKGROUPserver string = Samba Server %vnetbios name = Server1Csecurity = usermap to guest = bad userdns proxy = noguest account = nobodybrowseable = yes
log file = /var/log/samba/log.%mmax log size = 50
load printers = no
printing = bsd
printcap name = /dev/null
[public]comment = FSpath = /home/publicreadonly = noguest ok = yespublic = yesguest only = yeswritable = yes
Добавляем Samba в автозагрузку:
systemctl enable smb systemctl enable nmbЕсли не отключать Firewall, то нужно добавить следующие правила:
firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reloadОпубликуем папку:
cd /home/public chmod -R 0755 /home/public chown -R nobody:nobody /home/publicУстановка веб сервера
Для работы сервисов, имеющих веб интерфейс, установим веб сервер Apache:
yum install -y httpdДобавляем apache в автозагрузку:
systemctl enable httpdЗапускаем apache в CentOS 7:
systemctl start httpdПроверяем, запустился ли сервер:
netstat -tulnp | grep httpdУстановим PHP:
yum install -y phpУстановим популярные модули для php:
yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gdВыполним перезапуск apache:
systemctl restart httpdБазовая настройка CentOS 7 закончена
Поделиться ссылкой:
Похожее
kazhaev.ru
Поднимаем сервер на CentOS 7
Первоначальная установка сервера на CentOS7. Разумеется, какие-то шаги вам могут не требоваться, просто пропустите их.
Нанимаем сервер
(Если уже есть или настраиваем локальную машину, пропускаем этот шаг)
Если просто нужен недорогой и не сильно мощный сервер, достаточно будет взять VDS:
Идём по этой ссылке и регистрируемся
Выбираем сервер с CentOS 7 (самый простой стоит 250р, в дальнейшем можно перейти на тариф выше, если потребуется)
На почту приходят данные по SSH - логинимся на сервер с этим логином и паролем и приступаем непосредственно к конфигурации.
Добавляем пользователя и некоторые действия под него
useradd everest
Задаём ему пароль
passwd everest
Указываем рутовую почту отправлять на данного пользователя
vi /etc/aliases
Разрешим пользователю sudo
visudo
1 2 | # add at the last line: user 'everest' can use all root privilege everest ALL=(ALL) ALL |
Укажем hostname
hostnamectl set-hostname server1.wikiadmin.net
Отключение firewall и selinux
Останавливаем файрвол и отключаем его загрузку
systemctl stop firewalld
systemctl disable firewalld
Редактируем конфиг selinux
1 2 3 4 5 6 7 8 9 10 11 12 | vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled# change it # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted |
Перегружаемся
reboot
Настройка SSH
Добавляем ключи
ssh-copy-id [email protected]
Меняем порт
vi /etc/ssh/sshd_config
Port 222
Тут же выставляем заход рута только по ключам
PermitRootLogin without-password
Перезагрузка сервиса
systemctl restart sshd
Обновление системы и добавление хранилищ epel и rpmforge
Подкачиваем изменения:
yum update
Смотрим что нового для семёрки сделали:
yum –enablerepo=cr list updates
Если вас всё устраивает, набираем:
yum –enablerepo=cr update
Добавим epel и rpmforge, если нас не устраивает то, что уже есть
1 2 3 4 5 | yum -y install yum-plugin-priorities yum -y install epel-release yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm yum -y install http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum -y install http://linuxdownload.adobe.com/linux/x86_64/adobe-release-x86_64-1.0-1.noarch.rpm |
Доустановим пакеты, которые нужны. Мне обычно это нужно:
1 | yum install –enablerepo=epel –enablerepo=rpmforge mc screen htop wget git rsync lsof net-tools |
Сервисы
Смотрим что у нас запущено:
systemctl -t service
Заодно смотрим, кто выставлен наружу
lsof -Pni4
Если что-то не нужно, выключаем и убираем автозагрузку
systemctl stop postfix
systemctl disable postfix
systemctl stop chronyd
systemctl disable chronyd
Ставим apache и php
Ставим нужный пакет
yum -y install httpd
Удаляем стартовую страницу (зачем она нам)
rm -f /etc/httpd/conf.d/welcome.conf
Немного подредактируем конфиг
vi /etc/httpd/conf/httpd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # line 86: change to admin's email address ServerAdmin [email protected] # line 95: change to your server's name ServerName wikiadmin.net:80 # line 151: change AllowOverride All # line 164: add file name that it can access only with directory's name DirectoryIndex index.html index.cgi index.php # add follows to the end # server's response header ServerTokens Prod ServerSignature Off # keepalive is ON KeepAlive On |
Запускаем httpd и отправляем его в автозапуск
systemctl start httpd
systemctl enable httpd
Добавим PHP для апача. Ставим нужные пакеты:
yum -y install php php-mbstring php-pear
Редактируем php.ini
vi /etc/php.ini
1 2 | # line 878: раскоментим и укажем свой пояс (ну чёрный по карате, конечно) date.timezone = "Europe/Moscow" |
Перегружаем апач
systemctl restart httpd
wikiadmin.net