CentOS 7 и 8 настройка сервера после установки

Сегодня я познакомлю вас со своим видением начальной конфигурации универсального сервера на популярной ОС. Я расскажу о том, как сделать базовую настройку сервера centos сразу после установки для использования его в любом качестве на ваше усмотрение. Приведенные практические советы повышают безопасность и удобство работы с сервером. Статья будет актуальна для двух последних релизов Centos - 7 и 8.

Углубленный онлайн-курс по MikroTik

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

Цели статьи

  1. Перечислить начальные настройки centos, которые я выполняю на свежеустановленном сервере.
  2. Показать примеры конфигураций, которые я использую в типовой настройке.
  3. Дать советы по настройке centos на основе своего опыта работы с системой.
  4. Привести список типовых программ и утилит, которые помогают администрировать сервер.

Данная статья является частью единого цикла статьей про сервер Centos.

Введение

Для настройки практически любого сервера требуется выполнить ряд стандартных шагов, которые мало чем отличаются в различных ситуациях. Какой бы функционал вы не готовили, вам придется настроить правильное время и включить его автообновление. Без установки сетевых настроек я вообще не представляю работу современного сервера. В голову не приходит ни один пример. Один и тот же набор настроек практически на автомате выполняется после установки. Своими наработками по этой теме я хочу поделиться с вами - то, что я в первую очередь настраиваю на новоиспеченном сервере centos после установки.

После выхода нового релиза Centos 8, стало тяжело в единой статье описывать начальную настройку обоих серверов, но мне не захотелось разделять статью, так как на нее идет много входящих ссылок из разных мест. Удобнее поддерживать общий материал по обоим релизам, чем я и займусь. Заодно наглядно будут видны отличия двух версий, которые пару лет после выхода centos 8 будут актуальны обе и использовать придется и ту, и другую версию, в зависимости от ситуации.

В Centos 7 используется пакетный менеджер yum, а в Centos 8 - dnf. При этом оставили символьную ссылку с yum на dnf, так что можно писать как первое название, так и второе. Для единообразия я везде буду использовать yum, а вас предупреждаю, просто чтобы вы понимали, почему я делаю именно так. Реально в CentOS 8 используется dnf, это другой, более современный пакетный менеджер, которые позволяет работать с разными версиями одного и того же софта. Для этого используются отдельные репозитории, которые появились для centos 8.

Начальная настройка CentOS

Лично я любую настройку системы, будь то centos или другая, после установки начинаю с того, что полностью обновляю систему. Если установочный образ был свежий, либо установка велась по сети, то скорее всего обновлений никаких не будет. Чаще всего они есть, так как установочные образы не всегда регулярно обновляются.

Обновляем систему

# yum update

Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:

# yum install mc
Начальная настройка Centos - установка MC

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

Дальше нам пригодятся сетевые утилиты. В зависимости от набора начальных пакетов, которые вы выбираете при установке системы, у вас будет тот или иной набор сетевых утилит. Вот список тех, к которым привык лично я - ifconfig, netstat, nslookup и некоторые другие. Если она вам нужны, так же как и мне, то предлагаю их установить отдельно, если они еще не стоят. Если вам они особо не нужны и вы ими не пользуетесь, то можете пропустить их установку. Проверим, что у нас имеется в системе на текущий момент

# ifconfig

Если увидите ответ:

-bash: ifconfig: command not found

Значит утилита не установлена. Вместо ifconfig в CentOS теперь утилита ip. Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Хотя сейчас это уже не очень актуально, так как с Freebsd больше не работаю, а утилита ip есть во всех дистрибутивах linux. Тем не менее, если вам нужен ifconfig, то можете установить пакет net-tools, в который она входит:

# yum install net-tools

Чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:

# nslookup

Будет вывод:

-bash: nslookup: command not found

Так что устанавливаем bind-utils:

# yum install bind-utils

Отключить SELinux

Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

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

# reboot

А если хотите без перезагрузки применить отключение SELinux, то выполните команду:

# setenforce 0

Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы - комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.

Указываем сетевые параметры

Продолжаем базовую настройку centos после установки. Теперь произведем настройку сети, если по какой-то причине не сделали это во время установки, либо если вам надо их изменить. В общем случае, сеть в Centos настраивается с помощью NetworkManager и его консольной утилиты nmtui. Она идет в базовой устновке системы. Там простой и понятный графический интерфейс, так что рассказывать нечего. Я больше привык настраивать сеть через конфигурационные файлы network-scripts. В centos 7-й версии они есть из коробки, в 8-й версии их убрали. Чтобы воспользоваться ими для настройки сети, надо отдельно установить пакет network-scripts.

# yum install network-scripts

Теперь можно выполнить настройку сети. Для этого открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

Если вы получаете сетевые настройки по dhcp, то минимальный набор настроек в конфигурационном файле будет такой.

Настройка сети
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"

Для настройки статического ip адреса настройки будут следующие.

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=192.168.167.117
DNS1=192.168.167.113
PREFIX=28
GATEWAY=192.168.167.113

В поле IPADDR вводим свой адрес, в PREFIX маску сети, в GATEWAY шлюз, DNS адрес днс сервера. Сохраняем файл и перезапускаем сеть для применения настроек:

# systemctl restart network

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

Очень подробно вопрос настройки iptables в CentOS я рассмотрел отдельно. Сейчас мы быстро и просто настроим firewall. В CentOS 7 в качестве базового фаервола выступает iptables. По-умолчанию он запущен. Чтобы посмотреть текущие правила, нужно ввести команду:

# iptables -L -v -n

В Centos 8 вместо iptables используется nftables. Сразу скажу, что я с ним еще не разбирался и не знаю, буду ли. Реально, меня полностью устраивают iptables. Я ни разу не сталкивался с тем, что что-то не получалось или было невозможно настроить с их помощью. У меня написана куча конфигов к ним, настроены роли ansible с шаблонами правил. Я не понимаю, зачем мне все это переводить в nftables и какую выгоду я с этого получу. Поэтому пока я продолжаю использовать iptables.

Начиная с 7-й версии CentOS для настройки firewall разработан новый инструмент под названием firewalld и все управление производится через него. Он же используется и в Centos 8, только управляет при этом nftables, но сами правила для firewalld одинаковые в обоих версиях. Я не понял зачем в принципе придумали firewalld и не могу сказать, удобнее с ним стало или нет. По мне, так удобнее использовать одни и те же наработки по iptables. Мигрируя от сервера к серверу и от дистрибутива к дистрибутиву, я просто редактирую скрипт настроек фаервола либо шаблон ansible с правилами.

На тему отключения firewalld я тоже время от времени получаю критику, типа надо изучать новое и не цепляться за старое. Так вот, firewalld я изучил и пользуюсь относительно регулярно. Он долгое время использовался в Bitrixenv, с которым я работаю давно и плотно. Кстати, в последних версиях этого окружения bitrix отказался от firewalld. Удивился, когда это заметил. В связи с этим, firewalld мне приходится знать и использовать. И мне он нравится меньше, чем нативные правила в iptables и мои скрипты для управления ими.

Свое мнение не навязываю и убеждать никого не хочу. Делюсь в статье про настройку centos тем, что использую сам. А вы выбирайте тот инструмент, что вам больше подходит. Я привык управлять iptables через самописный скрипт, который переношу от сервера к серверу и редактирую под конкретные потребности. Этим скриптом я и поделюсь. Так что для начала остановим и отключим firewalld.

Сразу хочу предупредить, что не имея доступа к консоли сервера, настраивать firewall плохая идея. Даже если вы очень хорошо понимаете что делаете и проделывали подобное много раз, все равно есть шанс остаться без доступа к серверу. Так что первым делом перед настройкой iptables проверяем доступ к консоли сервера.
# systemctl stop firewalld
# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

Установим утилиты для iptables:

# yum install iptables-services

Включим автозапуск iptables:

# systemctl enable iptables

Теперь создадим файл /etc/iptables.sh следующего содержания:

#!/bin/bash
#
# Объявление переменных
export IPT="iptables"

# Интерфейс который смотрит в интернет
export WAN=eth0
export WAN_IP=147.15.218.72

# Очистка всех цепочек 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

# Рзрешаем пинги
$IPT -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Открываем порт для http
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
# Открываем порт для https
$IPT -A INPUT -i $WAN -p tcp --dport 443 -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 и записей там будет очень много. Так что в обычной работе эти строки нужно закомментировать, и использовать только во время отладки. Более подробное описание правил и примеры настроек firewall смотрите в отдельной статье, ссылку на которую я уже приводил в самом начале раздела.

Делаем файл c правилами исполняемым и запускаем:

# chmod 0740 /etc/iptables.sh
# /etc/iptables.sh

Проверяем, применились ли правила:

# iptables -L -v -n

При каждом запуске файла с правилами iptables, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.

Настройка SSH в CentOS

Продолжаем настраивать centos. Внесем некоторые изменения в работу ssh для небольшого увеличения безопасности. Хотя речь стоит вести больше не о безопасности, а об удобстве и эффективности. По-умолчанию, сервис ssh работает на 22 порту и если все оставить как есть, то мы получим огромное количество попыток авторизоваться. Боты сканят непрерывно интернет и подбирают пароли к ssh. Это не доставляет в реальности каких-то серьезных хлопот и тем не менее, подобные запросы забивают лог secure и трятят некоторые ресурсы сервера как миниум на установку соединения и рукопожатия (handshake).

Чтобы немного закрыть себя от сканов простых ботов, изменим порт, на котором работает ssh. Можно выбрать любой пятизначный номер, это не принципиально. От автоматического сканирования это защитит. Повесим демон ssh на 25333 порт. Для этого редактируем файл /etc/ssh/sshd_config.

# mcedit /etc/ssh/sshd_config

Раскомментируем строку Port 22 и заменим значение 22 на 25333.

Port 25333

Так же я обычно разрешаю подключаться по ssh пользователю root. Мне так удобнее. Проблем с этим у меня никогда не возникало. Если вы считаете, что это не безопасно, не трогайте эту настройку. Чтобы разрешить пользователю root подключаться по ssh, раскомментируйте строку

PermitRootLogin yes.

Сохраняем файл. Теперь обязательно изменяем настройки iptables, добавляем в разрешенные подключения вместо 22 порта 25333. Если этого не сделать, то после перезапуска sshd мы потеряем удаленный доступ к серверу. Итак, открываем /etc/iptables.sh и меняем в строке

$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT

22 на 25333 и исполняем файл. Наше текущее соединение не оборвется, так как оно уже установлено, но заново подключиться по ssh к 22 порту уже не получится.

Перезапускаем sshd:

# systemctl restart sshd

Кстати, если вы не отключили SELinux, то просто так не сможете сменить порт ssh. Получите ошибку при перезапуске.

SELinux is preventing /usr/sbin/sshd from name_bind access on the tcp_socket port 25333.

Наглядный пример того, как работает защита SELinux. Если у вас кто-то заберется на сервер через какую-то уязвимость и захочет открыть отдельный ssh серввер на каком-то нестандартном порту, у него ничего не получится.

Проверяем какой порт слушает sshd:

# netstat -tulpn | grep sshd
tcp        0      0 0.0.0.0:25333           0.0.0.0:*               LISTEN      1799/sshd
tcp6       0      0 :::25333                :::*                    LISTEN      1799/sshd

Если вывод такой же как у меня, то все в порядке, теперь к ssh можно подключаться по 25333 порту.

Добавим еще одну небольшую настройку. Иногда, когда возникают проблемы с dns сервером, логин по ssh подвисает на 30-60 секунд. Вы просто ждете после ввода логина, когда появится возможность ввести пароль. Чтобы избежать этого замедления, укажем ssh не использовать dns в своей работе. Для этого в конфиге раскомментируем строку с параметром UseDNS и отключим его. По-умолчанию он включен.

UseDNS no

Для применения изменений нужно перезапустить ssh службу, как мы уже делали ранее. Настройку службы sshd в centos закончили, двигаемся дальше.

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

Узнать, какое время настроено на сервере centos можно с помощью команды date:

# date

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

# timedatectl set-timezone Europe/Moscow

По факту, эта утилита меняет символьную ссылку. Рассказываю, чтобы вы понимали, как реально меняется часовой пояс.

# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

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

Теперь проверим статус службы по обновлению времени через интернет. Для этого можно использовать указанную выше команду timedatectl без параметров.

Настройка времени

В CentOS есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, как и у меня, что видно по скриншоту, то установим и настроим вручную:

# yum install chrony

Запускаем chrony и добавляем в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

Проверяем, нормально ли запустился:

# systemctl status chronyd
Синхронизация времени в Centos

Все в порядке, сервис настроен и работает. После запуска он автоматически синхронизирует время. Теперь наши часы будут автоматически синхронизироваться с сервером времени в интернете.

Более подробно об этой теме написано отдельно в моем материале - установка, настройка и синхронизация времени в CentOS.

Добавление репозиториев

При настройке centos частенько нужен софт, которого нет в стандартной репе. Для инсталляции дополнительных пакетов необходимо подключить репозитории в CentOS. Наиболее популярный это EPEL. Раньше был rpmforge, но уже как несколько лет закрыт. Про него все позабыли. Подключаем репозиторий EPEL. С ним все просто, он добавляется из стандартной репы:

# yum install epel-release

Так же для CentOS 7 крайне полезен репозиторий REMI, который позволяет установить больее свежие версии php, в отличие от тех, что есть в стандартном репозитории. Напомню, что это версия php 5.4, которая уже никуда не годится и снята с поддержки.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Для Centos 8 remi пока не актуален, но думаю, что это временно. В принципе, мне этих двух репозиториев в centos обычно хватает в общем случае. Другие подключаются уже под конкретные нужды для установки различного софта.

Настройка хранения истории в bash_history

Двигаемся дальше по настройке системы centos на сервере. Полезным будет внести некоторые изменения в стандартный механизм сохранения истории команд. Он часто выручает, когда надо вспомнить одну из ранее введенных команд. Стандартные настройки имеют некоторые ограничения, которые неудобны. Вот их список:

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

Список последних выполненных команд хранится в домашней директории пользователя в файле .bash_history (в начале точка). Его можно открыть любым редактором и посмотреть. Для более удобного вывода списка, можно в консоли ввести команду:

# history

и увидеть пронумерованный список. Быстро найти конкретную команду, можно с помощью фильтрации только нужных строк, например вот так:

# history | grep yum

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

export HISTSIZE=10000
export HISTTIMEFORMAT="%h %d %H:%M:%S "
PROMPT_COMMAND='history -a'
export HISTIGNORE="ls:ll:history:w:htop"

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

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

# source ~/.bashrc

По настройке хранения истории команд все. В файле .bashrc можно много чего настроить интересного. Я одно время увлекался и экспериментировал, но потом все забросил, так как не имеет смысла. Работая с серверами заказчиков я чаще всего вижу дефолтный bash, поэтому лучше привыкать и работать именно в нем. А отдельные настройки и украшательства это удел личных компьютеров и серверов. Не рабочих. Так что больше я ничего не настраивать по стандарту в centos сервере в этом плане.

Автоматическое обновление системы

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

Yum-cron

Для автоматической проверки обновлений в Centos 7 нам поможет утилита yum-cron. Ставится она традиционно через yum из стандартного репозитория.

# yum install yum-cron

