Настройка 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, используемую в вашей системе, вы можете использовать команду 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 с targetedна permissiveс помощью следующей команды:

Однако это изменение будет действительным только для текущего сеанса выполнения.

Чтобы навсегда отключить SELinux в вашей системе CentOS 7, выполните следующие действия:

  1. Откройте файл /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

     

  2. Сохраните файл и перезагрузите систему CentOS с помощью команды:
  3. Как только система загрузится, проверьте изменение с помощью команды 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. Вы можете использовать команду и просматривать эти ярлыки, как показано ниже:

# ls -Z /etc/

Это не полный список который я  привел, он может быть другой у вас.

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

Возможные параметры для setenforce являются:

  • 1 (включить).
  • 0 (отключить).

Вы также можете использовать команду setenforce, как показано ниже, чтобы отключить SELinux. Вот пример выполнения этой команды:

# setenforce 0

Или, предоставлю еще один вариант использования:

# setenforce Permissive

PS: Для проверки, служит еще одна замечательная команда:

# getenforce Permissive

2-й метод отключения SELinux на CentOS. Раз и навсегда!

Проверим состояние SELinux на CentOS.

# sestatus

проверка статуса selinux с помощью sestatus

# cat /etc/selinux/config

У меня он включен, я хочу его выключить, то для этого нужно открыть конфиг и прописать:

# vim /etc/selinux/config

Нужно найти:

SELINUX=enabled

Заменить на:

SELINUX=disabled

Как показано на следующем скриншоте:

После чего нужно перезапустить нашу ОС:

# reboot

3-й метод. Отключение SELinux в самом загрузчике Grub.

Если вы не можете найти /etc/selinux/config на вашей системе, вы можете передать отключить SELinux путем передачи параметра в загрузчик GRUB, как показано ниже.

# cat /boot/grub/grub.conf

Отключение 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 reboot

Firewalld

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/tcp

Fail2ban

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 = 6

ignoreip — означает, какие 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

Достаточно полезно будет вести лог команд. Эта функция часто выручает. Но в стандартных стройках есть ряд ограничений:

  1. По-умолчанию, сохраняются только последние 1000 команд. При переполнении старые затираются
  2. Не указана дата и время выполнения команд
  3. Файл со списком команд обновляется после завершения сессии. При параллельных сессиях часть команд может быть утеряна.
  4. Сохраняются абсолютно все команды, хотя в хранении некоторых нет никакого смысла.

Список последний команд хранится в файле .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/hosts

127.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