Настройка сервера CentOS 7 (первые шаги). Настройка сервера centos 7


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

Первым делом обновим базовую систему:

# yum update

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

# yum install 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

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

# mcedit /etc/sysconfig/selinux

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

# reboot

Можно без перезагрузки применить отключение SElinux:

# setenforce 0

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

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

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

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

# history

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

# history | grep yum

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

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

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

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

# source ~/.bashrc

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

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

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

# yum install iftop

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

# yum -y install htop # yum -y install atop

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

# yum install lsof

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

# yum install wget bzip2 traceroute gdisk

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

mozgovoy.in.ua

Как установить и настроить VNC на CentOS 7

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

Виртуальная сетевая вычислительная система (VNC) представляет собой графическую систему совместного использования компьютеров, которая позволяет использовать клавиатуру и мышь для удаленного управления другим компьютером.

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

Установка CentOS-сервера часто не связана с установленной настольной средой, поэтому мы начнем с установки легкой рабочей среды.

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

Пакеты Xfce доступны в репозиториях EPEL. Если на вашем сервере нет репозитория EPEL, вы можете сделать это, набрав:

sudo yum install epel-release

 

После добавления репозитория установите Xfce на свой сервер CentOS, набрав:

sudo yum groupinstall xfce

 

В зависимости от вашей системы, загрузка и установка пакетов и зависимостей Xfce может занять некоторое время.

TigerVNC – это активно поддерживаемый высокопроизводительный VNC-сервер с открытым исходным кодом.

Введите следующую команду для установки TigerVNC на вашем сервере CentOS:

yum install tigervnc-server

 

Теперь, когда установлен VNC-сервер, следующий шаг – запустить команду vncserver, которая создаст начальную конфигурацию и настроит пароль. Не добавляйте sudo в следующую команду:

vncserver

 

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

You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n /usr/bin/xauth: file /home/andreyex/.Xauthority does not exist New 'server2.andreyex.com:1 (andreyex)' desktop at :1 on machine server2.andreyex.com Starting applications specified in /etc/X11/Xvnc-session Log file is /home/andreyex/.vnc/server2.andreyex.com:1.log

 

При первом запуске команды vncserver он создаст и сохранит файл пароля в каталоге ~/.vnc, который будет создан, если он отсутствует.

Обратите внимание, что :1 после имени хоста в выводе выше. Это указывает номер порта дисплея, на котором запущен сервер vnc. В нашем случае сервер работает на TCP-порту 5901 (5900 + 1). Если вы создадите второй экземпляр, vncserver он будет запущен на следующем свободном порту, т. Е. :2 Это означает, что сервер работает на порту 5902 (5900 + 2).

Важно помнить, что при работе с серверами VNC :X используется порт отображения 5900+X.

Прежде чем перейти к следующему шагу, сначала остановите экземпляр VNC с помощью команды vncserver с параметром -kill и номером сервера в качестве аргумента. В нашем случае сервер работает в порту 5901 ( :1), поэтому мы остановим его:

vncserver -kill :1

 

Killing Xvnc process ID 2432

 

Теперь, когда и Xfce, и TigerVNC установлены на нашем CentOS-сервере, следующим шагом будет настройка TigerVNC для использования Xfce. Для этого откройте следующий файл:

nano ~/.vnc/xstartup

 

И изменить последнюю строку exec /etc/X11/xinit/xinitrc на exec startxfce4:

~/.vnc/xstartup

#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4

 

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

Если вам нужно передать дополнительные параметры на сервер VNC, вы можете открыть файл ~/.vnc/config и добавить один вариант на строку. Наиболее часто используемые параметры перечислены в файле. Раскомментируйте и измените по своему вкусу.

Вот пример:

~/.vnc/config

# securitytypes=vncauth,tlsvnc # desktop=sandbox geometry=1920x1080 # localhost # alwaysshared dpi=96

 

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

sudo cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service

 

Откройте файл с помощью текстового редактора и замените его <USER> на фактическое имя пользователя.

sudo nano /etc/systemd/system/vncserver@\:1.service

 

/etc/systemd/system/vncserver@:1.service