После установки yum-cron создается автоматическое задание на выполнение утилиты в /etc/cron.daily и /etc/cron.hourly. По-умолчанию, утилита скачивает найденные обновления, но не применяет их. Вместо этого, администратору на локальный почтовый ящик root отправляется уведомление об обновлениях. Дальше вы уже в ручном режиме заходите и решаете, устанавливать обновления или нет в удобное для вас время. Мне такой режим работы видится наиболее удобным, поэтому я не меняю эти настройки.

Настраивать yum-cron можно через, конфигурационные файлы, которые находятся по адресу /etc/yum/yum-cron.conf и yum-cron-hourly.conf. Они неплохо прокомментированы, так что в подробных разъяснениях не нуждаются. Обращаю внимание на раздел [email], где можно указать параметры отправки сообщений. По-умолчанию стоит отправка почты через локальный хост. Можно тут изменить параметры и отправлять сообщения через сторонний почтовый сервер. Но вместо этого лично я предпочитаю глобально для всего сервера настроить пересылку локальной почты root на внешний почтовый ящик через авторизацию на другом smtp сервере.

Dnf-automatic

Как я уже говорил ранее, в Centos 8 используется другой пакетный менеджер - dnf. Настройка обновления пакетов там выполняется через утилиту dnf-automatic. Поставим ее и настроим.

# yum install dnf-automatic

Управлением запуском по расписанию занимается уже не cron, а systemd своим встроенным планировщиком. Посмотреть таймеры автоматического запуска можно командой:

# systemctl list-timers *dnf-*

Если там нет ни одного задания, то добавить таймер можно вручную:

# systemctl enable --now dnf-automatic.timer

Дефолтный таймер настроен на запуск dnf-automatic через час после загрузки сервера и ежедневное повторение. Конфиг таймера живет тут - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Таймер автоматического обновления centos

Конфиг для dnf-automatic живет в /etc/dnf/automatic.conf. По-умолчанию он только скачивает обновления, но не применят их. Конфиг хорошо прокомментирован, так что можете его настроить так, как пожелаете. Отдельных пояснений не требуется. Настраивайте обновление пакетов системы на свое усмотрение. Как я уже сказал, автоматически только качаю их. Установку всегда держу под контролем с ручным управлением.

Отключаем флуд сообщений в /var/log/messages

Продолжая настройку centos, исправим одно небольшое неудобство. В дефолтной установке системы 7-й версии, весь ваш системный лог /var/log/messages через некоторое время работы сервера будет забит следующими записями.

Oct 16 14:01:01 xs-files systemd: Created slice user-0.slice.
Oct 16 14:01:01 xs-files systemd: Starting user-0.slice.
Oct 16 14:01:01 xs-files systemd: Started Session 14440 of user root.
Oct 16 14:01:01 xs-files systemd: Starting Session 14440 of user root.
Oct 16 14:01:01 xs-files systemd: Removed slice user-0.slice.
Oct 16 14:01:01 xs-files systemd: Stopping user-0.slice.
Oct 16 15:01:01 xs-files systemd: Created slice user-0.slice.
Oct 16 15:01:01 xs-files systemd: Starting user-0.slice.
Oct 16 15:01:01 xs-files systemd: Started Session 14441 of user root.
Oct 16 15:01:01 xs-files systemd: Starting Session 14441 of user root.
Oct 16 15:01:01 xs-files systemd: Started Session 14442 of user root.
Oct 16 15:01:01 xs-files systemd: Starting Session 14442 of user root.
Oct 16 15:01:01 xs-files systemd: Removed slice user-0.slice.
Oct 16 15:01:01 xs-files systemd: Stopping user-0.slice.
Oct 16 16:01:01 xs-files systemd: Created slice user-0.slice.
Oct 16 16:01:01 xs-files systemd: Starting user-0.slice.
Oct 16 16:01:01 xs-files systemd: Started Session 14443 of user root.
Oct 16 16:01:01 xs-files systemd: Starting Session 14443 of user root.
Oct 16 16:01:01 xs-files systemd: Removed slice user-0.slice.

В Centos 8 я их не заметил, поэтому там ничего делать не надо. Никакой практической пользы сообщения не несут, поэтому отключим их. Для этого создадим отдельное правило для rsyslog, где перечислим все шаблоны сообщений, которые будем вырезать. Разместим это правило в отдельном файле /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf
if $programname == "systemd" and ($msg contains "Starting Session" or $msg contains "Started Session" or $msg contains "Created slice" or $msg contains "Starting user-" or $msg contains "Starting User Slice of" or $msg contains "Removed session" or $msg contains "Removed slice User Slice of" or $msg contains "Stopping User Slice of") then stop

Сохраняем файл и перезапускаем rsyslog для применения настроек.

# systemctl restart rsyslog

Необходимо понимать, что в данном случае мы отключаем флуд в лог файл только на локальном сервере. Если вы храните логи на удаленном syslog сервере, то данное правило нужно будет настраивать именно на нем.

Установка iftop, atop, htop, lsof на CentOS

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

iftop показывает в режиме реального времени загрузку сетевого интерфейса, может запускаться с различными ключами, не буду останавливаться на этом подробно, в интернете есть информация на эту тему. Ставим:

# yum install iftop

И два интересных диспетчера задач, я чаще всего пользуюсь htop, но иногда пригодится и atop. Ставим оба, сами посмотрите, разберетесь, что вам больше нравится, подходит:

# yum install htop
# yum install atop

Вот как выглядит htop:

CentOS установка htop

Для вывода информации о том, какие файлы используются теми или иными процессами, советую поставить утилиту lsof. Она скорее всего рано или поздно пригодится, когда будете диагностировать работу сервера.

# yum install lsof

Рекомендую еще установить несколько нужных и полезных программ, которые часто необходимы, но отсутствуют в минимальной установке - wgetbzip2, traceroute, gdisk.

# yum install wget bzip2 traceroute gdisk

На этом у меня все. Базовая настройка CentOS закончена, можно приступать к установке и настройке основного функционала.

Настройка системной почты

В завершение настройки сервера CentOS сделаем так, что бы почта, адресованная локальному root, отправлялась через внешний почтовый сервер на выбранный почтовый ящик. Если этого не сделать, то она будет локально складываться в файл /var/spool/mail/root. А там может быть важная и полезная информация. Настроим ее отправку в ящик системного администратора.

Подробно об этом я рассказал в отдельной статье - Отправка почты через консоль с авторизацией в linux. Здесь кратко только команды и быстрая настройка. Ставим необходимые пакеты:

# yum install mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

Рисуем примерно такой конфиг для postfix.

cat /etc/postfix/main.cf
## DEFAULT CONFIG BEGIN ######################
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
inet_interfaces = localhost
inet_protocols = all
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

debug_peer_level = 2
debugger_command =
         PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
         ddd $daemon_directory/$process_name $process_id & sleep 5

sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
## DEFAULT CONFIG END ######################

# Имя сервера, которое выводит команда hostname
myhostname = centos-test.xs.local
# Здесь по логике нужно оставлять только домен, но в данном случае лучше оставить полное имя сервера, чтобы в поле отправитель 
# фигурировало полное имя сервера, так удобнее разбирать служебные сообщения
mydomain = centos-test.xs.local
mydestination = $myhostname
myorigin = $mydomain
# Адрес сервера, через который будем отправлять почту
relayhost = mailsrv.mymail.ru:25
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may

Создаем файл с информацией об имени пользователя и пароле для авторизации.

# mcedit /etc/postfix/sasl_passwd
mailsrv.mymail.ru:25 admin@mymail.ru:password

Создаем db файл.

# postmap /etc/postfix/sasl_passwd

Теперь можно перезапустить postfix и проверить работу.

# systemctl restart postfix

К стандартному алиасу для root в /etc/aliases, добавьте внешний адрес, куда будет дублироваться почта, адресованная root. Для этого редактируем указанный файл, изменяя последнюю строку.

Было:

#root: marc

Стало

root: root,admin@mymail.ru

Обновляем базу сертификатов:

# newaliases

Отправим письмо через консоль локальному руту:

# df -h | mail -s "Disk usage" root

Письмо должно уйти на внешний ящик. Если вы будете использовать ящик от Яндекса, то скорее всего получите ошибку в логе почтового сервера и письмо не будет отправлено.

relay=smtp.yandex.ru[77.88.21.158]:25, delay=0.25, delays=0/0/0.24/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru[77.88.21.158] said: 553 5.7.1 Sender address rejected: not owned by auth user. (in reply to MAIL FROM command))

Ошибка эта означает то, что у вас в качестве отправителя почты указан не тот же ящик, что вы используете для авторизации. Как это исправить, я рассказываю в отдельной статье - как изменить адрес отправителя в postfix. С другими почтовыми системами, где нет подобной проверки, все должно быть нормально и так.

На этом настройка локальной почты закончена. Теперь все письма, адресованные локальному root, например, отчеты от cron, будут дублироваться на внешний почтовый ящик, причем с отправкой через полноценный почтовый сервер. Так что письма будут нормально доставляться, не попадая в спам (хотя не обязательно, есть еще эвристические фильтры).

Часто задаваемые вопросы по теме статьи (FAQ)

Почему вы используете скрипт для настройки iptables, вместо стандартного FirewallD?

Я работаю не только с серверами, где установлен firewalld. Правила для iptables более универсальные и применимы в любом linux дистрибутиве. Мне так просто удобно. Если вам удобнее работать с firewalld, то используйте его.

Используете ли вы GIU в настройке и эксплуатации серверов?

Чаще всего нет. У меня давно налажен процесс настройки практически любого сервера. Я быстрее все делаю через консоль. Иногда использую Webmin из-за удобного просмотра логов сервисов, если они хранятся только на сервере. Если вам нужна консоль управления сервером, то я рекомендую попробовать Cockpit.

Зачем вы отключаете SELinux? Неужели так трудно его настроить?

Я умею настраивать selinux и в некоторых статьях это показываю. Данный материал по общей, базовой настройке centos. В основном это для новичков, которых если сразу нагрузить еще и selinux, то будет тяжело. Если есть желание использовать selinux, его можно будет включить и настроить вместе с сервисом, который будет работать на сервере после предварительной настройки.

Почему вы не используете sudo, а работаете в консоли под root?

Подробно этот вопрос я разбирал в отдельной статье про sudo. Если объяснить кратко, то смысл в том, что я подключаюсь к консоли сервера для административных дейсвий. Мне всегда нужен sudo, поэтому не вижу смысла его каждый раз набирать. Проще сразу зайти под root.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Мы выполнили некоторые начальные шаги по настройке сервера CentOS, которые я обычно делаю при подготовке сервера сразу после установки. Я не претендую на абсолютную истину, возможно что-то упускаю или делаю не совсем верно. Буду рад разумным и осмысленным комментариям и замечаниям с предложениями.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

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

  1. Пример настройки сервера мониторинга zabbix, либо только подключение centos к мониторингу путем установки на него агента.
  2. В отдельной рубрике zabbix есть много примеров для мониторинга различных полезных метрик.

Из наиболее популярных и масштабных статей по настройке различного функционала на базе сервера centos хочу отметить следующие:

  • Пример соединения двух офисов с помощью openvpn.
  • Настройка веб сервера на базе apache+php или nginx+php-fpm.

И никогда не забывайте про бэкап и его проверку - бэкап или перенос linux сервера.

Видео по настройке CentOS

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