[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l andreyex -c "/usr/bin/vncserver %i" PIDFile=/home/andreyex/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target

 

Сохраните и закройте файл. Сообщите системе, что мы создали новый файл с помощью:

sudo systemctl daemon-reload

 

Следующий шаг – включить файл устройства со следующей командой:

sudo systemctl enable vncserver@:1.service

 

Число 1 после знака @ определяет порт отображения, на котором будет работать служба VNC, в нашем случае это значение по умолчанию, 1 и сервер VNC будет прослушивать порт, 5901 как мы обсуждали в предыдущем разделе.

Запустите службу VNC, выполнив:

sudo systemctl start vncserver@:1.service

 

Убедитесь, что служба успешно запущена:

sudo systemctl status vncserver@:1.service

 

● vncserver@:1.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2018-09-16 09:59:53 UTC; 4s ago Process: 6391 ExecStart=/usr/sbin/runuser -l andreyex -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS) Process: 6389 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS) Main PID: 6413 (Xvnc) CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service ‣ 6413 /usr/bin/Xvnc :1 -auth /home/andreyex/.Xauthority -desktop server2.andreyex.com:1 (andreyex) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -pn -rfbauth /home/andreyex/.vnc/passwd -rfbport ...

 

VNC не является зашифрованным протоколом и может подвергаться сниффингу пакетов. Рекомендуемый подход заключается в создании туннеля SSH, который будет безопасно перенаправлять трафик с вашего локального компьютера на порт 5901 на сервер в том же порту.

Если вы запускаете на вашем компьютере Linux, macOS или любую другую операционную систему на базе Unix, вы можете легко создать туннель SSH с помощью следующей команды:

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

 

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

Не забудьте заменить username и server_ip_address на ваше имя пользователя и IP-адрес вашего сервера.

Если вы запустите Windows, вы можете настроить туннелирование SSH с помощью клиента PuTTY SSH.

Откройте Putty и введите IP-адрес вашего сервера в поле Host name or IP address.

 

Затем из окна Category: разверните SSH и выберите Tunnels. Введите порт сервера VNC ( 5901) в поле Source Port и введите server_ip_address:5901 в поле Destination и нажмите кнопку Add, как показано на рисунке ниже:

 

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

Теперь, когда вы настроили туннелирование SSH, пришло время открыть Vncviewer и подключиться к VNC-серверу localhost:5901.

Вы можете использовать любые средства просмотра VNC, такие как TigerVNC, TightVNC, RealVNC, UltraVNC Vinagre и VNC Viewer для Google Chrome.

В этом примере мы будем использовать TigerVNC. Откройте средство просмотра VNC, введите localhost:5901 и нажмите кнопку Connect.

 

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

 

Теперь вы можете начать взаимодействие с удаленным рабочим столом XFCE на вашей локальной машины с помощью клавиатуры и мыши.

К настоящему моменту вы должны запустить сервер VNC, и вы можете легко управлять своим сервером CentOS 7 с помощью графического интерфейса.

Чтобы настроить VNC-сервер для запуска отображения для нескольких пользователей, создайте начальную конфигурацию и настройте пароль с помощью команды vncserver и создайте новый файл службы с помощью другого порта.

andreyex.ru

Установка и настройка CentOS 7 — Администрирование серверов Microsoft

Скачиваем актуальный релиз CentOS с официального сайта http://www.centos.org/download/. Я предпочитаю устанавливать из дистрибутива с минимальной конфигурацией, все что необходимо доставим потом.

Усли мы планируем устанавливать CentOS 7 на физический сервер, то записываем скачанный ISOшник на диск.

Расписывать установку нет смысла (много раз нажимаем «делее» и отвечаем на простые вопросы). Желательно не забыть настроить сетевые параметры, но даже если Вы их не настроите в процессе установки, то это можно будет сделать потом.

В минимальной конфигурации система устанавливается без графической оболочки и это для большинства ролей сервера – хорошо!

Настройка сети CentOS 7

Для настройки сети в CentOS 7 следует использовать утилиту с псевдографическим интерфейсом nmtui, которая уже имеется в системе.

[root@localhost ~]# nmtui

Проверить правильность сетевых параметров можно при помощи команды ip a, которая является аналогом ipconfig /all.