321 комментарий

  1. Я так понимаю что если на сервере один NIC, то первое правило покрывает второе?

    # Разрешаем исходящие соединения самого сервера
    $IPT -A OUTPUT -o $WAN -j ACCEPT

    # Пропускать новые, а так же уже инициированные и их дочерние соединения
    $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

    • Да. Первое правило приведено для примера, чтобы при случае его можно было закомментировать и создать на его основе более узкие правила, которые будут конкретизировать направление, которое разрешено. Например:

      # $IPT -A OUTPUT -o $WAN -j ACCEPT
      $IPT -A OUTPUT -o $WAN -p tcp --dport 443 -j ACCEPT

      А правило с ESTABLISHED,RELATED должно стоять выше этих правил. Так будет правильнее с точки зрения нагрузки. Так как уже установленные пакеты имеет смысл проверить в самом начале и дальше пустить их мимо всех остальных цепочек. То есть сначала ESTABLISHED,RELATED, потом все остальные:

      $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
      ..................
      $IPT -A OUTPUT -o $WAN -p tcp --dport 443 -j ACCEPT
  2. Спасибо большое за памятку как и что делать очень помогает.
    Объясните, пожалуйста пару моментов:
    1) зачем в скрипте вы используете export? очень похоже на копипасту без понимания для чего и зачем это нужно. Вы не запускаете других скриптов из вашего скрипта где используются переменные IP и WAN. А все строчки до их запуска автоматически получат нужные значения.
    2) Я к сожалению не понял что здесь подразумевается, если вам не трудно вы не могли бы пояснить или дать ссылку по теме.

    # Приводит к связыванию системных ресурсов, так что реальный
    # обмен данными становится не возможным, обрубаем
    $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

    • 1. Это просто универсальный вариант. В данном случае переменные вообще можно не использовать, а писать сразу имя бинарника - iptables, или /usr/sbin/iptables

      2. Это типовая защита от syn-flood атак. Я не знаю, насколько это актуально в наше время, но смысл тут такой. Отрицание ключа syn означает, что рассматриваем все пакеты, не являющиеся запросом на соединение. Они не должны иметь флаг/статус NEW. Если мы видим, что этот статус имеет не первый пакет, то отбрасываем его. В нормальной ситуации такого быть не должно. Значение этого ключа можно посмотреть в документации по iptables. Она есть на русском языке, там и пример такой тоже есть.

      Я могу сказать сразу, что эти правила не оптимальны. Как минимум не соблюдён порядок их добавления с учётом особенностей работы iptables. Статья писалась лет 10 назад и с тех пор этот раздел не изменялся. В общем случае, это не критично, всё будет успешно работать в том виде, как представлено. Но если хочется разобраться и сделать всё правильно, то нужно переделать.

  3. Аноним

    никаких объяснений что и почему ты делаешь. что что значит. Толк какой от этого?

    • Что значит какой толк? В этой статье довольно подробно всё описано. Толк в ней явно есть, иначе её не прочитало бы 700 тысяч человек.

  4. Дмитрий

    Все собираюсь, но не успеваю написать, развертывание нужное, но неужели нельзя отключить selinux так:
    setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
    Понимаю, многие начинают познавать, но нужные утилиты упрощают жизнь и позволяют автоматизировать процесс.

  5. Скрипт настройки MariaDB изменился на /usr/bin/mariadb-secure-installation

  6. Доброго вечерочка!
    А правило для открытие порта asterisk по аналогии будут выглядеть так:
    №Для TCP
    $IPT -A INPUT -i $WAN -p tcp --dport 5060 -j ACCEPT

    №И для UDP
    $IPT -A INPUT -i $WAN -p udp --dport 5060 -j ACCEPT
    Я верно понимаю? А то в сети еще указывают "-m udp" и вот думаю нужно ли это указывать.

    • Да, правильно. Вы бы быстрее сами проверили, чем писали тут пост :)

      • Прошу прощения, я не корректно сформулировал вопрос.
        Дело, как раз именно в том, что я проверил оба варианта и оба работают. Мне просто стало интересно, как вернее выглядит запись чтоли... "-m udp" - выполняет подключение модуля, но это обязательный параметр или нет - вот что мне стало интересно.

  7. >>Я не понимаю, зачем мне все это переводить в nftables и какую выгоду я с этого получу. Поэтому пока я продолжаю использовать iptables.

    Утилиты firewalld, nftables, or iptables хорошо описаны здесь:
    https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/getting-started-with-nftables_configuring-and-managing-networking#when-to-use-firewalld-nftables-or-iptables_assembly_migrating-from-iptables-to-nftables

    Все они примерно равнозначны управляют встроенным в ядро netfilter. И как верно указано в статье
    To avoid that the different firewall services influence each other, run only one of them on a RHEL host, and disable the other services.
    Т.е. в запущен должен быть только один сервис управления на сервере во избежании конфликтов.
    firewalld - упрощенная модель управления.
    nftables - полнофункциональная модель управления.
    iptables - устаревшая модель.

    iptables соответственно можно использовать до тех пор пока из дистрибутивов полностью не уберут обратную совместимость с этой моделью управления. Я думаю ранее следующей версии CentOS/RHEL этого не произойдет

  8. Приветствую! Настраивала доступ по ssh к centOS 7, сменила порт, настроила iptables, отключила selinux. Ну и не проверив еще раз настройки, оборвала текущую сессию. Теперь не могу подключаться по новому порту, сессия подключения через 15-20 секунд обрывается. Может есть какие нибудь стандартные ошибки в настройке доступа по ssh, может возможно исправить все это малой кровью?

    • Локально надо подключаться и смотреть, в чем проблема. Возвращать настройки обратно, если не понятно, почему не работает. Больше тут ничего не сделать, если удаленного доступа уже нет.

      • Приветствую! Проблема решилась включением UseDNS, скорее всего из-за специфичных настроек у провайдера.

        • Вообще, из-за проблем с DNS ssh сессии не ломаются. Может долго подключаться, секунд 20-30, но потом все равно подключится.

  9. Похоже epel-releaze накрылся медным тазом!

  10. Валерий

    Добрый день.
    У меня небольшая проблема, не понимаю в чем дело. Т.к. опыт работы с linux у меня не большой, прошу совета.
    При создании и выполнении файла iptables.sh, команда iptables -L -v -n выдает вот такой результат:
    Chain INPUT (policy DROP 1032 packets, 62877 bytes)
    pkts bytes target prot opt in out source destination
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:10051 state NEW
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1522 state NEW
    20 1151 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
    14 852 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
    0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:!0x17/0x02 state NEW
    0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
    0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 3
    0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 11
    0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8

    Chain FORWARD (policy DROP 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU
    0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID

    Chain OUTPUT (policy ACCEPT 855 packets, 1146K bytes)
    pkts bytes target prot opt in out source destination

    Но стоит мне перезагрузить машину или сервис iptables, результат уже другой:
    Chain INPUT (policy ACCEPT 531 packets, 32666 bytes)
    pkts bytes target prot opt in out source destination
    0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 state NEW
    15 780 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW
    1 52 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:1522 state NEW

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination

    Chain OUTPUT (policy ACCEPT 368 packets, 1114K bytes)
    pkts bytes target prot opt in out source destination

    В чем тут проблема, кроме меня?)

  11. Здравствуйте! Подскажите пожалуйста, очень прошу. Проблема с Postfix. Делал все по инструции. Но не отправляет ну никак он на внешнюю почту((

    В логах вот что выдает:

    Jan 14 20:57:49 example postfix/smtp[14074]: 6B838207E88A: to=, relay=smtp.mail.ru[94.100.180.160]:465, delay=0.42, delays=0.01/0/0.39/0.02, dsn=5.0.0, status=bounced (host smtp.mail.ru[94.100.180.160] said: 550 not local sender over smtp (in reply to MAIL FROM command))

    Настройки Relay:
    # Адрес сервера, через который будем отправлять почту
    relayhost = [smtp.mail.ru]:465
    smtp_use_tls = yes
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = encrypt
    smtp_tls_wrappermode = yes

    • Судя по всему, ошибку вам выдает почтовый сервер mail.ru. Я ни разу его не использовал, поэтому не знаю нюансов его настройки. Вот ошибка:
      550 not local sender over smtp
      Ине кажется, проблемы с авторизацией. Учетную запись в файле sasl_passwd верно указываете?

    • Возможно, ошибка из-за того, что адрес отправителя не совпадает с адресом учетной записи, от которой происходит авторизация. В яндексе есть такая ошибка.

  12. Александр

    Огромное человеческое СПАСИБО!

    Теперь надо найти толковую статью как вместо ната прикрутить сквид.

    Интересное полунаблюдение полувопрос.
    Не работал нат, Несколько раз проверил и перезапустил и sh и сервер (ничего не менял на синтаксис не ругалось) и заработало. Риторический вопрос почему?

  13. Здравствуйте. Отличная статья! Единственный вопрос. Так как сам я еще только начинаю осваивать самостоятельную настройку серверов VPS для собственных нужд, то периодически возникают вопросы. Суть в том, что использую для управления сервером панель ISPmanager, но еще не настраивал ни разу CENT OS. Вопрос в том, можно ли использовать вашу инструкцию по настройке CENT OS, перед тем как установить панель ISPmanager или какие то настройки можно сделать с помощью ISPmanager? Если Вы предоставите более развернутый ответ по моему вопросу, то буду признателен. И еще вопрос, сколько стоят Ваши услуги по настройке сервера VPS, можете написать на мою почту Ваше предложение? Спасибо.

    • Перед установкой ispmanager можно выполнить какие-то настройки, но точно не все. Я подробно не изучал, что ipsmanager меняет в системе после установки. Но как минимум, отправкой почты и настройкой iptables он управляет, а значит настраивать их самостоятельно нет смысла. Единичными задачами по настройки чего-либо я как правило не занимаюсь, поэтому и предложения готового нет.

      • Спасибо за ответ. Единственное, могу не согласиться с вами по поводу "Единичные задачи", так как VPS, на мой взгляд, это совокупность процессов и объединяет много задач для стабильной и безопасной работы сайтов. В остальном, спасибо за ваш труд!

    • К чему эта ссылка? Вроде ничего особенного в статье не увидел. По моим инструкциям тоже нормально через gmail отправляется все.

      • >тоже нормально через gmail отправляется все.
        Не заработало.

      • Я правильно понимаю в скрипт нужно добавить эту строчку ?
        $IPT -A INPUT -i $WAN -p tcp --dport 10051 -j ACCEPT
        Чтобы агент zabbix могу "достучаться" до сервера

  14. Добрый вечер!
    После настройки и при проверке отправки письма вылетает такая ошибка ? Что не так сделал ?
    send-mail: fatal: /etc/postfix/main.cf, line 43: missing '=' after attribute name: root@cnt6 igoronik@yandex.ru

  15. Николай

    Большое спасибо всем, кто помогал советами при настройке сервера на CentOS, С доступом к ресурсам, через Samba разобрался в CentOS 7 просто отключил DNS и, при отсутствии интернет, доступ к ресурсам появился, время доступа 2 - 5 секунд, вполне приемлемо. С выходом CentOS 8, обновил систему на сервере и от стал работать без доступа к интернет, причём установку провёл по умолчанию. Ставил на сервер Debian 10, но он с апреля этого года два раза слетел, в обоих случаях просто пропал загрузочный раздел, снова вернулся на CentOS 8. У меня такой вопрос, кто-нибудь знает причину появления ошибки в Debian 10 и Fedora 32 при старте, вот эти строки:
    [4.052067] sd 7:0:0:0: [sdh] No caching mode page found
    [4.052097] sd 7:0:0:0: [sdh] Assuming drive cache: write trough
    [4.102117] scsi 7:0:0:1: Wrong diahnostic page: asked for 1 got 8
    [4.102160] scsi 7:0:0:1: Failed to get diagnostic page 0x1
    [4.102193] scsi 7:0:0:1: Failed to bind enclosure -19 debian10: clean, 214204/1220608 files, 1750542/4882176 bloks
    Как я понял, система ищет и не находит устройства "sd" и "scsi", но у меня их нет, у меня обычная системная плата Asus P8H61M-K.
    Буду очень благодарен за помощь в решении этой проблемы, пока эта же проблема на десктопе только немного удлинняет старт системы, но на работу не влияет, или я просто этого пока не замечаю.

  16. Александр

    mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

    нет такого файла при его создании инастройки по инструкции сеть не перезапускается

    centos8

    • А пакет network-scripts установили? Это он управляет настройками из файлов.

      • После того, как RH отказался от поддержки Centos, решил залить виртуалку с Centos 7.
        Но проблема в том, что network-scripts теперь отстутствует в репозиториях((

        # yum install network-scripts
        Loaded plugins: fastestmirror
        Loading mirror speeds from cached hostfile
        * base: mirror.docker.ru
        * epel: mirror.yandex.ru
        * extras: mirror.corbina.net
        * remi-safe: mirror.docker.ru
        * updates: mirror.reconn.ru
        No package network-scripts available.

        В каком репозитории его теперь искать?

        • Да уж, беда. Тоже не нахожу в репах этот пакет. Придется от него отказываться и использовать NetworkManager. Я последнее время через него стал сеть настраивать, поэтому и не заметил пропажу пакета. Надо статью обновлять.

  17. Что делать если alias не работает при отправки письма на рут? /etc/aliase правил. У меня на centos7 все ок, на centos8 не работает.

    Aug 05 17:43:46 ln01 postfix/pickup[4195]: 18AF610612A6: uid=0 from=
    Aug 05 17:43:46 ln01 postfix/cleanup[4211]: 18AF610612A6: message-id=
    Aug 05 17:43:46 ln01 postfix/qmgr[4196]: 18AF610612A6: from=, size=919, nrcpt=1 (queue active)
    Aug 05 17:43:46 ln01 postfix/smtp[4213]: 18AF610612A6: to=, orig_to=, relay=10.50.0.5[10.50.0.5]:25, delay=0.18, delays=0.04/0.02/0/0.12, dsn=2.6.0, status=sent (250 2.6.0 [InternalId=3066] Queued mail for delivery)

  18. Здравствуйте! А можно как-то ваш замечательный скрипт iptables.sh перенести в убунту? Если можно, то какие параметры для этого нужно изменить, может подскажете, если не трудно?)

    • Один в один переносится, поэтому я его и использую. Достаточно только ip адреса и имена интерфейсов поменять и все.

      • Это вообще незаменимая вещь. Спасибо, что делитесь опытом и знаниями.

      • А под debian 10 не пойдет, наверное скрипт? Там вроде бы уже nftables. У вас нет статьи по настройке nftables? Поиск ничего не дал.

  19. Дмитрий

    Здравствуйте. Можете показать пример настройки для firewalld? iptables использовать пока не хочу, хочу проверить работу с firewalld.

    • У меня нет статей на тему firewealld, как и готовых настроек. В общем случае, открыть нужный порт можно командой:

      firewall-cmd --permanent --add-port=80/tcp

      Затем применить и сохранить правила для применения после перезагрузки.

      firewall-cmd --reload
  20. Добрый день Владимир, такой вопрос по поднятию и репликации WINS сервера на CentOS, в удаленном офисе стоит Win Server 2008 с поднятым WINS но некоторые машины в локальном офисе теряют его и немогут обратится в удаленный офис по имени нетбиоса до переподключения к сети, в локальном офисе есть CentOS 8 так вот как настроить Самбу на репликацию WINS с Win Server?

    • Не знаю, что вам сказать. Я не вижу смысла в современных реалиях использовать wins. Я всегда все настраиваю на работу по dns именам, чего и вам могу посоветовать. Wins пережиток старых времен и хорошо работает в одном широковещательном домене. Зачем он нужен современной распределенной инфраструктуре и какие вопросы решает?

  21. Никита

    За скрипт iptables спасибо! Немного изменил его по примеру правил в микротике - все дропы в конец, чтобы меньше проц грузить. Хотя понятно, что на вм проц нормальный, по сравнению с low cost железками от латышей.

    • Да, все правильно. Скрипт можно и нужно оптимизировать. Я его делал больше 5-ти лет назад, где-то что-то не понимал или забыл. На виртуалках не принципиально, нагрузки все равно нет, поэтому не оптимизировал его.

  22. Доброе день, Zerox!
    Настроил сервер на Centos 8, согласно вашей статье, практически все получилось, за исключением проброса портов. Удаленное подключение по SSH работает, а вот зайти по RDP на рабочий компьютер не получается, может подскажите в чем может быть дело, прилагаю конфиг настройки iptables и log файл:
    iptables.sh
    .........
    # Инет
    export WAN=enp1s0
    export WAN_IP=1.1.1.1

    # ЛВС
    export LAN2=enp2s0
    export LAN2_IP=2.2.2.2
    ................
    # Разрешаю локальный трафик для LAN
    $IPT -A INPUT -i $LAN2 -j ACCEPT
    $IPT -A OUTPUT -o $LAN2 -j ACCEPT

    # Разрешаем исходящие соединения самого сервера
    $IPT -A OUTPUT -o $WAN -j ACCEPT

    # Открываем порты
    $IPT -A INPUT -i $WAN -p tcp --dport 37877 -j ACCEPT
    $IPT -A INPUT -i $WAN -p tcp --dport 3389 -j ACCEPT

    $IPT -t nat -A PREROUTING -p tcp --dport 37877 -i $WAN -j DNAT --to 3.3.3.3:3389
    ..............

    Лог файл:
    Mar 20 02:32:04 host-79-140-22-165 kernel: -- IN -- DROP IN=enp1s0 OUT= MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=95.78.246.183 DST=1.1.1.1 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=51388 DF PROTO=TCP SPT=59553 DPT=4307 WINDOW=64240 RES=0x00 SYN URGP=0
    Mar 20 02:32:11 host-79-140-22-165 kernel: -- FW -- DROP IN=enp1s0 OUT=enp2s0 MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=217.118.93.110 DST=3.3.3.3 LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=53295 DF PROTO=TCP SPT=50687 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
    Mar 20 02:32:12 host-79-140-22-165 kernel: -- FW -- DROP IN=enp1s0 OUT=enp2s0 MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=217.118.93.110 DST=3.3.3.3 LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=53296 DF PROTO=TCP SPT=50687 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
    Mar 20 02:32:14 host-79-140-22-165 kernel: -- IN -- DROP IN=enp1s0 OUT= MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=95.78.246.183 DST=1.1.1.1 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=51389 DF PROTO=TCP SPT=59555 DPT=4307 WINDOW=64240 RES=0x00 SYN URGP=0
    Mar 20 02:32:14 host-79-140-22-165 kernel: -- FW -- DROP IN=enp1s0 OUT=enp2s0 MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=217.118.93.110 DST=3.3.3.3 LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=53297 DF PROTO=TCP SPT=50687 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
    Mar 20 02:32:15 host-79-140-22-165 kernel: -- IN -- DROP IN=enp1s0 OUT= MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=95.78.246.183 DST=1.1.1.1 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=51390 DF PROTO=TCP SPT=59555 DPT=4307 WINDOW=64240 RES=0x00 SYN URGP=0
    Mar 20 02:32:17 host-79-140-22-165 kernel: -- IN -- DROP IN=enp1s0 OUT= MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=95.78.246.183 DST=1.1.1.1 LEN=52 TOS=0x00 PREC=0x00 TTL=119 ID=51391 DF PROTO=TCP SPT=59555 DPT=4307 WINDOW=64240 RES=0x00 SYN URGP=0
    Mar 20 02:32:18 host-79-140-22-165 kernel: -- FW -- DROP IN=enp1s0 OUT=enp2s0 MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=217.118.93.110 DST=3.3.3.3 LEN=60 TOS=0x00 PREC=0x00 TTL=50 ID=53298 DF PROTO=TCP SPT=50687 DPT=3389 WINDOW=65535 RES=0x00 SYN URGP=0
    Mar 20 02:32:25 host-79-140-22-165 kernel: -- IN -- DROP IN=enp1s0 OUT= MAC=04:d9:f5:bc:91:7a:00:1f:ca:b3:6b:80:08:00 SRC=194.26.29.104 DST=1.1.1.1 LEN=40 TOS=0x00 PREC=0x00 TTL=235 ID=11217 PROTO=TCP SPT=59471 DPT=6365 WINDOW=1024 RES=0x00 SYN URGP=0

    • Аноним

      с изменение ip адреса увлекся, ip 3.3.3.3 надо рассматривать как 2.2.2.3

    • В таком формате я не могу вам помочь. Причин, почему не работает проброс, может быть масса. У меня есть статья про настройку iptables, ссылка на нее есть в этой. Там 100% рабочий вариант проброса порта в iptables.

  23. Максим

    Прошу помощи! Настроил centos7 по данной статье, данная ос стоит на арендованном KVM c openvpn.
    Как только прохожу этап настройки iptables, перестает работать vpn. Соединение с клиентом есть, трафик не проходит. Пинг не проходит через сервер. Открыл порт 1194 по udp, этого мало. А что еще сделать не знаю.

    • Явно ошибка с настройкой фаервола, если перестает работать после его запуска. Заочно тут помочь невозможно, вам придетсч разбираться и вникать самостоятельно. Если не получается, не используйте firewall. Кстати, а зачем он вам вообще нужен?

      • Максим

        Да собственно мне он незачем. Просто я как старый вин_юзер думал, что он необходим для безопасности.
        зы
        Порт на SSH тоже сменить не вышло. Может провайдер моего сервера закрывает лишние порты?

        • Безопасность обеспечивают те или иные правила блокировки и разрешенного доступа. Сам по себе firewall ничего не дает. Провайдер теоретически может ограничивать внешние подключения.

  24. Александр

    Здравствуйте! Поставил CentOS 8. Дошел до настройки почты. Столкнулся с проблемой: если отправлять тестовое письмо конкретно на внешнюю почту, то оно уходит, а если на root, то нет. Даже если в файле etc\aliases указать не через запятую внешнюю почту, а только внешнюю почту, то отправка все равно не идет. Получается что игнорируется файл etc\aliases. После изменений в etc\aliases команду newaliases запускал. В интернете пишут, то этот файл в принципе используется только для отправки писем локальным пользователям. Подскажите, пожалуйста, разобраться в том, что я делаю не так.

    • Все работает так, как описано в статье. Только что проверил на чистом сервере. Если отправлять письмо локальному root, в почтовом логе будут записи:

      Mar 8 15:07:26 centos8 postfix/smtp[2897]: BC4F967442: to=<zeroxzed@gmail.com>, orig_to=<root>, relay=gmail-smtp-in.l.google.com[173.194.222.27]:25, delay=0.46, delays=0/0.02/0.18/0.26, dsn=2.0.0, status=sent (250 2.0.0 OK 1583669246 y14si1163298ljn.58 - gsmtp)

      Где явно видно, что отправлялось на root, а ушло на внешнюю почту.

      • Александр

        У меня тоже все заработало, хотя я ничего не менял. Откатился на виртуалке в сток, проделал все заново и проблем не было. Видимо что-то упустил. Извините, за беспокойство. Если можно, еще вопрос. После перезагрузки сервера у меня не стартует postfix. Приходится вручную запускать. Postfix должен сам в автозагрузку прописаться или его нужно туда добавить?

        • Не знаю, должен или нет, но проблемы его добавить самому нет никакой:
          # systemctl enable postfix

          • Александр

            При настройке других компонентов рассказывается о добавлении в автозагрузку, а при настройке системной почты нет. Ведь если действительно postfix в автозагрузку сам не добавляется, то после перезагрузки сервера письма на внешнюю почту не пойдут. Статья же в первую очередь на новичков расчитана. Не уверен что они после настройки каждого сервиса будут проверять автозагрузку. (по себе сужу.) Поэтому и решил уточнить. Еще раз спасибо за оперативную помощь!

      • Дмитрий

        Догадываюсь почему не заработало =)

        Ошибочка скорей всего на данном этапе:

        /etc/aliases

        Было:

        #root: marc
        Стало

        root: root,admin@mymail.ru

        в начале строки #root: забыли убрать символ комментария #

  25. Zerox, подскажите пожалуйста почему не выполняется.

    /etc/iptables.sh: line 6: -F: command not found
    /etc/iptables.sh: line 7: -F: command not found
    /etc/iptables.sh: line 8: -F: command not found
    /etc/iptables.sh: line 9: -X: command not found

    ну и так дальше до самого конца файла. Сколько раз ставил, никогда такого не было. Сервис Iptables установлен.

    • Судя по всему, переменная $IPT не назначена. Попробуйте вместо нее прописать явно iptables или полный путь - /usr/sbin/iptables.

      • Пропустил строку, где объявляется переменная. Извиняюсь за невнимательность

  26. После установки 8-ки без GUI в консоли вместо русских букв показываются квадратики.
    Решается просто.
    Меняем в /etc/vconsole.conf

    FONT="UniCyr_8x16"
  27. Валерий

    Gmail ругается на postfix как на "ненадежную программу". Начал принимать письма, только после того, как в настройках разрешил ненадежное ПО.

  28. Аноним

    Gmail ругается на postfix как на "ненадежную программу". Начал принимать письма, только после того, как в настройках разрешил ненадежное ПО.

  29. Добрый день.
    подскажите пжл как прописать два ip адреса если оба wan

    # Интерфейс который смотрит в интернет
    export WAN=eth0
    export WAN_IP=147.15.218.72

    • Оба и прописывайте. У вас будет в 2 раза больше набора правил, под каждый WAN интерфейс.

      • я правильно понимаю если к примеру прописываю WAN1 и WAN2, все последующие правила дублирую дважды к примеру
        # Разрешаем исходящие соединения самого сервера
        $IPT -A OUTPUT -o $WAN1 -j ACCEPT
        # Разрешаем исходящие соединения самого сервера
        $IPT -A OUTPUT -o $WAN2 -j ACCEPT

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

          • это равнозначные интерфейсы с разными ip, провайдер vds выдает их в таком формате
            eth0 1.1.1.1
            eth0.1 2.2.2.2

  30. Добрый день!
    Не всё еще успел просмотреть, а как можно найти ваши роли и плейбуки для ansible по настройке серверов, установки приложений, настройке firewall-ов. Был бы очень благодарен.:)

  31. Не нашел в 8 CentOS'е пакетов exim, 389-ds. Куда делись?

  32. Кто-нить в курсе как в vmware esxi 6.5 в веб морде изменить разрешение экрана В центос 8 забыли сделать горизонтальную прокрутку. у меня разрешение экрана 800×600 в гипервизоре отражает :(

  33. Николай

    Вот уже почти месяц, как решил почти все проблемы с домашним сервером, несколько необычно, но тривиально. Просто установил на сервер Rosa Fresh R11, перенёс все настройки из CentOS и всё заработало, доступ к ресурсам сервера совершенно не зависит от наличия и подключения к интернет, специально включал все компьютеры с отключенный интернет, специально отключал его во время работы, доступ к ресурсам не пропадает и не изменяется скорость доступа. Осталась одна проблема, связанная с сервером, но не на сервере, с рабочей станции под Linux свободный объём любого общего раздела не превышает 4,4 гигабайта, хотя я знаю, там гораздо больше. При обращении к этому же разделу из-под Windows, показывается истинный размер раздела. Как следствие, из Linux (Fedora и Rosa Fresh) я не могу записать на сервер файл, больший, чем 4,4 GB. Кстати, эта же проблема была и когда на сервере стояла CentOS, просто на неё, как-то не обращал внимания.

  34. Александр

    может кому полезно будет
    Я конфиги не чищу от комментов, а чтобы посмотреть только имеющиеся параметры сделал алиас и закинул в .bashrc
    alias clrconf="grep -ve '^[[:space:]]*\(#\|$\|;\)'"
    использую через конвеер cat file|clrconf

    • Классная тема, спасибо. Я как-то не догадался про алиас. Правда для меня это не всегда актуально, так как настраиваю в основном не свои сервера. В чужие обычно ничего своего не добавляю. Из шпаргалки готовую конструкцию через sed запускаю, чтобы чистый конфиг получить.

      • Александр

        А у вас какая конструкция в sed? А то у меня через него не получилось или получилась громоздкая (не помню уже), потому пособрал из найденного в интернете такую конструкцию.

        • Там достаточно просто.

          Удаление комментариев, где знак комментария ; стоит в начале строки:
          sed '/^;/d' sip.conf

          Удалить пустые строки:
          sed '/^$/d' sip.conf

          Удалить все пробелы и символы табуляции в начале каждой строки:
          sed 's/^[ \t]*//' sip.conf

          • Александр

            А-а-а
            такое я видел, да. Просто думал, что оформлено однострочником.
            Спасибо.
            И за статью кстати тоже спасибо. С восьмой центосью пока не сталкивался, так что статьи по ней - любопытно и интересно.

            • Так однострочник можно просто последовательно выполняя команды делать, передавая вывод. Сейчас конфиги все разные, я не стремился сделать универсальную конструкцию под все. Не так уж часто нужно. Просто убрать # или ; помню и так.

          • На тему просмотра удаления лишнего из логов, конфигов и скриптов. По умолчанию пользую `Vim` в качестве редактора (как минимум `Vi` есть везде), и если нужно очистить файл от мусора - удобно делать так:

            `:%s/\s\+$//e` - удалить лишние пробелы в конце строк
            `:g/#/d` - удалить все строки с `^#`
            `:v/./d` - удалить все пустые строки

            Можно забить макросом, на горячие клавиши в `.vimrc`, что бы не набивать эту "магию" заново.

            Работа со скриптами и конфигами после этого сильно упрощается, а логи смотреть входит удобнее из-за того, что на "больших" логах `mc` будет тормозить, да и контекстный поиск + постановка меток позволяют анализировать лог быстрее и проще.

            • Я много раз пробовал vim. Мне не заходит никак. Предпочитаю mcedit. Описанные фильтры 1 в 1 из sed, поэтому не принципиально.

  35. Вопрос: а есть смысл менять стоковый порт SSH? Ведь всегда можно просканить nmap`ом сервант. Даже если долбёжки ботов будут реджектиться по 22, так они найдут другой порт)

    • Так я же пояснил этот момент в статье. Я всегда меняю и не вижу смысла этого не делать. Я почти всегда подключения по ssh логирую. Нафиг мне спам ботов на 22-й порт тащить в мониторинг. Меняешь порт на отличный от 22 и у тебя в 100 раз меньше лог secure. Это не вопрос безопасности, а удобства.

  36. Ochen poleznaya statiya

  37. Спасибо за статью. Очень понравилась. Как раз для того кто переходит с винды на линукс.

  38. Алексей

    Добрый день!
    Владимир, прошу прощения за тупой вопрос, плохо еще Linux знаю. По вашему скрипту для iptables вопрос.
    Если моя машина стоит на вертуалке за NAT-ом то в строке

    export WAN_IP=149.154.71.205

    мне указать мой внешний IP или внутренний, присваиваемый DHCP? (этот IP был мною закреплен за машинкой по MAC-у)

    Заранее спасибо!

    • Нужно использовать внутренний ip конкретного сервера, на котором настраиваете фаервол. Но этот адрес должен быть на 100% статичный. Если он изменится, то вы потеряете доступ к серверу, так как в правилах много завязок на этот адрес. Для динамического адреса по dhcp нужно по-другому строить набор правил. Но если вы говорите, что настроена привязка и адрес меняться не будет, то можно считать, что ip статический.

  39. Николай

    Подскажите, пожалуйста, какие порты необходимо открыть на сервере CentOS 7 для Samba? В разных источниках разные сведения.
    У меня открыты: 80/tcp, 137/tcp, 138/tcp, 139/tcp, 443/tcp, 445/tcp. Однако, в некоторых источниках указаны необходимые порты: 137/udp, 138/udp, 139/tcp, 443/tcp, 445/tcp. Как будет правильно, нигде не нашёл.

    • 139 и 445 tcp. Специально только что поверил на сервере с работающей Samba. Служба smbd слушает 2 этих порта.

      • Николай

        Спасибо. Возможно мои проблемы связаны с тем, что я открыл слишком много портов, хотя после того, как я перевёл SSH на альтернативный порт проблемы пока ни разу не появлялись. Отключу лишние порты и понаблюдаю. Ещё раз спасибо.

      • Николай

        Добрый день! И он действительно добрый! Сегодня нашёл причину странной работы Samba сервера, она всё-таки, оказалась в роутере Huawei B310. Утром запустил сервер, а Samba сервер снова "хулиганит", зашёл в настройки роутера и перезапустил его. После этого Samba сервер моментально заработал. Получается, что от настройки bind уже никак не "отвертеться". Буду искать как его настроить с одной сетевой картой, везде почему-то рассматривается с двумя, одна смотрит во внутреннюю сеть, другая во внешнюю, а мне такой "огород городить" нет смысла, делиться трафиком не с кем и соединение с роутером проводное, через IP. И с точки зрения безопасности, у меня получается тройная защита - брандмауэр роутера, Firewalld и SELinux в CentOS.

  40. Николай

    Факир был пьян и фокус не удался. Сервер на RHEL 8 нормально отработал два дня и появилась та же проблема. Возможно проблема связана с тем, что в качестве адреса DNS сервера я указываю адрес DNS сервера роутера Huawei B310, он имеет встроенный DNS сервер и DHCP сервер. DHCP я не использую, использую статические адреса но DNS и DHCP в роутере не отключены. Может быть имеет смысл их отключить? Поделитесь опытом, кто владеет ситуацией. И ещё, я изменил порт на SSH сервере на альтернативный и сразу после принятия изменений, проблемы пропали, это совпадение? Думаю во всяком случае, время покажет.

  41. Всем доброго времени суток.
    Спасибо автору за статью.
    Я не отключал selinux и с отправкой почты возникли некоторые сложности.
    А именно SELinux запрещает /usr/libexec/postfix/tlsmgr методы доступа 'read, write' к файл prng_exch.
    Я понимаю, что автор не рассматривает настройку SELinux в этой статье.
    Но на всякий случай дополню статью. Может это и не совсем верный способ, но все же.
    При поиске проблемы использовал комманду
    sealert -a /var/log/audit/audit.log
    Которая и подсказала, что именно не так и способы устранения проблемы.
    Выполнив
    ls -lZ /var/lib/postfix/prng_exch
    Мы получим
    -rw-------. postfix postfix system_u:object_r:unlabeled_t:s0 /var/lib/postfix/prng_exch
    Обратим внимание на тип unlabeled_t, именно из-за него postfix не может работать как положено
    Изменим тип. Я брал тип из какого то мануала особо не вдавался в подробности правильный ли он. Надеюсь автор меня поправит, если это неправильно)) Выполним команды
    # semanage fcontext -a -t postfix_prng_t '/var/lib/postfix/prng_exch'
    # restorecon -v '/var/lib/postfix/prng_exch'
    после этого повалились ранее отправленные письма))

  42. Николай

    Господа! Меня можно поздравить, запустил сервер на RHEL 8. Всё заработало буквально "с разбегу". Правда, не решил пока пару задач, установка Transmission-daemon и поддержку NTFS. Понаблюдаю с месяц и, если за это время не найду способа добавить поддержку NTFS, придётся конвертировать диски в Ext.

  43. Николай

    Первые впечатления от RHEL 8. Пока система работает с USB_HDD, вполне доволен. Удалось настроить Samba, примонтировать и предоставить в общий доступ диск, размеченный в Ext3. остальное потом, слишком много вопросов, найду ответы, сообщу. Не могу решиться на подключение платных репозиториев, всё-таки сервер домашний, дороговато для пенсионера. Хотя, может быть, оно того стоит. В общем, буду экспериментировать, понаблюдаю за работой и, возможно, снова конвертирую диски сервера в Ext, это же RedHat, к тому же, это первая Linux система, с которой я столкнулся.
    PS: И всё-таки, с нетерпением жду CentOS 8, хотя с таким же нетерпением ждал Debian 10, но сильно в нём разочаровался, остаюсь на платорме Red Hat.

  44. Николай

    Сервер на CentOS 7 работает скоро месяц, ничего не делаю, просто наблюдаю и ежедневно регистрирую работу. Проблемы начали появляться, через неделю, после запуска. Без каких-то причин снова начала глючить Samba, день работает, затем пару дней глючит, затем снова всё повторяется. Заметил ещё одну проблему, когда глючит Samba, невозможно записать на сервер из Linux большие (несколько гигабайт) файлы, выводится сообщение о том, что не хватает места на диске, хотя места на диске более, чем достаточно, небольшие файлы записываются нормально. Из Windows, как ни странно, большие файлы записываются без проблем. Таким образои имею три проблемы: 1. Периодически пропадает доступ, через Samba к серверу из Linux, доступ по SSH замедляется примерно в 40 раз, доступ из Windows замедляется примерно в 20 раз, но остаётся. 2. Периодически, но гораздо реже, один, или несколько примонтированных разделов переводятся в режим "Только чтение", затем, спустя несколько дней, восстанавливается. 3. Проблемы с записью больших файлов. С нетерпением жду выхода CentOS 8. Зарегистрировался на Red Hat и скачал RHEL 8, установил на USB_HDD. Система прекрасная, но пока не могу подключить ни одного репозитория, очень хотелось бы, перед тем, как платить за поддержку, попробовать, как она будет в работе.

  45. Николай

    Поразительно!!! зарегистрироваться ни на одном форуме CentOS абсолютно невозможно, хотя думаю, что это абсолютно бессмысленно. Задавал вопрос производителю системной платы, получил ответ, кампания Asus гарантирует работу системных плат только под Windows, по этим вопросам обращайтесь к разработчику ОС, задать вопрос разработчику CentOS невозможно, как впрочем и любой другой Linux. Задавал вопрос блоггерам, ни один не владеет этой ситуацией. Создаётся впечатление, что кроме разработчика, никто не знает ни одну Linux систему, а просто, что называется, "гнут пальцы", пускают пыль в глаза. На многочисленных форумах не смог решить ни одной проблемы. Более 15 лет стараюсь изучить Linux, но учебников по ней нет, а которые есть, рассчитаны на подготовленного программиста с университетским образованием. Поразительно!!! С таким отношением к энтузиастам, Linux навсегда останется на 1% компьютеров. Короче, заканчиваю это безнадёжное дело, дальше буду тыкаться сам. Короче complete failure.

    • У вас какая-то локальная проблема, которую никто не собирается для вас решать. Linux используется на большей части серверов в мире, так что про 1% это вы в корне неверно мыслите. Да, у пользователей будет 1%, потому что это система не для них.

      • Николай

        Спасибо. Я в этом уже не сомневаюсь. В крайнем случае перейду на Ubuntu server, как ни странно работает просто великолепно. Не каждую проблему возможно решить.

  46. Николай

    Установил CentOS 7.6 при помощи netinst образа. Установку производил с зеркала "mirror.yandex.ru/centos/7/os/x86_64". После установки настроил систему исключительно, как файловый сервер Samba, ни каких излишеств. Работает всё, однако имеются проблемы 1. Соединение с сервером, через Putty устанавливается очень долго, 40 секунд до предложения ввести логин и пароль. 2. Запуск Midnight Commander происходит за 40 секунд. 3. Первое соединение с сервером, через SSH из Dolphin происходит, через 40 секунд, последующие практически моментально. 4. Соединиться с ресурсом сервера, через Samba из Dolphin, через добавление сетевой папки, не удаётся, выводится сообщение "Невозможно подключиться к серверу. Проверьте параметры и повторите попытку.", если ресурс сервера предварительно примонтирован, через fstab, он доступен из окна Dolphin "Точки входа" из списка примонтированных сетевых ресурсов, причём доступ практически моментальный.
    Перезагружаю сервер под Ubuntu 18.04.2 server с другого диска, все эти проблемы пропадают, из Putty сервер откликается за доли секунды, Midnight Commander также запускается за доли секунды, сетевые диски подключаются и через Dolphin и через fstab, причём практически моментально.
    Проблема со 100% вероятностью в CentOS. Если кто владеет ситуацией, помогите разобраться, все необходимые данные пришлю, только скажите, какие. Николай.

  47. Николай

    Пилиюнул на всё, снёс CentOS, скачал с официального сайта Ubuntu 18.04.2 server, установил и настроил. Пока всё работает и даже Transmission-daemon пошёл "с разбегу" и в отличие от CentOS запускает торренты автоматом из указанной папки. Настройки просто тупо перенёс из CentOS. Сложность была только с необходимостью вспоминать, как настроить iptables, пока "колупался" с CentOS успел привыкнуть к Firewall. Однго только понять не могу, почему не пошёл Debian 9, ведь Ubuntu разработана на его базе, пять попыток установки закончились обломом, при старте Debian ищет несуществующий раздел, например /dev/sdi5 (девятый по счёту), причём, каждую перезагрузку раз разный (но у меня всего три диска!) и наглухо виснет, дело не доходит даже до ввода логина. Пока понаблюдаю за Убунтой, с месяц буду стартовать с USB_HDD, а на SATA оставлю Windows. Если не будет сбоев, переведу её на SATA, а Windows сверну в образ, на всякий случай.

  48. Николай

    Снова утром включил сервер и снова Самба не работает. Зае&ался.

    • Вы наверное забыли про эту команду

      systemctl enable smbd

      после нее должна работать

      • Николай

        Я нашёл причину не очень стабильной работы CentOS 7, просто переустановил систему, а при переустановке отключил опцию установки DNS и DHCP и сервер стал работать без доступа к интернет, правда. из соединиться с ним можно только используя IP адрес, но сервер домашний и количество рабочих станции всего 3, запомнить IP адреса, не проблема. Сейчас установил на сервер CentOS 8.1, были, конечно, проблемы с подключением репозиториев и поддержкой ntfs, но всё благополучно решено. Приятно, 8 версия работает заметно быстрее версии 7. Осталась нерешённой пара проблем, свойственных всем Linux системам, при копировании большого массива информации, порядка десятка гигабайт, загрузка процессора составляет 60 - 80%, а порой и все 100%. Для её решения и потребовалась поддержка ntfs, эта же операция, под Windows нагружает процессор на 2 - 5%, просто стартую с флешки Windows 8 и провожу реорганизацию разделов. Вторая нерешённая проблема, все Linux системы из сети показывают свободный объём разделов на сервере не более 4,4 GB и более объёмные файлы просто не копируются. Из под Windows показывается реальный объём ресурса и этой проблемы нет.

  49. Николай

    Не помню где, возможно на одном из англоязычных сайтов, я нашёл информацию, что на сервере необходимо отключить Network Manager, и если не используется протокол ipv6, отключить и его. Остановил и отключил Network Manager, командами, "# systemctl stop Network Manager" и "# systemctl disable Network Manager", затем отключил протокол ipv6, командами, "echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf" и "echo net.ipv6.conf.default.disable_ipv6 = 1 >> /etc/sysctl.conf". Также отключил и dhcpv6-client, командой, "# firewall-cmd --permanent --remove-service=dhcpv6-client". Сделал в соответствии с рекомендациями, пусть пройдёт парочка обновлений, понаблюдаю. Ранее встречал рекомендацию, отключить сервер DNS, пробовал, затем включил так, как не увидел ни каких изменений в работе.

    • Небольшая поправка, netfilter фаервол. iptables и firewalld утилиты для управления.

      • Николай

        А чем же они управляют?
        Firewall, дословно из википедии, "Межсетево́й экра́н, сетево́й экра́н — программный или программно-аппаратный элемент компьютерной сети, осуществляющий контроль и фильтрацию проходящего через него сетевого трафика в соответствии с заданными правилами".
        "IPTables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана.".
        "Netfilter — межсетевой экран (брандмауэр), встроен в ядро Linux с версии 2.4." - оттуда же.
        И кстати, об Ubuntu, за две недели работы Ubuntu 18.04.2 server не произошло ни одного сбоя, даже самого мелкого, или незначительного, хотя все настройки сервера просто тупо перенёс из системы CentOS. Получается дело не в компьютере и не в руках, а всё-таки, в CentOS. Очень хотелось бы понять, что именно.

  50. Николай

    Отключили электроэнергию на 3 часа. После включения электричества, включил сервер и, с какого-то перепугу, всё заработало. НИЧЕГО НЕ ДЕЛАЛ!!!!!!!!!!! Это 3,14здец!!!!! За более, чем четвертьвековую работу сисадмином такого геморроя не было никогда.

  51. Николай

    Прошу прощения, добавлю. Я на 100% уверен, что Fedora 29 на рабочей станции тут ни причём, я свободно присоединяюсь к любому ресурсу Windows домашнего кинотеатра из рабочей станции под Fedora, более того, подсоединившись к рабочему столу домашнего кинотеатра, через Teamviewer, я свободно присоединяюсь к серверу и из Windows домашнего кинотеатра удалённо, находясь на рабочей станции под Fedora. Иными словами, проблема с Самбой локализована на сервере и действует ТОЛЬКО НА РАБОЧИЕ СТАНЦИИ ПОД LINUX. Этого я понять не могу. Если кто-то знает в чём дело, помогите, пожалуйста!

  52. Николай

    Я припоминаю, когда на сервере был установлен Debian 7 были такие же проблемы, но я это связывал с нестабильной работой графического окружения Xfce на рабочей станции, ресурсы сервера открывались до нескольких минут. С переходом на графическое окружение Plasma, как будто всё выправилось, однако проблемы периодически появляются вот уже второй год. Не думаю, что это связано с железом. За это время поменял три концентратора Switch и два раза системную плату Asus P7H55-M > Asus P8H61M-K > Gigabbyte H61M-S2PV две последние абсолютно новые, обе на гарантии, однако проблемы остались При перезагрузке сервера с другого диска под Windpws, все проблемы исчезают.

  53. Николай

    Сегодня утром, после включения снова не работает сервер Самба для рабочей станции под Linux Fedora 29 Plasma, Putty так же, как и в прошлый раз откликается за 20 секунд, по SSH из Dolphin ресурсы сервера открываются, но вместо 0,5 секунды 20 секунд, из Windows доступ к серверу есть. Далее отчёты.

    Отчёт по Firewall (команда # firewall-cmd --list-all)
    public (active)
    target: default
    icmp-block-inversion: no
    interfaces: enp2s0
    sources:
    services: dhcpv6-client ssh samba
    ports: 22/tcp 80/tcp 137/tcp 138/tcp 139/tcp 443/tcp 445/tcp 9091/tcp
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:

    Отчёт SELinux, по Samba (команда # getsebool -a | grep -E "smb|samba")
    samba_create_home_dirs --> off
    samba_domain_controller --> off
    samba_enable_home_dirs --> on
    samba_export_all_ro --> on
    samba_export_all_rw --> on
    samba_load_libgfapi --> off
    samba_portmapper --> off
    samba_run_unconfined --> off
    samba_share_fusefs --> on
    samba_share_nfs --> off
    sanlock_use_samba --> off
    smbd_anon_write --> on
    tmpreaper_use_samba --> off
    use_samba_home_dirs --> on
    virt_use_samba --> on

    Отчёт SELinux, по SSH (команда # getsebool -a | grep -E "ssh")
    fenced_can_ssh --> on
    selinuxuser_use_ssh_chroot --> on
    ssh_chroot_rw_homedirs --> on
    ssh_keysign --> on
    ssh_sysadm_login --> on

    Состояние smb и nmb (команда # systemctl status smb nmb)
    ● smb.service - Samba SMB Daemon
    Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
    Active: active (running) since Пн 2019-07-01 07:48:08 +04; 14min ago
    Docs: man:smbd(8)
    man:samba(7)
    man:smb.conf(5)
    Main PID: 4830 (smbd)
    Status: "smbd: ready to serve connections..."
    CGroup: /system.slice/smb.service
    ├─4830 /usr/sbin/smbd --foreground --no-process-group
    ├─4872 /usr/sbin/smbd --foreground --no-process-group
    ├─4873 /usr/sbin/smbd --foreground --no-process-group
    ├─4876 /usr/sbin/smbd --foreground --no-process-group
    └─5662 /usr/sbin/smbd --foreground --no-process-group

    июл 01 07:48:08 nikiv64 systemd[1]: Starting Samba SMB Daemon...
    июл 01 07:48:08 nikiv64 smbd[4830]: [2019/07/01 07:48:08.881656, 0] ../lib/util/become_daemon.c:138(daemon_ready)
    июл 01 07:48:08 nikiv64 systemd[1]: Started Samba SMB Daemon.
    июл 01 07:48:08 nikiv64 smbd[4830]: daemon_ready: STATUS=daemon 'smbd' finished starting up and ready to serve connections

    ● nmb.service - Samba NMB Daemon
    Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
    Active: active (running) since Пн 2019-07-01 07:48:08 +04; 14min ago
    Docs: man:nmbd(8)
    man:samba(7)
    man:smb.conf(5)
    Main PID: 4761 (nmbd)
    Status: "nmbd: ready to serve connections..."
    CGroup: /system.slice/nmb.service
    └─4761 /usr/sbin/nmbd --foreground --no-process-group

    июл 01 07:48:08 nikiv64 systemd[1]: Starting Samba NMB Daemon...
    июл 01 07:48:08 nikiv64 nmbd[4761]: [2019/07/01 07:48:08.707048, 0] ../lib/util/become_daemon.c:138(daemon_ready)
    июл 01 07:48:08 nikiv64 systemd[1]: Started Samba NMB Daemon.
    июл 01 07:48:08 nikiv64 nmbd[4761]: daemon_ready: STATUS=daemon 'nmbd' finished starting up and ready to serve connections
    июл 01 07:53:25 nikiv64 nmbd[4761]: [2019/07/01 07:53:25.019762, 0] ../source3/nmbd/nmbd_namequery.c:109(query_name_response)
    июл 01 07:53:25 nikiv64 nmbd[4761]: query_name_response: Multiple (2) responses received for a query on subnet 192.168.8.3 for name WORKGROUP.
    июл 01 07:53:25 nikiv64 nmbd[4761]: This response was from IP 192.168.8.11, reporting an IP address of 192.168.8.11.
    июл 01 07:58:17 nikiv64 nmbd[4761]: [2019/07/01 07:58:17.629866, 0] ../source3/nmbd/nmbd_namequery.c:109(query_name_response)
    июл 01 07:58:17 nikiv64 nmbd[4761]: query_name_response: Multiple (2) responses received for a query on subnet 192.168.8.3 for name WORKGROUP.
    июл 01 07:58:17 nikiv64 nmbd[4761]: This response was from IP 192.168.8.11, reporting an IP address of 192.168.8.11.

    Отчёт по статусу smb и nmb отличается от предыдущего потому, что я его делал во время попытки присоединения к серверу, через Samba.

  54. Николай

    Заметил ещё одну интересную особенность этой проблемы. Когда с рабочей станции из Linux невозможно соединиться с ресурсами Samba сервера, даже из Windows невозможно запустить проигрывание аудио или видео файла при помощи плеера VLC, однако, при помощи Pot Player из Windows, как ни странно, медиафайлы с сервера воспроизводятся и даже пакетом.

  55. Николай

    Сегодня произошло совсем непонятное, включил сервер и доступ, через Самбу появился. Единственное моё действие - вечером выключил, утром включил. Просто фантастическая нестабильность. Всё, "Тупик нечистой силы, дом 13".

  56. Алексей

    Zerox, а вы используете какой-нибудь хелпдеск? Например OTRS? ;) Если да, то планируете написать статью по установке и настройке? Если нет, то почему? Нет надобности или есть какие-нибудь альтернативы беззаморочные?

    • OTRS использую. Причем настраивал достаточно изощренные конфигурации с разными очередями, ящиками для запросов и т.д. Писать статьи руки так и не дошли.

      • Алексей

        А жаль. Было бы очень интересно прочесть. Как раз сейчас установил и разбираюсь с настройками. Надеюсь, напишите как-нибудь.

  57. Николай

    Господа! Вы будете смеяться, но, cегодня, на четвёртый день работы сервера на CentOS 7.5 через 7 часов после включения сервера утром пропало соединение с сервером, через Samba из рабочей станции под Fedora 29, перезагрузился с USB_HDD в OpenSUSE 15.1 - соединения, через Samba нет. Из Windows соединение с сервером есть, но с задержкой около 5 секунд, соединение, через SSH есть с нормальной скоростью, 0,5 секунды, уже что-то новенькое, ранее соединение устанавливалось около 20 секунд. Выполнил те же команды тестирования Samba и SSH, всё совпадает на 100%, кроме времени создания отчёта. Пока писал сообщение, время соединения с сервером по SSH увеличилось до 18 секунд. Странно всё это. Ранее на сервере стояла плата Asus P8H61M (новая), из-за этих проблем купил и установил плату Gigabyte H61M-S2PV, проблемы остались. Я уже на 100% уверен, что дело в сервере, устанавливал на сервер Fedora 28 server, пару месяцев было всё нормально, а потом начались аналогичные проблемы. Пару лет назад поменял на сервере Debian 7, который прекрасно работал до этого 5 лет, причина - из-за сильнейшей грозы вышла из строя системная плата Asus P7H55-Pro, ни новую, ни б/у найти не удалось, заменил на более современную P8 H61M, Debian 7 на ней не пошёл, просто отказался загружаться, версии 8 и 9 тоже, пришлось переходить на платформу Red Hat, пока неудачно. До пенсии более 25 лет работал сисадмином, преподавал операционные системы, базы данных и программирование на ЯВУ, такой чудовищной нестабильности работы ОС на сервере не видел. Попробую установить на сервер Free BSD, может быть хотя бы она будет работать стабильно. На этом же сервере прекрасно работает Windows 2008 R2 server, но "крякнутая", а это немного напрягает, ибо в любой момент может произойти "кирдык", хотя пока не "кирдыкнулась", вот и держу на сервере на двух физических дисках две системы. Рад бы не "пиратствовать", но пока не получается. PS: О себе, на пенсии, сисадмин с 1994 года, начинал (не считая MS DOS) с Windows 3.11 с двумя IBM PC 386, закончил Windows 2008 R2 server с 165 рабочими станциями, но такой чудовищной нестабильности работы не видел. Может быть я что-то не понимаю. подскажите, пожалуйста!

  58. Николай

    На четвёртый день сразу, после включения сервера соединение с ним, через Samba произошло нормально, примерно за 0,5 секунды. Через полчаса работы соединиться с сервером получилось, через 15 секунд. Через SSH в Pyutty соединение затянулось до 10 секунд. Чувствую, что, через пару часов работы Samba сервер совсем перестанет работать.

  59. Алексей

    Добрый день.
    Хотелось бы комментарий по скрипту. Там в начали написан интерфейс и ip , смотрящие в интернет. С интерфейсом все понятно. А вот какой вписывать IP не не понятно. У меня в сети перед серваком стоит маршрутизатор Микрот, на нем, плюс ко всему вдобавок настроен свой firewall. Маршрутизатор принимает инет от провайдера по выделенному IP и через NAT предоставляет по локалке.
    Так вот, в чем собственно вопрос: IPкакой в скрипт вписывать - провайдера (внешний) или внутренний локальный??
    Новичек Йа. Только разбираться начал с Linux-ом.
    Спасибо.

    • А зачем вам firewall на сервере, который не смотрит напрямую в интернет? Какие ограничения доступа вы хотите настроить?

      • Алексей

        Он там нужен только для моего самообразования))) Так-то firewall на нем уже отключен.
        А, допустим, сервер будет стоять после роутера и NAT, но будет исполнять роль firewall. Тогда прописываем IP который ему выдает NAT (IP закреплен за MAC-ом)? Или из скрипта вовсе убрать эти 2 строчки?
        Спасибо.

        Может быть все это глупости, но черт возьми, как любопытно)))

        • Указывать надо тот адрес и интерфейс, который фактически используется для подключения сервера к сети. В данном случае локальный адрес.

      • Николай

        Сервер подключен к интернет, через роутер, при помощи сервера я скачиваю из интернет большие файлы, или группы файлов, а потом раздаю их по локальной сети на десктоп и домашний кинотеатр под Windows. Устанавливал Linux на домашний кинотеатр, но не получается воспроизводить аудио и видео файлы по сети с сервера, поэтому пришлось установить Windows, с ней проблем нет. Что самое интересное, три дня назад я развернул образ CentOS на сервер, больше ничего не делал, пока три дня отработал нормально. Всё получается, как и в прошлый раз, разворачиваю систему с образа, она работает от нескольких дней до месяца, а затем без всякой причины пропадает доступ к серверу, через Самбу.

  60. Николай

    Не понимаю, почему сервер на CentOS 7.5 после первого включения работает нормально, доступ к его ресурсам, через Samba, есть. Поработав сутки - другие, после очередной перезагрузки перестаёт работать сервер Samba.
    Привожу отчёты по состоянию сети:
    Отчёт по Firewall (команда # firewall-cmd --list-all)
    public (active)
    target: default
    icmp-block-inversion: no
    interfaces: enp2s0
    sources:
    services: dhcpv6-client ssh samba
    ports: 22/tcp 80/tcp 137/tcp 138/tcp 139/tcp 443/tcp 445/tcp 9091/tcp
    protocols:
    masquerade: no
    forward-ports:
    source-ports:
    icmp-blocks:
    rich rules:

    Отчёт SELinux, по Samba (команда # getsebool -a | grep -E "smb|samba")
    samba_create_home_dirs --> off
    samba_domain_controller --> off
    samba_enable_home_dirs --> on
    samba_export_all_ro --> on
    samba_export_all_rw --> on
    samba_load_libgfapi --> off
    samba_portmapper --> off
    samba_run_unconfined --> off
    samba_share_fusefs --> on
    samba_share_nfs --> off
    sanlock_use_samba --> off
    smbd_anon_write --> on
    tmpreaper_use_samba --> off
    use_samba_home_dirs --> on
    virt_use_samba --> on

    Отчёт SELinux, по SSH (команда # getsebool -a | grep -E "ssh")
    fenced_can_ssh --> on
    selinuxuser_use_ssh_chroot --> on
    ssh_chroot_rw_homedirs --> on
    ssh_keysign --> on
    ssh_sysadm_login --> on

    Состояние smb и nmb (команда # systemctl status smb nmb)
    ● smb.service - Samba SMB Daemon
    Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
    Active: active (running) since Ср 2019-06-26 09:34:31 +04; 28min ago
    Docs: man:smbd(8)
    man:samba(7)
    man:smb.conf(5)
    Main PID: 4834 (smbd)
    Status: "smbd: ready to serve connections..."
    CGroup: /system.slice/smb.service
    ├─ 4834 /usr/sbin/smbd --foreground --no-process-group
    ├─ 4862 /usr/sbin/smbd --foreground --no-process-group
    ├─ 4863 /usr/sbin/smbd --foreground --no-process-group
    ├─ 4978 /usr/sbin/smbd --foreground --no-process-group
    └─13069 /usr/sbin/smbd --foreground --no-process-group

    июн 26 09:34:30 nikiv64 systemd[1]: Starting Samba SMB Daemon...
    июн 26 09:34:31 nikiv64 smbd[4834]: [2019/06/26 09:34:31.241082, 0] ../lib/util/become_daemon.c:138(daemon_ready)
    июн 26 09:34:31 nikiv64 smbd[4834]: daemon_ready: STATUS=daemon 'smbd' finished starting up and ready to serve connections
    июн 26 09:34:31 nikiv64 systemd[1]: Started Samba SMB Daemon.

    ● nmb.service - Samba NMB Daemon
    Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
    Active: active (running) since Ср 2019-06-26 09:34:30 +04; 28min ago
    Docs: man:nmbd(8)
    man:samba(7)
    man:smb.conf(5)
    Main PID: 4753 (nmbd)
    Status: "nmbd: ready to serve connections..."
    CGroup: /system.slice/nmb.service
    └─4753 /usr/sbin/nmbd --foreground --no-process-group

    июн 26 09:34:29 nikiv64 systemd[1]: Starting Samba NMB Daemon...
    июн 26 09:34:30 nikiv64 nmbd[4753]: [2019/06/26 09:34:30.126026, 0] ../lib/util/become_daemon.c:138(daemon_ready)
    июн 26 09:34:30 nikiv64 systemd[1]: Started Samba NMB Daemon.
    июн 26 09:34:30 nikiv64 nmbd[4753]: daemon_ready: STATUS=daemon 'nmbd' finished starting up and ready to serve connections
    июн 26 09:37:12 nikiv64 nmbd[4753]: [2019/06/26 09:37:12.631918, 0] ../source3/nmbd/nmbd_become_lmb.c:397(become_local_master_stage2)
    июн 26 09:37:12 nikiv64 nmbd[4753]: *****
    июн 26 09:37:12 nikiv64 nmbd[4753]: [2B blob data]
    июн 26 09:37:12 nikiv64 nmbd[4753]: Samba name server NIKIV64 is now a local master browser for workgroup WORKGROUP on subnet 192.168.8.3
    июн 26 09:37:12 nikiv64 nmbd[4753]: [2B blob data]
    июн 26 09:37:12 nikiv64 nmbd[4753]: *****

    Состав файла smb.conf
    [global]
    workgroup = WORKGROUP
    server string = File Server
    netbios name = nikiv64
    security = user

    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw
    log file = /var/log/samba/log.%m
    max log size = 50

    encrypt passwords = yes
    map to guest = bad user
    security = user
    dns proxy = no
    case sensitive = auto
    dos charset = 866
    unix charset = UTF-8
    passdb backend = tdbsam

    client ntlmv2 auth = yes

    [homes]
    comment = Home Directories
    valid users = %S, %D%w%S
    browseable = No
    read only = No
    inherit acls = Yes

    [home]
    comment = My Files
    path = /home/user
    force user = user
    force group = user
    writable = yes
    guest ok = yes
    create mask = 0775
    directory mask = 0775

    После того, как сервер Samba перестаёт работать, причём только для рабочих станций под Linux, с рабочих станций под Windows доступ к ресурсам сервера есть, хотя немного затянутый, снова проверяю файлы конфигурации и делаю такие же отчёты, они один в один соответствуют предыдущим! После появления проблемы время отклика сервера по SSH (подключение, через Putty) увеличивается с 0,5 секунды до 30 секунд.

  61. Сайт не пропускает ссылки на DropBox. Куда можно отправить\выложить лог? Спасибо.

  62. Нет. То же самое, No mail for tariel

    • Смотрите лог /var/log/maillog Возможно там будет видна какая-то ошибка отправки. Еще как вирант, попробуйте в aliases отдельной строкой обозначить отправку рутовской почты tariel
      root: root,ИМЯ@gmail.com
      root: tariel

      И проверьте еще раз внимательно, нет ли где-нибудь ошибки в написании имени.

      • Сделал отдельной строкой, ничего не поменялось. Вот что упало в лог
        Apr 19 07:10:33 tariel postfix/pickup[31231]: BF7C88016E6: uid=1001 from=
        Apr 19 07:10:33 tariel postfix/cleanup[31606]: BF7C88016E6: message-id=
        Apr 19 07:10:33 tariel postfix/qmgr[3187]: BF7C88016E6: from=, size=786, nrcpt=1 (queue active)
        Apr 19 07:10:33 tariel postfix/local[31608]: BF7C88016E6: to=, orig_to=, relay=local, delay=0.03, delays=0.02/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
        Apr 19 07:10:33 tariel postfix/cleanup[31606]: C405B804DC7: message-id=
        Apr 19 07:10:33 tariel postfix/qmgr[3187]: C405B804DC7: from=, size=908, nrcpt=1 (queue active)
        Apr 19 07:10:33 tariel postfix/local[31608]: BF7C88016E6: to=, orig_to=, relay=local, delay=0.03, delays=0.02/0.01/0/0, dsn=2.0.0, status=sent (forwarded as C405B804DC7)
        Apr 19 07:10:33 tariel postfix/qmgr[3187]: BF7C88016E6: removed
        Apr 19 07:10:34 tariel postfix/smtp[31609]: connect to gmail-smtp-in.l.google.com[2607:f8b0:4002:c03::1b]:25: Network is unreachable
        Apr 19 07:10:35 tariel postfix/smtp[31609]: C405B804DC7: to=, orig_to=, relay=gmail-smtp-in.l.google.com[173.194.219.27]:25, delay=1.3, delays=0/0.01/0.93/0.33, dsn=2.0.0, status=sent (250 2.0.0 OK 1555672235 a3si3398313ybb.292 - gsmtp)
        Apr 19 07:10:35 tariel postfix/qmgr[3187]: C405B804DC7: removed

        • Тут удалена важная информация. Без нее не сделать анализ лога. Судя по всему, движок сайта съел все, что было в треугольных скобках. Покажите скрин этого лога.

  63. Добрый день. Отредактировал файл /ets/aliases, строка
    # Person who should get root's mail
    root: root,tariel,ИМЯ@gmail.com

    При отправке тестового письма на root, на ящик gmail оно приходит, а команда mail для пользователя tariel выводит
    tariel@tariel.vds|~| $ mail
    No mail for tariel

    В чем может быть причина?

    • Я не понял из сообщения, что вы отправляете для tariel? Судя по всему письмо получается без текста, поэтому и получаете соответствующее сообщение - нечего отправлять.

  64. А по какой причине один и тотже скрипт работает на дебиане, но не работает на центосе?
    Выяснил что скрипт получает соединение на рандомный порт.
    Не понимаю что на центе его блокирует.
    На дебиане нет нгинкса. На центе пробовал выключал его.

  65. Николай

    Хочу немного реабилитировать CentOS 7.5. Записал систему с образа на USB_HDD и запустил сервер с него. После этого обновил и почистил систему, через терминал (# yum -y update, # yum -y clean all). Вот уже две недели система нормально работает с USB_HDD. Пока на основном диске держу Fedora 28 server, с ней в течение нескольких месяцев никогда не было ни каких проблем, в том числе и с Transmission-daemon. В CentOS с ним есть небольшая проблема, торренты добавляются только вручную, Transmission-daemon в CentOS напрочь отказывается брать их из указанной папки. Однако сервер на CentOS даже с USB_HDD работает намного быстрее, чем на Fedora 28 server с SATA, заметно даже невооружённым глазом, во-первых, откликается примерно в два раза быстрее, а во-вторых, отсутствуют "подмерзания" при воспроизведении с него видеофайлов на домашнем кинотеатре, даже с максимальным разрешением. Прошу помощи, если кто-то решил аналогичную проблему с Transmission-daemon в CentOS 7.5.

  66. Может кто подсказать по тунелю. Он вроде качает файл, хотя если вбить адрес этот в урл то выдает ошибку. И при установке выдает такое.
    cd /opt && curl -O -L https://rpmfind.net/linux/fedora/linux/updates/25/x86_64/Packages/s/stunnel-5.41-1.fc25.x86_64.rpm
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 276 100 276 0 0 814 0 --:--:-- --:--:-- --:--:-- 816
    rpm -ivh stunnel-5.41-1.fc25.x86_64.rpm
    error: open of failed: No such file or directory
    error: open of failed: No such file or directory
    error: open of 404 failed: No such file or directory
    error: open of Not failed: No such file or directory
    error: open of Found failed: No such file or directory
    error: open of failed: No such file or directory
    error: open of Not failed: No such file or directory
    error: open of Found failed: No such file or directory
    error: open of The failed: No such file or directory
    error: open of requested failed: No such file or directory
    error: open of URL failed: No such file or directory
    error: open of /linux/fedora/linux/updates/25/x86_64/Packages/s/stunnel-5.41-1.fc25.x86_64.rpm failed: No such file or directory
    error: open of was failed: No such file or directory
    error: open of not failed: No such file or directory
    error: open of found failed: No such file or directory
    error: open of on failed: No such file or directory
    error: open of this failed: No such file or directory
    error: open of server. failed: No such file or directory
    error: open of failed: No such file or directory

  67. Александр

    Статья отличная! У себя ещё настроил терминальный сервер. И при подключении через RDP или vnc не получается перевести раскладку на en, соответственно и войти не получается. Ибо пользователь на en и пароль тоже. Может вы можете что нибудь подсказать?

  68. Баба Зина

    Дратути!

    Откуда оно возьмёт заявленные в начале статьи обновления? Пишет:
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Неизвестная ошибка"
    И дальше ещё несколько абзацев.

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

    Сердешно благодарствую.

  69. Станислав

    Может кто подсказать в чем проблема? Не могу зайти на измененый порт в sshd_config расскоментировал строчку порт и вписал свой.
    Делал и systemctl reload sshd и systemctl restart sshd. В iptables так же порты прописываю. пробовал разные порты ни как не работает. если закоментировать сточку порт то уходит на 22 и все норм работает.

    netstat -tulpn | grep sshd
    tcp 0 0 0.0.0.0:12222 0.0.0.0:* LISTEN 16027/sshd
    tcp6 0 0 :::12222 :::* LISTEN 16027/sshd

    systemctl status sshd
    Stopped OpenSSH server daemon.
    Starting OpenSSH server daemon...
    Server listening on 0.0.0.0 port 12222.
    Server listening on :: port 12222.
    Started OpenSSH server daemon.

    • Если нигде нет ошибки и фаервол настроен правильно, то блокировать работу sshd на нестандартном порту может SELinux.

  70. Николай

    Снова развернул с образа CentOS 7.5 server, отработал неплохо около недели и снова, теперь уже при скачивании файла из интернет "отвалился" примонтированный диск, на который я скачивал, система его просто перестала видеть. Перезагрузился и всё восстановилось, однако, через несколько часов, это повторилось. Ещё одна небольшая проблема, из-под CentOS, Transmission-daemon наотрез отказывается брать торрент файлы из указанной папки, но это не так важно, можно и вручную вставить. Исчезновение ресурса сервера намного важнее. Плюнул на всё, снёс CentOS и установил Fedora 28 Plasma, которую настроил, как сервер. Основное время система работает без GUI, а когда надо скачать из интернета что-нибудь по прямой ссылке, подключаюсь к серверу, через Teamviewer, запускаю Firefox и вперёд! И всё опять работает, как надо. В общем в Fedora 28 получилось всё, что задумал, даже больше, ПРЕКРАСНАЯ СИСТЕМА!!!

  71. Ярослав

    Добрый день. После отключения selinux и перезагрузки, ось перестала загружаться, выдает "failed to load selinux policy, freezing". Hyper-V 2008R2. Прошу подсказать, с чем может быть связанна такая ситуация?

    • 100% ошибка в конфигурационном файле /etc/sysconfig/selinux Либо опечатались, либо отредактировали не то. Тут уже были подобные отзывы. Отключение selinux не может приводить к поломке машины.

      • Ярослав

        Да, Вы полностью правы, по указанному пути есть 2 строки, изменения необходимо было внести в первую, я внес во вторую, в результате чего был вызван сбой ос'и. Спасибо за проделанную работу!

  72. Здравствуйте,
    в пункте /etc/iptables_rules.sh export WAN_IP=149.154.71.205, у меня ipv4+ipv6, подскажите, как туда добавить ipv6?
    Спасибо.

  73. Максим

    Время и т.д легко настраивать командой timedatectl.

  74. Станислав

    Добрый день! нужна помощь, есть vps сервер, centos 7.3 к нему нужен доступ через браузер, к примеру 81.213.233.21:20025 или 81.213.233.21:10223 , открытый 22 и 10223 порт, это прокси сервер, пытаюсь открыть порт командой sudo firewall-cmd —zone=public —permanent —add-port=20025/tcp, sudo firewall-cmd —zone=public —permanent —add-port=20025/udp, пишет что он есть в зоне public, но доступа к нему нет, что уже только не пробовал, может нужно как-то пробросить порты? но как? уже не знаю что делать

  75. Николай

    Недели две назад Transmission-daemon перестал запускать торренты из указанной папки, вручную запускаются нормально. Проверил всё, задавал вопросы на форумах, однако проблему решить не удалось и это вкупе с периодическими глюками файловой системы при записи файлов большого размера, заставляет меня отказаться от использования CentOS на сервере. К счастью у меня сохранился образ Ferdora 27 server, которой я разворачиваю на домашний сервер. Если он будет работать нормально, то проблема в CentOS, понаблюдаю и оставлю Fedora 27 на сервере. Диски проверил различными утилитами, ошибок нет. Только что развернул Fedora 27 server с образа, запустил, обе проблемы исчезли.

    • Это у вас явно какая-то локальная проблема. Я ничего подобного никогда не наблюдал. Centos используется на миллионах серверов в мире и считается одной из самых надежных и стабильных систем. Я бы на вашем месте остановился на том дистрибутиве, что работает без глюков и не тратил на это время, если нет любопытства разобраться.

      • Николай

        Fedora является обкаточным полигоном для новых разработок Red Hat и CentOS, стало быть они теоретически абсолютно совместимы. CentOS я устанавливал в разделы, подготовленные при установке Fedora, без каких бы то ни было изменений, настройку системы вел буквально по буквам подробнейшего руководства, которое составил при установке и настройке Fedora, конфигурационные файлы Transmission-daemon (settings.json, transmission-daemon, transmission-daemon.service) просто копировал в соответствующие каталоги, настраивал аналогично. Структура каталогов о обеих систем абсолютно идиентичная, поэтому сервер заработал сразу и без проблем. Но они появились немного позднее, сначала появилась проблема с копированием больших файлов. Замена винчестера не помогла, более того "глючный" винчестер прекрасно работает в Windows, а проблема осталась и с новым винчестером. Возможно проблема с Transmission-daemon связана с ним самим, много ранее, когда у меня на сервере 5 лет стоял Debian 7, Transmission тоже отказывался брать торрент файлы из указанного каталога (признавал их ошибочными) и приходилось добавлять их вручную.

      • Николай

        А разобраться-то очень хочется, тем более, что аналогичная проблема начала появляться на десктопе в ОС Fedora 29, поэтому в качестве основной на десктопе держу Fedora 28, а 29 версию тестирую на USB_HDD.

      • Николай

        Проблема пропала, когда я заменил системную плату Asus PRIME B250M-K на более старую Asus P8 H67-V. Как оказалось, причина в том, что компания Asus выпускает новые "материнки", "заточенные" под Windows 10 и не гарантирует работу с Linux и устаревшими версиями Windows. В случае с Windows XP и Windows 7 вообще даже не удалось начать установку XP-шка просто в начале установки срывается в "Экран синей смерти", а Windows 7 выводит сообщение "Не найден раздел для установки". Заказал системную плату Gigabyte, у неё немного другой чипсет, попробую на ней.

  76. Сергей

    Ошибся. Как установить Memcache?
    Можете помочь установить CentOS 7? Я добавил вас в скайп. Мой скайп traderfx777

  77. Сергей

    Как установить memesh?
    Спасибо

  78. Николай

    Проверил диски на наличие ошибок, ошибок нет. Загрузил систему с флешки и протестировал железо сервера, всё в норме. Снова восстановил систему с того же образа и система снова заработала. Надолго ли. Ничего не понимаю.

  79. Николай

    Сегодня снова попытался записать большой файл на сервер CentOS 7.5, теперь уже из Windows. Снова та же проблема, файл скопировался примерно на 40% и далее тормоз, всё застопорилось. Отменил копирование, зашёл, через Putty на сервер и попробовал удалить файл, не получилось, даже под root. Теперь я полностью уверен, что это проблема в CentOS. Ранее, когда на сервере стояла система Debian 7, за 5 лет интенсивной эксплуатации сервера не было ни одного сбоя. Видно придётся переходить на Debian, или совсем отказываться от Linux. Я более 25 лет работал сисадмином, начинал с Windows NT server, закончил Windows 2008 R2 server и за всё время не было ни каких проблем. Самое интересное, что после предыдущего раза ничего с системой не делал,только развернул её с образа и всё.

  80. Николай

    Развернул с образа Debian 9.5.0 Amd 64 вместо Fedora 28, произвёл полное обновление, обновился до версии 9.6.0. Перед заменой ОС попробовал скопировать и переместить большой файл из Федоры на сервер, снова появились обе ошибки. После замены системы на Debian и его обновления произвёл те же операции, ошибок нет. Получается, что проблема всё-таки в Федоре.

  81. Николай

    И снова здравствуйте! Сегодня мой сервер на CentOS 7.5 снова преподнёс "нежданчик". Копирование файла большого размера, около 2 GB после копирования половины файла, неожиданно завершилось сообщением, что копирование невозможно, диск защищён от записи. Скопированную часть файла даже не удалось удалить, зайдя на сервер с правами root. После нескольких перезагрузок сервера всё-таки удалось скопировать файл на сервер и то из-под Windows. Для этого файл сначала из-под Федоры переписал на раздел ntfs, а затем уже из-под Windows на сервер. Этот глюк CentOS у меня произошёл не в первый раз, в прошлый раз это было примерно 2 месяца назад. Систему на сервере не обновлял, вообще отключил обновление. Получается оно ни при чём. Ещё одна проблема и в Fedora 27(28) и в CentOS, в Dolphin, при перемещении файла из одной папки в другую, исходный файл не удаляется с выводом сообщения о невозможности удаления. Если я сначала копирую файл, а затем удаляю его вручную, всё происходит нормально. Буду благодарен за любую помощь по этим проблемам.
    PS: таких проблем у меня не было ни одного раза, ни в MS DOS, ни в любой, даже самой глючной Windows, даже в Millennium.

  82. Добрый день!
    Ситуация: был сервер FreeBSD, который после сбоя заменили на сервер CentOS 7
    на сервере два аппаратных RAID 0 (зеркало)
    на первом зеркале сейчас установлена ОС CentOS 7
    на втором зеркале всё, что ранее было на сервере FreeBSD
    оба зеркала в CentOS 7 видно, но зеркало от FreeBSD подмонтировать нельзя ввиду того, что там ufs

    /dev/mapper/centos-root: UUID="5ee42aec-6c89-46d5-85d4-b4cf199fe4de" TYPE="xfs"
    /dev/sda2: UUID="7EdzoA-SvSU-laqn-f12e-pHsU-cni5-Td5RBj" TYPE="LVM2_member"
    /dev/sda1: UUID="be18db3a-6f99-48b4-97b3-e74a6b761c1e" TYPE="xfs"
    /dev/mapper/centos-swap: UUID="64b3f891-e9f2-4fb6-a500-66304e2b225d" TYPE="swap"
    /dev/sdb1: UUID="577f6498cc641d1c" TYPE="ufs" PARTUUID="c0f4b88b-44e5-11e6-b9ec-f4ce460f4d2f"
    /dev/mapper/centos-home: UUID="5ce13c35-aeda-4970-a1f8-8521f3674286" TYPE="xfs"

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda 8:0 0 931,5G 0 disk
    ├─sda1 8:1 0 1G 0 part /boot
    └─sda2 8:2 0 930,5G 0 part
    ├─centos-root 253:0 0 50G 0 lvm /
    ├─centos-swap 253:1 0 7,9G 0 lvm [SWAP]
    └─centos-home 253:2 0 872,6G 0 lvm /home
    sdb 8:16 0 931,5G 0 disk
    └─sdb1 8:17 0 931,5G 0 part

    после двухдневного путешествия по факту не найдено реальнодействующего способа подмонтировать это FreeBSD-шное зеркало к CentOS 7, чтобы забрать оттуда информацию.

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

    • Как мне кажется, проще всего загрузиться с какого-нибудь live cd с freebsd и перенести куда-нибудь данные. Я не помню, какие файловые системы поддерживает freebsd. Но можно что-то найти, что потом поймет и centos. Думаю, даже на fat32 будет проще всего, если freebsd не понимает ext4.

  83. большое спасибо за статью. Однозначно в личное how-to

  84. Добрый день. Не получается настроить отправку почты на внешний ящик MAIL.RU
    Вот мои настройки

    /etc/postfix/main.cf

    # Имя сервера, которое выводит команда hostname
    myhostname = corp.moloko.ru
    # Здесь по логике нужно оставлять только домен, но в данном случае лучше оставить полное имя сервера, чтобы в поле отправитель
    # фигурировало полное имя сервера, так удобнее разбирать служебные сообщения
    mydomain = corp.moloko.ru
    mydestination = $myhostname
    myorigin = $mydomain
    # Адрес сервера, через который будем отправлять почту
    relayhost = smtp.mail.ru:465
    smtp_use_tls = yes
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_tls_security_level = may

    /etc/postfix/sasl_passwd
    smtp.mail.ru:465 oleg@mail.ru:zxcasdzxc

  85. Привет!
    После того, как ставлю SELINUX=disabled
    Ребутаю, загрузка центоса останавливается на белой строке внизу, нажимаю вниз, там в нижней строке ошибка
    [!!!!!!!!!!!] Failed to load SElinux policy, freezing

    • Возможно какая-то ошибка в конфиге /etc/sysconfig/selinux

      • Но как войти в центос? он не загружается( Уже 2 раза переустанавливал и такая хрень вот(

        • ВСе, я тупанул, не туда дисабл ставил, ставил селинукстайп а не в селинукс)))

          • Николай

            Я SELinux не отключал, а всё-таки смог его настроить. Методом "научного тыка" включал политики для Samba и для SSH, в итоге всё получилось, сервер работает, доступ и из Windows и из Linux к серверу есть, разграничение доступа настроены. Хотелось бы найти описания политик для SELinux, хотя бы на английском языке, а то "метод тыка" слишком малопродуктивен.

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

              • Николай

                Совершенно случайно набрёл на англоязычный сайт "httpd_selinux(8) - Linux man page", (https://linux.die.net/man/8/httpd_selinux). Похоже это то, что я искал, буду переводить и разбираться. Кому необходимо, используйте. Что же касается отключения SELinux, то с этим я немного не согласен, вещь, как будто бы хорошая, да и привычка у меня разбираться со всем непонятным. К тому же не просто так самая продвинутая компания SELinux разработала. А рекомендуют отключать скорее всего потому, что не знают, как настраивать и не хотят с этим заморачиваться.

                • Не то, что не знают. Не всегда в этом есть смысл. Ну например, небольшая компания на 100 человек, сервер мониторинга внутренней инфраструктуры на zabbix. Зачем там SELinux? Или там же внутренний веб сервер с wiki.

                  SELinux нужен там, где есть повышенные требования к безопасности, либо публичный сервис. В общем случае считаю, что настроек firewall и своевременных обновлений достаточно для обеспечения безопасности.

                  • Николай

                    Вообще-то у меня домашний сервер. Его основная задача, скачивать из интернет ПО, фильмы, музыку и затем раздавать всё это в домашней сети. Просто выйдя на пенсию исполнил свою мечту и из оставшихся после апгрейта комплектующих, 6 лет назад сделал сервер. Всю жизнь работал сисадмином в сетях под Windows, а выйдя на пенсию решил разобраться в Linux и втянулся.

  86. Николай

    Вот уже скоро месяц, как CentOS 7.5 работает нормально. Обновлений системы не делал, опасаюсь последствий. Понаблюдаю за системой пару месяцев, потом создам образ и снова обновлю. Может быть на этот раз повезёт.

  87. Николай

    Прошу прощения, что не ответил. Очень рад за Вас, что всё получилось. Был занят другими неотложными делами и на сайт не заходил. У меня на сервере в CentOS появился "нежданчик", при копировании больших файлов (около 1 GB), копируется примерно 80% файла, а затем копирование прерывается с выдачей сообщения, что копирование невозможно по причине, что диск назначения только для чтения. Несколько раз перезагрузил сервер, проверил все настройки, диски на предмет ошибок, ничего не нашёл. Восстановил с образа Fedora 27, проблема пропала. Снова развернул образ CentOS на USB_HDD, который создал перед последним обновлением, всё работает. Очевидно проблема появилась при неудачном обновлении системы. Понаблюдаю с недельку и верну CentOS на SCSI винчестер. Видно придётся отказываться от обновлений.

  88. Максим

    приветствую)
    начал обучаться и что бы было понимание в centos 7.
    настроил по вашему расписанному примеру, все нормально, даже все отлично)
    Но до того момента пока не поменял порт с 22 на 25333, putty наотрез отказывается подключаться зараза...даже не могу понять в какую сторону копать...ниже приведу логирование из путти
    2018-09-16 03:03:30 Starting 4908 from user
    2018-09-16 03:03:32 Hyperlink patch: regex successfully compiled
    2018-09-16 03:03:32 Looking up host "IP"
    2018-09-16 03:03:32 Connecting to IP port 25333
    2018-09-16 03:03:32 We claim version: SSH-2.0-PuTTY_PuTTY
    2018-09-16 03:03:32 Hyperlink patch: regex successfully compiled
    2018-09-16 03:03:57 Failed to connect to ******: Ñåòåâàÿ îøèáêà: Âðåìÿ îæèäàíèÿ ñîåäèíåíèÿ èñòåêëî
    2018-09-16 03:03:57 Ñåòåâàÿ îøèáêà: Âðåìÿ îæèäàíèÿ ñîåäèíåíèÿ èñòåêëî
    2018-09-16 03:04:07 Lost connection, reconnecting...

    • Аноним

      2018-09-16 03:03:30 Starting 4908 from user
      2018-09-16 03:03:32 Hyperlink patch: regex successfully compiled
      2018-09-16 03:03:32 Looking up host "тут ip"
      2018-09-16 03:03:32 Connecting to тут ip port 25333
      2018-09-16 03:03:32 We claim version: SSH-2.0-PuTTY_PuTTY
      2018-09-16 03:03:32 Hyperlink patch: regex successfully compiled
      2018-09-16 03:03:57 Failed to connect to IP: Сетевая ошибка: Время ожидания соединения истекло
      2018-09-16 03:03:57 Сетевая ошибка: Время ожидания соединения истекло

      • Максим

        физического доступа к серверу нет, только ssh или снести его и поставить заного...
        но, это не вариант ибо там настроение уже по вашим методичкам)))
        подскажите, куда капать что бы подключиться...эх
        заранее благодарю...)

    • Проблемы с подключением к SSH после смены порта могут быть по следующим причинам:
      1. В конфиге SSH была сделана какая-то ошибки и он после перезапуска не запустился.
      2. Не перенастроен firewall на открытие нового порта.
      3. Работает SELinux, в нем не изменен порт SSH, в итоге он не дал стартануть демону sshd.

      В любом случае, если не подключается по ssh, нужен доступ к консоли сервера. Вообще, мне кажется очевидным, что нельзя переконфигурировать параметры, которые влияют на удаленное подключение к серверу (ssh, firewall и т.д.), если у вас нет прямого доступа к консоли. Пожалуй, стоит об этом упомянуть в статье.

      • Максим

        Получилось достучаться до сервака
        вот лог что работает ssh на порту 25333, но подключиться нереально с новым сеансом через путти
        # systemctl status sshd.service
        ● sshd.service - OpenSSH server daemon
        Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
        Active: active (running) since Вс 2018-09-16 21:10:25 MSK; 19s ago
        Docs: man:sshd(8)
        man:sshd_config(5)
        Main PID: 1415 (sshd)
        CGroup: /system.slice/sshd.service
        └─1415 /usr/sbin/sshd -D

        сен 16 21:10:25 sib systemd[1]: Starting OpenSSH server daemon...
        сен 16 21:10:25 sib sshd[1415]: Server listening on 0.0.0.0 port 25333.
        сен 16 21:10:25 sib sshd[1415]: Server listening on :: port 25333.
        сен 16 21:10:25 sib systemd[1]: Started OpenSSH server daemon.

        SELinux * отключен совсем
        firewall - отключен тоже, работает iptables
        В конфиге SSH была сделана какая-то ошибки - нет ошибок вообще, взята ваша конфигурация скрипта и исправлен только пор 22 и ip

        • Максим

          да логи ssh
          netstat -tulpn | grep sshd
          tcp 0 0 0.0.0.0:25333 0.0.0.0:* LISTEN 1361/sshd
          tcp6 0 0 :::25333 :::* LISTEN 1361/sshd

          • Максим

            в конфигах нет ошибок, я вот прям в ступоре куда капать и где ошибка.
            сейчас подключение ssh по порту 25333 и оно не дает подключиться.

            • Максим

              Все вопрос не актуальный...
              запустился доступ по ssh по порту 25333
              парадокс и фантастика...
              спасибо за советы и внимание к моей проблеме)
              данная ситуация разрешилась сама собой или как вариант из серии пользователей "оно само сломалось" и внезапно починилось)))

  89. Николай

    Я создал домашний сервер на основе CentOS 7, работает всё, кроме доступа к ресурсам сервера (дискам, папкам файлам) из Linux через SSH. Доступ возможен только при посредстве Samba как «Сетевой диск Microsoft Windows», причём и из Linux, и из Windows. Подсоединиться к серверу и управлять им, через SSH, используя Putty получается и из Linux и из Windows. Однако при попытке подсоединения ресурса сервера по SSH (Процедура добавления сетевой папки SSH в Dolphin) выдаётся сообщение: «Невозможно подключиться к серверу. Проверьте параметры и повторите попытку». Все настройки сервера делал аналогично, как и на ранее используемой ОС сервера Fedora 27, однако на Fedora всё работало. Firewall настроен, необходимые порты (20, 21, 22, 80, 137, 138, 139, 443, 445, 9091) открыты, последний используется для работы Transmission-daemon. SELinux настроен, пробовал его отключать, однако проблема этим не решается. Заменить Fedora на CentOS решил по причине нестабильности Fedora, в ней, для ликвидации «нежданчиков», приходилось создавать резервный образ системы перед каждым её обновлением.
    После перевода одного из англоязычных сайтов нашёл сведения о том, что для доступа по SSH надо установить на сервер приложение «NFS сервер». Может быть именно из-за его отсутствия по-умолчанию в CentOS 7 у меня и нет доступа к ресурсам по SSH? Как проверить его наличие, не знаю. Когда я ранее устанавливал Fedora 27 на сервер, то использовал серверную редакцию дистрибутива, в частности образ «Fedora-Server-dvd-x86_64-27-1.6.iso».

    • Вы что-то путаете. SSH и NFS совершенно разные вещи, никак друг с другом не связанные. Через SSH можно получить доступ к файлам, но чаще всего этот протокол используют для управления сервером. А вот NFS как раз используется для доступа к файлам. На сервере настраивается nfs сервер, а nfs клиент подключается и получает доступ к настроенным для удаленного доступа директориям и файлам.

      • Николай

        У меня с тех пор, когда на сервере стояла Fedora в остальной локальной сети абсолютно ничего не изменилось те же операционные системы и те же настройки, в Федору на сервере NFS-сервер не устанавливал, если только он в ней был предустановлен по-умолчанию. А вообще-то проблему я решил. немного изменив расположение папок, в которые монтируются общие ресурсы, переместил их в отдельную папку и дал к ней доступ, через Самбу. Единственное, что сейчас не могу сделать на сервере, это редактировать системные файлы, через Dolphin и приходится запускать Putty, ранее с Федорой на сервере, делал это запросто, подсоединив любой ресурс по SSH, а далее делал, что хотел. Хотя, может быть, это и к лучшему.

      • Николай

        Вернулся на Федору. Ни с того, ни с сего CentOS-овский сервер начал выкидывать "коленца", во время перемещения, или записи файлов на диск, копирует примерно 80% файла и выводит сообщение о невозможности копирования, или перемещения в виду того, что диск назначения доступен только для чтения. Копирование (перемещение) производил и из Windows (проводником и Total Commander) по сети и зайдя на сервер, через Putty при помощи mc, как пользователь, член группы и как root, результат один. Проверил диск назначения на наличие ошибок, ошибок нет. Пробовал установить для этого диска chmod 777, не помогло. Восстановил Fedora 27 с образа, сделал несколько перемещений файлов на этот же диск, всё нормально. Стало быть проблема в CentOS.

  90. Не знаю, возможно)
    Я не в претензии просто интересно почему так.
    sshd слушает порт, а входящие пакеты на него все равно дропаются…
    Может собака порылась где-то в DO

    • Вполне может быть. Там скорее всего подготовленные определенным образом шаблоны. Возможно, некоторые предустановки выполнены заранее, например сети или firewalld. И эти настройки конфликтуют с тем, что описано у меня. Надо внимательно смотреть. Сам я DO не использую. Особенно последнее время, когда куча их адресов в блоке роскомнадзора.

  91. Доброе утро!
    Скажите, а почему при применении правил iptables из файлика статьи все перестает работать? :-)
    Какие логи смотреть?

    Хостинг DigitalOcean, CentOS 7.5

    Просто плюется в консольку статистикой работы iptables:например, что дронуло подключение с такого-то ip)))

    • Можно локально в консоли набрать команду:
      iptables -L -v -n
      и посмотреть, какие правила реально применились. Скорее всего у вас где-то ошибка. Я по этой статье постоянно настраиваю свои серверы. Тут нет ошибок, если все делать правильно.

    • Аноним

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

      • Это да, самая частая ошибка. Сам иногда попадаюсь на нее.

        • Аноним

          Я вот сейчас поднимал сервер, не посмотрел и просто сохранил. После чего пинг не проходит просто на просто. Вернул всё в исходное и поправил eth* и ip. Всё заработало нормально.
          В статье всё гуд. Спасибо.
          Только у меня одна трудность насчет ssh
          по пути etc/ssh/ssh_config есть, а не sshd_config. Открывая существующий конфиг, нет пункта для доступа рута через ssh.

        • Аноним

          Всё, нашел проблему. Пакета openssh-server небыло, поставил. Всё заработало и с SSH

  92. Тоже удивился, когда обнаружил отсутствие ifconfig. Однако тут разжевали

    • Скоро будем удивляться отсутствием iptables. Его тоже выпиливают из дистрибутивов. Уже есть договоренность. На замену идет nftables. Опять переучиваться :( Там синтаксис другой.

      • Аноним

        Скажите, будущую версию ОС не смотрели (скажем, на примере Fedora)?
        Если смотрели, то какие бы ключевые изм.отметили бы?

        • А каким образом можно оценить и посмотреть будущую версию RHEL? Было бы интересно, но сомневаюсь, что на примере федоры можно сделать такую оценку.

          • Аноним

            Про RHEL:
            Насколько я помню, пользователи с активной подпиской на RHEL имеют возм.протестировать бета-версию новой RHEL. Правда, наск.мне известно, на данный момент RHEL 8 beta ещё не существует.
            (Многие коллеги сходятся в том, что основой RHEL 8 станет Fedora 27)

            Про nix:
            Из ваших статей, я заключаю, что из nix-like OS вы в основном работаете с 3-мя: FreeBSD, Debian & CentOS.
            Осмелюсь предположить, что вы начинали с FreeBSD и по-немногу дрейфовали в направлении Линукс. Это так?
            И, что касается Линукс... Как Debian & CentOS "уживаются" вместе? Здесь тоже имеет место ползучий дрейф от одной ОС к др.? Или они существуют в вашей жизни (работе) на в целом паритетных основаниях?

  93. Иоанн Борисов

    Добрый день! не могу найти решение ошибки. При заходи на сервер FreePBX в правом верхнем углу отображается красная надпись: Whoops\Exception\ErrorException Call to undefined method Error::singleton() File:/var/www/html/admin/modules/dashboard/classes/phpsysinfo/includes/output/class.Output.inc.php:40

    А в окне «System Overview» (У меня оно называется «Обзор системы») висит только надпись «There was an error asking for Overview. Check the error logs for more information.». Как можно это исправить?
    Я скачивал образ FreePBX с официального сайта.

  94. настроить сеть проще всего командой nmtui - это "графический" интерфейс в консоли.
    так же есть аналогичная программа для настройки фаервола: system-config-firewall-tui
    в гугле надо искать tui (text user interface) программы для centos

  95. Здравствуйте! Спасибо за полезные статьи.
    Подскажите в чем может быть проблема:
    настроил iptables как в статье, только ip изменил на свой. После применения правил, нет возможности установить что либо через yum, пишет неизвестная ошибка. Делаю stop iptables, yum начинает работать.
    И еще вопрос, если можно:
    Планирую использовать сервер как файлообменник, какие порты открыть для samba?

    • Скорее всего закрыли исходящий трафик для сервера, вот yum и не обновляется.
      Для samba нужно открыть tcp порты - 137,138,139,445.

  96. Андрей

    Добрый день. Я новичок в Linux системах. С CentOS знаком только два дня. На видео вы копипастили команды. Подскажите команду для вставке в консоль.