Первоначальные настройки CentOS 7

  1. После настройки сети необходимо обновить ОС. Делается это командой yum update.
  2. [root@localhost ~]# yum update
  3. Устанавливаем Might Commander.
  4. [root@localhost ~]# yum install mc [root@localhost ~]# mc
  5. Устанавливаем репозиторий EPEL — yum install epel-release. Для просмотра списка подключенных репозиториев используем команду — yum repolist
  6. [root@localhost ~]# yum install epel-release [root@localhost ~]# yum repolist

  7. Для наблюдения за производительность полезно установить утилиту atop – продвинутый аналог top. Устанавливаем – yum install atop. Запускаем командой atop. Выход из утилиты кнопка “q”.
  8. [root@localhost ~]# yum install atop [root@localhost ~]# atop

Полезные комманды:

man – помощь по любой команде

df — просмотр свободного места на всех дисках

du -sh — размер текущей папки

du -h — размер всех папок

cat /proc/version — узнать версию ОС

msadmin.ru

Настройка DNS сервера Bind в CentOS 7

Одним из важных сервисов, обеспечивающих функционирование современного интернета является сервис по преобразованию имени сайта в ip адрес. Настройкой реализации сервиса DNS мы займемся в этой статье на примере настройки Bind 9 (named) на сервере под управлением CentOS 7. Мы подготовим минимально необходимый базовый функционал и заглянем немного глубже в настройки логирования.

Что такое DNS сервер BIND

Bind — самая распространенная на текущий день реализация ДНС сервера, которая обеспечивает преобразование IP адресов в dns-имена и наоборот. Его также называют named, например в Freebsd. Судя по информации из Википедии, сейчас 10 из 13 корневых ДНС серверов интернета работают на bind. Он установлен из коробки практически во всех linux дистрибутивах. Я рассмотрю его установку на сервер CentOS 7.

Устанавливаем Bind 9 (named) в CentOS 7

Первым делом проверим, установлен ли у нас днс сервер в системе:

# rpm -qa bind* bind-libs-lite-9.9.4-14.el7.x86_64 bind-license-9.9.4-14.el7.noarch

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

# yum -y install bind bind-utils bind-chroot

Еще раз обращаю внимание, что мы будем использовать bind в chroot среде для увеличения безопасности. Это накладывает определенные особенности в настройке и управлении сервером. Нужно быть внимательным в этих мелочах. Итак, запускаем bind:

# systemctl start named-chroot # systemctl enable named-chroot ln -s '/usr/lib/systemd/system/named-chroot.service' '/etc/systemd/system/multi-user.target.wants/named-chroot.service'

Проверяем содержимое chroot каталога:

# ls -l /var/named/chroot/etc

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

Настраиваем DNS сервер в CentOS 7

Файл конфигурации нашего сервера располагается по адресу /var/named/chroot/etc/named.conf. Открываем его и приводим к следующему виду:

# mcedit /var/named/chroot/etc/named.conf options { listen-on port 53 { any; }; listen-on-v6 port 53 { none; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; allow-query { 127.0.0.1; 192.168.7.0/24; }; recursion yes; allow-recursion { 127.0.0.1; 192.168.7.0/24; }; forwarders { 8.8.8.8; }; version "DNS Server"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; dnssec-enable no; dnssec-validation no; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; logging { channel default_file { file "/var/log/named/default.log" versions 3 size 5m; severity dynamic; print-time yes; }; category default { default_file; }; };

Эта конфигурация обеспечит работу обычного кэширующего сервера в локальной сети. Комментарии к некоторым параметрам:

listen-on-v6 port 53 { none; }; Отключили работу на интерфейсе ipv6.
allow-query { 127.0.0.1; 192.168.7.0/24; }; Разрешаем обычные запросы только из локальной сети.
allow-recursion { 127.0.0.1; 192.168.7.0/24; }; Разрешаем рекурсивные запросы только из локальной сети.
forwarders { 8.8.8.8; }; Перенаправляем запросы, которые сами не резолвим, на днс сервер гугла. У меня указан он просто для примера. Тут лучше всего указать сначала ДНС серверы провайдера.
version «DNS Server»; Скрываем версию бинда, вместо этого выводим указанную строку.

Не забудьте отредактировать правила фаервола для корректной работы DNS сервера — открыть 53 порт UDP для работы кэширующего сервера, который мы сейчас настроили, и 53 порт TCP для пересылки зон, о которых речь пойдет дальше

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

# cd /var/named/chroot/var/log && mkdir named && chown named. named

Поддержка собственной зоны

Допустим, нам необходимо в нашем named разместить собственную зону site1.ru. Первым делом создаем файл зоны, которую будет обслуживать dns сервер:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ IN SOA site1.ru. site1.ru.local. ( 2015092502 43200 3600 3600000 2592000 ) IN NS ns1.site1.ru. IN NS ns2.site1.ru. IN A 192.168.7.254 IN MX 10 mx.site1.ru. gate IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231

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

Выставляем необходимые права:

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone

Дальше подключаем файл зоны в конфигурационном файле bind — /var/named/chroot/etc/named.conf:

zone "site1.ru" { type master; file "site1.ru.zone"; };

Перечитываем конфигурацию named с помощью rndc:

# rndc reconfig

Добавление в bind slave zone

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

zone "site.ru" IN { type slave; masters { 10.1.3.4; }; file "site.ru.zone"; };

10.1.3.4 — ip адрес dns сервера, с которого мы берем зону. Не забудьте на нем разрешить передачу зоны на ваш dns сервер.

Чтобы сервер смог корректно сохранить файл со slave зоной, необходимо добавить разрешение на запись bind для директории /var/named/chroot/var/named. По-умолчанию она имеет следующие права:

drwxrx--- 6 root named 164 Jan 6 06:06 named

Нужно добавить группе named разрешение на запись, чтобы стало вот так:

drwxrwx--- 6 root named 164 Jan 6 06:06 named

После этого можно перезапустить bind и проверить, что создался файл слейв зоны. С указанными выше настройками, он будет располагаться по адресу /var/named/chroot/var/named/site.ru.zone. Если у bind не будет прав для создания файла, в логе вы получите ошибку:

dumping master file: tmp-7Swr6EZpcd: open: permission denied

Настройка логов в bind (named)

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

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

Первым делом в конфигурации мы задаем канал, куда будут складываться логи по тем или иным событиям. Вот пример подобного канала:

channel general { file "/var/log/named/general.log" versions 3 size 5m; severity dynamic; print-time yes;

Здесь указано название канала, которые мы придумываем сами — general, указан путь до файла, сказано, что хранить будем 3 версии лога размером не более 5 мегабайт. Параметр severity может принимать следующие значения:

Описание параметров severity
critical Только критические ошибки.
error Обычные ошибки и все что выше.
warning Предупреждения и все, что выше.
notice Уведомления и все, что выше.
info Информационные сообщения и все что выше.
debug Сообщения уровня debug и все, что выше. Уровни debug  регулируются значениями 0, 1, 2, 3.
dynamic То же, что и debug, только его уровень регулируется глобальной настройкой сервера.

Параметр print-time указывает на то, что в лог необходимо записывать время события. Помимо указанных мной настроек, в конфигурации канала могут быть добавлены следующие параметры:

  • print-severity yes | no — указывает, писать или нет параметр severity в лог
  • print-category yes | no — указывает писать или нет название категории логов

Я эти параметры не указал, так как по-умолчанию устанавливается значение no, которое лично меня устраивает.

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

category general { general; };

Категорий у днс сервера bind достаточно много. Вот мой перевод полного списка с описаниями:

Описание категорий логов в bind (named)
default Сюда будут попадать события всех категорий из этой таблицы, если они не определены отдельно, за исключением категории queries, которую нужно включать специально. То есть если обозначить только категорию default, то в нее будут сыпаться события всех категорий.
general Эта категория для всех логов, которые не включены ни в одну из перечисленных категорий.
database Сообщения, относящиеся к хранению зон и кэшированию.
security Подтверждение и отказ в выполнении запросов.
config Все, что относится к чтению и выполнению файла конфигурация.
resolver Разрешение имен, включая информацию о рекурсивных запросах, выполняемых от имени клиента кэширующим сервером.
xfer-in Информация о получении зон.
xfer-out Информация о передаче зон.
notify Логирование операций протокола NOTIFY.
client Выполнение клиентских запросов.
unmatched Сообщения, которые named не смог отнести ни к одному классу или для которых не определено отображение.
network Логирование сетевых операций.
update Динамические апдейты.
update-security Подтверждение или отклонение запросов на апдейт.
queries Логирование запросов к ДНС серверу. Для включения этой категории необходимо отдельно задать параметр в конфигурации сервера. Это связано с тем, что эта категория генерирует очень много записей в лог файл, что может сказаться на производительности сервера.
query-errors Ошибки запросов к серверу.
dispatch Перенаправление входящих пакетов модулям сервера на обработку.
dnssec Работа протоколов DNSSEC и TSIG.
lame-servers Фиксируются ошибки, которые получает bind при обращении к удаленным серверам в попытке выполнить запрос на разрешение имени.
delegation-only Логирование запросов, вернувших NXDOMAIN.
edns-disabled Запросы, которые вынуждены использовать plain DNS из-за превышения timeouts.
RPZ  Все операции, связанные с выполнение Response Policy Zone (RPZ).
rate-limit  Операции связанные с одним или несколькими rate-limit statements в options или view.

Таким образом, чтобы вывести все категории логов в отдельные файлы, необходимо в конфиг named добавить следующую конструкцию:

logging { channel default { file "/var/log/named/default.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel general { file "/var/log/named/general.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel database { file "/var/log/named/database.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel security { file "/var/log/named/security.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel config { file "/var/log/named/config.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel resolver { file "/var/log/named/resolver.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel xfer-in { file "/var/log/named/xfer-in.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel xfer-out { file "/var/log/named/xfer-out.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel notify { file "/var/log/named/notify.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel client { file "/var/log/named/client.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel unmatched { file "/var/log/named/unmatched.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel network { file "/var/log/named/network.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel update { file "/var/log/named/update.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel update-security { file "/var/log/named/update-security.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel queries { file "/var/log/named/queries.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel query-errors { file "/var/log/named/query-errors.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel dispatch { file "/var/log/named/dispatch.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel dnssec { file "/var/log/named/dnssec.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel lame-servers { file "/var/log/named/lame-servers.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel delegation-only { file "/var/log/named/delegation-only.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel edns-disabled { file "/var/log/named/edns-disabled.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel rpz { file "/var/log/named/rpz.log" versions 3 size 5m; severity dynamic; print-time yes; }; channel rate-limit { file "/var/log/named/rate-limit.log" versions 3 size 5m; severity dynamic; print-time yes; }; category default { default; }; category general { general; }; category database { database; }; category security { security; }; category config { config; }; category resolver { resolver; }; category xfer-in { xfer-in; }; category xfer-out { xfer-out; }; category notify { notify; }; category client { client; }; category unmatched { unmatched; }; category network { network; }; category update { update; }; category update-security { update-security; }; category queries { queries; }; category query-errors { query-errors; }; category dispatch { dispatch; }; category dnssec { dnssec; }; category lame-servers { lame-servers; }; category delegation-only { delegation-only; }; category edns-disabled { edns-disabled; }; category rpz { rpz; }; category rate-limit { rate-limit; }; };

Если мы хотим собирать все логи запросов из категории queries, то в раздел options файла конфигурации необходимо добавить параметр, который это разрешает:

querylog yes;

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

# systemctl restart named-chroot.service

Проверка работы DNS Server

Первым делом пойдем в каталог с логами и проверим, что там у нас:

# cd /var/named/chroot/var/log/named # ls -l

Все файлы журнала созданы и начали наполняться. Можно проверить один из них. Например, посмотрим, как наш сервер centos (192.168.7.246) логирует запросы пользователей. Попробуем с компьютера 192.168.7.254 (windows) выполнить nslookup yandex.ru и посмотрим как это отразится в лог файле:

26-Sep-2015 19:25:30.923 client 192.168.7.254#56374 (yandex.ru): query: yandex.ru IN A + (192.168.7.246) 26-Sep-2015 19:25:31.013 client 192.168.7.254#56375 (yandex.ru): query: yandex.ru IN AAAA + (192.168.7.246)

Теперь выполним ping site1.ru, чтобы проверить, как сервер поддерживает нашу зону:

Смотрим, что в логах:

26-Sep-2015 19:28:01.660 client 192.168.7.254#49816 (site1.ru): query: site1.ru IN A + (192.168.7.246)

Таким образом очень удобно отследить, куда лезет компьютер. Например, можно поднять временно dns сервер, включить лог запросов. В клиенте указать единственный днс сервер, который мы настроили. Дальше можно отслеживать, к примеру, куда лезет винда после загрузки без нашего ведома. Или откуда грузится реклама в скайпе. Все запросы будут аккуратно складываться в файл, который потом можно спокойно анализировать, а затем, к примеру, настроить запрет сайтов на микротике.

Это все, что я хотел в данном материале рассказать. Тема настройки bind (named) достаточно обширная. Возможно я еще вернусь к ней.

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по CentOS

Настройки системы Настройка программных комплексов Настройка отдельных программ Разное
Рекомендую полезные материалы по CentOS:
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел. Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования. Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое. Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др. Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей. Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии. Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4. Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование. Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
  • Настройка ssl в Apache
  • Бэкап с помощью rsync

serveradmin.ru

Настройка сервера CentOS 7 (первые шаги) — WebNoob.ru

#!/bin/bash

#

# Объявление переменных

export IPT="iptables"

 

# Интерфейс который смотрит в интернет

export WAN=eth0

export WAN_IP=192.168.0.1

 

# Очистка всех цепочек 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 --tcp-flags ALL NONE -j DROP

 

# Приводит к связыванию системных ресурсов, так что реальный

# обмен данными становится не возможным, обрубаем

$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

 

# Открываем порт для ssh

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

# Открываем порт для DNS

$IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT

# Открываем порт для NTP

$IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT

# Открываем порт для HTTP

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

# Открываем порт для HTTPS/SSL

$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

webnoob.ru

Настройка сервера CentOS 7 – Linuxin

Введение

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

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

Итак, у нас имеется: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Итак, у нас имеется:

# uname -a

Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP Thu Jan 29 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Первым делом обновим базовую систему: Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc: Дальше нам пригодятся сетевые утилиты. В минимальной настройке вы будете удивлены, когда наберете команду: И увидите ответ:

-bash: ifconfig: command not found

-bash: ifconfig: command not found

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

Вместо ifconfig в CentOS 7 теперь утилита ip. Я не понимаю, зачем пилить отдельные программы для управления сетевыми настройками, если ifconfig и так отлично справляется с задачей. К тому же мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это неудобно. Так что предлагаю установить привычный ifconfig.

Сделаем это:

# yum -y install net-tools.x86_64

# yum -y install net-tools.x86_64

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

Будет вывод:

-bash: nslookup: command not found

-bash: nslookup: command not found

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

# yum -y install bind-utils

# yum -y install bind-utils

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

# mcedit /etc/sysconfig/selinux

# mcedit /etc/sysconfig/selinux

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

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

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

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

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

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

# /etc/init.d/network restart

# /etc/init.d/network restart

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

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

Сразу хочу предупредить, что не имея доступа к консоли сервера, настраивать firewall плохая идея. Даже если вы очень хорошо понимаете что делаете и проделывали подобное много раз, все равно есть шанс остаться без доступа к серверу. Так что первым делом перед настройкой iptables проверяем доступ к консоли через KVM или физически.

В 7-й версии CentOS для управления iptables разработан новый инструмент под названием firewalld и все управление производится через него. Я не понял зачем это сделали, и не могу сказать, удобнее с ним стало или нет. По мне, так удобнее использовать одни и те же наработки по iptables. Мигрируя от сервера к серверу и от дистрибутива к дистрибутиву, я просто редактирую скрипт настроек фаервола.

Но CentOS зачем-то придумали firewalld, в Ubuntu стоит ufw, но суть одна и та же — это утилиты для конфигурирования iptables, который один и тот же во всех дистрибутивах. Я привык управлять iptables через самописный скрипт, который переношу от сервера к серверу и редактирую под конкретные потребности. Этим скриптом я и поделюсь. Так что для начала остановим и отключим firewalld:

# systemctl stop firewalld # systemctl disable firewalld rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service' rm '/etc/systemd/system/basic.target.wants/firewalld.service'

# 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 -y install iptables-services

# yum -y install iptables-services

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

# systemctl enable iptables

# systemctl enable iptables

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

#!/bin/bash # # Объявление переменных export IPT="iptables" # Интерфейс который смотрит в интернет export WAN=eth0 export WAN_IP=149.154.71.205 # Очистка всех цепочек iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Установим политики по умолчанию для трафика, не соответствующего ни одному из правил $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # разрешаем локальный траффик для loopback $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT # Разрешаем исходящие соединения самого сервера $IPT -A OUTPUT -o $WAN -j ACCEPT # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. # Пропускать все уже инициированные соединения, а также дочерние от них $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, а так же уже инициированные и их дочерние соединения $IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для уже инициированных и их дочерних соединений $IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Отбрасывать все пакеты, которые не могут быть идентифицированы # и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Приводит к связыванию системных ресурсов, так что реальный # обмен данными становится не возможным, обрубаем $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Открываем порт для ssh $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Открываем порт для DNS $IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT # Открываем порт для NTP $IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT # Логирование # Все что не разрешено, но ломится отправим в цепочку undef $IPT -N undef_in $IPT -N undef_out $IPT -N undef_fw $IPT -A INPUT -j undef_in $IPT -A OUTPUT -j undef_out $IPT -A FORWARD -j undef_fw # Логируем все из undef $IPT -A undef_in -j LOG --log-level info --log-prefix "-- IN -- DROP " $IPT -A undef_in -j DROP $IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP " $IPT -A undef_out -j DROP $IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP " $IPT -A undef_fw -j DROP # Записываем правила /sbin/iptables-save &gt; /etc/sysconfig/iptables

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

#!/bin/bash

#

# Объявление переменных

export IPT="iptables"

 

# Интерфейс который смотрит в интернет

export WAN=eth0

export WAN_IP=149.154.71.205

 

# Очистка всех цепочек iptables

$IPT -F

$IPT -F -t nat

$IPT -F -t mangle

$IPT -X

$IPT -t nat -X

$IPT -t mangle -X

 

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил

$IPT -P INPUT DROP

$IPT -P OUTPUT DROP

$IPT -P FORWARD DROP

 

# разрешаем локальный траффик для loopback

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

 

# Разрешаем исходящие соединения самого сервера

$IPT -A OUTPUT -o $WAN -j ACCEPT

 

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.

# Пропускать все уже инициированные соединения, а также дочерние от них

$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Пропускать новые, а так же уже инициированные и их дочерние соединения

$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешить форвардинг для уже инициированных и их дочерних соединений

$IPT -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

 

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

 

# Отбрасывать все пакеты, которые не могут быть идентифицированы

# и поэтому не могут иметь определенного статуса.

$IPT -A INPUT -m state --state INVALID -j DROP

$IPT -A FORWARD -m state --state INVALID -j DROP

 

# Приводит к связыванию системных ресурсов, так что реальный

# обмен данными становится не возможным, обрубаем

$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

 

# Открываем порт для ssh

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

# Открываем порт для DNS

$IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT

# Открываем порт для NTP

$IPT -A INPUT -i $WAN -p udp --dport 123 -j ACCEPT

 

# Логирование

# Все что не разрешено, но ломится отправим в цепочку undef

 

$IPT -N undef_in

$IPT -N undef_out

$IPT -N undef_fw

$IPT -A INPUT -j undef_in

$IPT -A OUTPUT -j undef_out

$IPT -A FORWARD -j undef_fw

 

# Логируем все из undef

 

$IPT -A undef_in -j LOG --log-level info --log-prefix "-- IN -- DROP "

$IPT -A undef_in -j DROP

$IPT -A undef_out -j LOG --log-level info --log-prefix "-- OUT -- DROP "

$IPT -A undef_out -j DROP

$IPT -A undef_fw -j LOG --log-level info --log-prefix "-- FW -- DROP "

$IPT -A undef_fw -j DROP

 

# Записываем правила

/sbin/iptables-save  &gt; /etc/sysconfig/iptables

В принципе, добавить нечего, в файле даны все комментарии. В таком виде, логи всего заблокированного будут писаться в файл /var/log/messages и записей там будет очень много. Так что в обычной работе эти строки нужно закомментировать, и использовать только во время отладки. Более подробное описание правил и примеры настроек firewall в случае, когда ваш сервер является шлюзом локальной сети, приведено по ссылке в начале раздела.

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

# chmod 0740 /etc/iptables_rules.sh # /etc/iptables_rules.sh

# chmod 0740 /etc/iptables_rules.sh

# /etc/iptables_rules.sh

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

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

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

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

# mcedit /etc/ssh/sshd_config

# mcedit /etc/ssh/sshd_config

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

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

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

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

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

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

Проверяем какой порт слушает 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

# 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 порту.

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

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

Чтобы сменить часовой пояс, необходимо выбрать подходящий файл часовой зоны в /usr/share/zoneinfo. В случае, если у вас часовой пояс Москвы, выполните следующее:

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

# mv /etc/localtime /etc/localtime.bak

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

Устанавливаем утилиту синхронизации времени в CentOS:

Разово синхронизируем время:

# /usr/sbin/ntpdate pool.ntp.org

# /usr/sbin/ntpdate pool.ntp.org

Если ntpdate не работает, посмотрите материал, может это ваш случай. Запустим демон синхронизации и запишем его запуск в автозагрузку:

# systemctl start ntpd # systemctl enable ntpd ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'

# systemctl start ntpd

# systemctl enable ntpd

ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'

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

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

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

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

# yum -y install epel-release

# yum -y install epel-release

Устанавливаем rpmforge:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

# yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

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

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

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

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

# yum -y install htop # yum -y install atop

# yum -y install htop

# yum -y install atop

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

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

linuxin.cf

Установка системы — Альтернативный взгляд Salik.biz

Подробное руководство по настройки и оптимизации веб сервера

1. Скачиваем образ Для начала скачиваем саму систему [Тыц] Я рекомендую выбирать «Minimal ISO», так как незачем нам лишние пакеты, что необходимо установим руками.

2. Установка системы После загрузки с диска появится меню, которое предлагает запустить процесс установки (пункт «Install CentOS 7»)

В первом окне установщика выбираем русский язык и нажимаем на кнопку «Продолжить».

Выбор часового пояса и установку времени с датой пока пропустим, всё равно до настройки сети NTP-клиент доступен не будет.

Начнём с настроек клавиатуры, для этого нажмём на кнопку «Клавиатура» и поменяем приоритет у раскладок, передвинув английскую раскладку наверх. Так же, нажав на кнопку «Параметры» можно поменять комбинацию для переключения раскладок (например на Ctrl+Shift). После чего нажмём на кнопку «Готово».

Для настройки сети нажимаем на кнопку «Сеть и имя узла» в группе настроек «Система». По умолчанию сеть отключена, для её включения необходимо нажать на переключатель, который находится в верхнем правом углу экрана. У меня сразу с DHCP-сервера подхватились все сетевые настройки и из DNS определилось имя хоста. Если эти данные автоматически не подхватились – их нужно ввести вручную нажав на кнопку «Настроить…».

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

Во вкладке «Параметры IPv4» в пункте «Способ настройки» по умолчанию выбран «Автоматически (DHCP)», намнеобходимо поменять на «Вручную» и заполняем все оставшиеся поля.

Если у нас в сети не используется IPv6, тогда во вкладке «Параметры IPv6» в пункте «Способ настройки» выбираем «Игнорировать».

После сохранения сетевых настроек нажимаем на кнопку «Готово» в левом верхнем углу экрана. Теперь можно вернуться к пропущенному шагу и настроить часовой пояс и дату. Для этого нажимаем на кнопку «Дата и время» в блоке «Региональные настройки». Сначала выбираем регион и город, а затем в правом верхнем углу нажимаем на переключатель «Сетевое время». После этого время должно синхронизироваться с NTP-сервером. Можно нажать на кнопку «Готово» для возвращения в главное меню установщика.

Осталось настроить расположение установки, для чего нажмём на кнопку «Место установки». Смотрим что галочкой выделен нужный нам жёсткий диск, отмечаем пункт «Я настрою разделы» в блоке «Разбиение» и нажимаем на кнопку «Готово».

У нас откроется мастер разметки жёсткого диска. Первым делом нажмём на кнопку «Нажмите здесь для их автоматического создания».

После того как всё подготовлено к установке CentOS – нажимаем на кнопку «Начать установку».

Первым делом установщик произведёт разбиение диска на разделы, как мы указали ранее. Затем разделы будут отформатированы и начнётся установка пакетов. В минимальной установке этих пакетов 298. После установки пакетов будет произведена их первоначальная настройка.

В то время пока пакеты устанавливаются и настраиваются – мы зададим пароль для пользователя root и создадим пользователя для повседневной работы (во время установки создание пользователя шаг не обязательный, его можно будет в любой момент создать позже).

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

Поздравляем! Установка CentOS завершена.

По материалам сайта blog.acmenet.ru

Я тот, кого называют Дирижёром Тишины мелодий смерти…

salik.biz