Centos server 7: Home — CentOS Git server

Содержание

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

Сетевые настройки — первое, что нужно сделать после создания сервера для его взаимодействия с внешним миром. В этой статье детально рассмотрим как настраивать сеть в CentOS 7.

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

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

После нажатия на кнопку «Заказать сервер» появится представление с характеристиками заказываемого сервера. Можно настроить свои параметры или выбрать готовую конфигурацию. Для демонстрации выберем готовую конфигурацию.

После выбора готового сервера останется выбрать устанавливаемую операционную систему. Настройку сети будем выполнять в CentOS 7.

О включении сервера можно узнать при получении письма с параметрами доступа или в интерфейсе веб-консоли управления Selectel. Созданный сервер имеет приведенные ниже характеристики.

Теперь можно подключиться к серверу по SSH и просмотреть сетевые интерфейсы, созданные по умолчанию. В выводе команды ip address получим нумерованный список интерфейсов.

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

Внешний сетевой интерфейс, через который было выполнено текущее SSH-подключение, имеет порядковый номер 2 и называется eno1. Интерфейсу для примера был присвоен статический ip-адрес 82.148.21.49.

Далее мы расскажем об изменении конфигурации сети в CentOS 7.

Статический IP-адрес в CentOS 7

Конфигурация сетевого интерфейса хранится в /etc/sysconfig/network-scripts в соответствующем файле с префиксом ifcfg (там же конфигурационные файлы других интерфейсов). Посмотрим на него.

# cat /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.49"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

Что можно понять из этих характеристик? Ниже расскажем о каждом параметре.

  • NAME — имя сетевого адаптера, оно такое же, как и имя в операционной системе.
  • ONBOOT — указание на тип запуска сетевого интерфейса. При текущих настройках сетевой интерфейс запускается автоматически. В случае со значением no интерфейс нужно будет запускать вручную.
  • BOOTPROTO — указание на тип назначения IP-адреса. В текущих настройках static, но возможны опции dhcp, none или пустое значение.
  • HWADDR — переменная, хранящая MAC-адрес.
  • IPADDR — установленный на интерфейсе IP-адрес.
  • NETMASK — установленная на интерфейсе маска подсети.
  • GATEWAY — указание на шлюз.
  • TYPE — тип интерфейса. В нашем случае — Ethernet.

Отредактируем значение поля IPADDR:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

После внесения изменений перезагрузим сетевой сервис. Иначе изменения применятся только после рестарта сервера.

# systemctl restart network

После выполнения этой команды сетевое подключение отключится. Снова выполняем подключение по SSH по новому IP-адресу и проверяем новые настройки:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127. 0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.50/24 brd 82.148.21.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

Статический IP-адрес настроен, сервер доступен по новому адресу.

Настройки DHCP в CentOS 7

Чтобы настроить получение анонсов по DHCP, в /etc/sysconfig/network-scripts/ifcfg-eno1 необходимо удалить переменные IPADDR, NETMASK, GATEWAY, а в BOOTPROTO указать значение «dhcp».

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR="ac:1f:6b:f6:3b:7e"
TYPE=Ethernet

Перезагружаем сетевой сервис:

# systemctl restart network

Сетевое соединение по SSH отключится. Чтобы посмотреть новый IP-адрес сервера, подключимся к нему через веб-консоль KVM Selectel. Нажимаем на иконку консоли.

В новой вкладке браузера вводим учетные данные сервера и выполняем уже знакомую команду ip address. В выводе команды напротив интерфейса eno1 будет его динамический IP-адрес.

Теперь можно подключаться по SSH по новому IP-адресу.

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

Чтобы настроить DNS, изменим /etc/sysconfig/network-scripts/ifcfg-eno1 и пропишем туда переменную DNS1 (если нужно добавить дополнительные DNS-серверы, допускается добавление переменных DNS2, DNS3 и т.д.)

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82. 148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet
DNS1="82.148.21.1"

Следом перезагрузим сеть:

# systemctl restart network

По итогам перезагрузки адрес DNS-сервера должен автоматически оказаться в /etc/resolv.conf:

# grep "nameserver" /etc/resolv.conf
nameserver ”82.148.21.1”

Наличие в файле заданного DNS-сервера говорит о корректности его настройки.

Перезапуск сетевого сервиса в CentOS 7

Перезапуск сети выполняется одной командой:

# systemctl restart network

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

Изменение имени сервера (hostname) в CentOS 7

После создания сервера через панель управления Selectel ему присваивается имя localhost.localdomain, при аренде выделенного сервера в Selectel имя ему присвоено автоматически:

# hostname
Einstein

Отредактируем /etc/hostname:

# vi /etc/hostname
Curie

Сверим примененные настройки:

# hostname
Curie

Имя хоста изменено.

Настройки шлюза в CentOS 7

За соответствующие настройки отвечает переменная GATEWAY в /etc/sysconfig/network-scripts/ifcfg-eno1. Чтобы изменить адрес шлюза, достаточно изменить значение этой переменной и перезагрузить сетевую службу:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.49"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet
# systemctl restart network

Вызов команды netstat -nr вернет актуальный адрес используемого шлюза:

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         82.148.21.1     0.0.0.0         UG        0 0          0 eno1
82.148.21.0     0.0.0.0         255.255.255.0   U         0 0          0 eno1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eno1

Таким образом, мы задали адрес сетевого шлюза.

Настройки сети из консоли

Кроме модификации файлов с конфигурацией, настройки сети могут быть изменены командами в консоли. Консольные настройки выполняются для проведения тестов и будут работать только до перезагрузки системы. Для выполнения всех консольных сетевых настроек используется уже известная команда ip address (или ее сокращенная версия ip a).

Применим к eno2 новый IP-адрес и проверим:

# ip a add 10.128.106.173 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82. 148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff
    inet 10.128.106.173/32 scope global eno2
       valid_lft forever preferred_lft forever

Изменим маску подсети и снова проверим:

# ip a change 10.128.106.173/24 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82. 148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff
    inet 10.128.106.173/32 scope global eno2
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 scope global eno2
       valid_lft forever preferred_lft forever

Добавим маршрут по умолчанию:

# ip r add default via 10.128.106.1

Удалим маршрут по умолчанию:

# ip r del default via 10.128.106.1

Удалим привязанный ранее IP-адрес и проверим:

# ip a del 10.128.106.173/32 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82. 148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

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

Исключение IPv6 в CentOS 7

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

Начнем настройку с изменений в файле /etc/sysctl.conf. Внесем в него две дополнительных строки:

# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Следующий шаг — применение конфигурационных изменений:

# sysctl -p
net. ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

В /etc/sysconfig/network прибавим 2 строки:

# vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

В конфигурационный файл /etc/default/grub к концу строки GRUB_CMDLINE_LINUX нужно добавить ipv6.disable=1

# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.md.uuid=f93e0283:1b54bb6c:881c4df1:a3b5cf93 rd.lvm.lv=vg0/vol-root rd.md.uuid=b3ba35a4:4f4150fb:0d1464e1:d5ab4bff rd.lvm.lv=vg0/swap nodmraid nomodeset rhgb quiet ipv6.disable=1"
GRUB_DISABLE_RECOVERY="true"

После выполнения изменений нужно сохранить файл и обновить GRUB:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3. 10.0-1127.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8586236d5c0348d98a7b4f186d904d62
Found initrd image: /boot/initramfs-0-rescue-8586236d5c0348d98a7b4f186d904d62.img
done

Далее — перезагрузка сервера:

# reboot

После перезагрузки проверим конфигурацию, значения с префиксом inet6 должны пропасть:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 brd 10.128.106.255 scope global noprefixroute dynamic eno1
       valid_lft 3419sec preferred_lft 3419sec
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

Протокол IPv6 успешно отключен.

Несколько IP адресов на одном интерфейсе в CentOS 7

Для настройки нескольких IP-адресов на одном интерфейсе внесем изменения в /etc/sysconfig/network-scripts/ifcfg-eno1, добавив переменные IPADDR1 и IPADDR2 и удалив IPADDR:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR1="82.148.21.49"
IPADDR2="82.148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

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

# systemctl restart network

Еще один IP-адрес может понадобиться для поддержки нескольких сервисов в рамках одного сервера.

Настройки нескольких сетевых интерфейсов в CentOS 7

Команда ip a вернет состояние всех имеющихся сетевых интерфейсов:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127. 0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 brd 10.128.106.255 scope global noprefixroute dynamic eno1
       valid_lft 3419sec preferred_lft 3419sec
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

В этом выводе можно видеть три интерфейса: служебный lo, а также интерфейсы eno1 и eno2.

В /etc/sysconfig/network-scripts в соответствующих файлах хранится конфигурация каждого интерфейса:

# ls /etc/sysconfig/network-scripts | grep 'ifcfg-eno\|ifcfg-lo'
ifcfg-eno1
ifcfg-eno2
ifcfg-lo

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

# cat /etc/sysconfig/network-scripts/ifcfg-eno2 
NAME="eno2"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR1="82. 148.21.51"
IPADDR2="82.148.21.52"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

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

# cp /etc/sysconfig/network-scripts/ifcfg-eno2 /etc/sysconfig/network-scripts/ifcfg-eno3
# vi /etc/sysconfig/network-scripts/ifcfg-eno3
# systemctl restart network

Таким образом, мы создали дополнительный интерфейс.

Настройки интерфейсов в CentOS 7 через Network Manager (утилиты nmtui и nmcli)

Еще одним способом настроить сеть в CentOS 7 является настройка через утилиту Network Manager. Она может выполняться в GUI и через CLI. Для вызова графического интерфейса необходимо выполнить команду nmtui. Откроется псевдо-GUI интерфейс, в котором можно выполнять те же настройки, что и в командной строке:

Network Manager через CLI управляется при помощи утилиты nmcli. Ниже приведены команды для изменения IP-адреса, шлюза и DNS-сервера для сетевого интерфейса eno1:

# nmcli con mod eno1 ipv4.addresses 82.148.21.49/24
# nmcli con mod eno1 ipv4.gateway 82.148.21.1
# nmcli con mod eno1 ipv4.dns "8.8.8.8

Утилита Network Manager имеет широкий функционал и может использоваться как полная замена штатным инструментам для настройки сети в CentOS 7.

Заключение

Мы рассказали о различных подходах к настройке сети в CentOS 7. Этого достаточно для базовой настройки коммуникации сервера с внешними устройствами.

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

Первичная настройка сервера на CentOS 7

Правильная первичная настройка только что созданного сервера не только подготовит его к дальнейшей работе, но и сделает её более удобной и безопасной.

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

Создание нового пользователя

Первое подключение к серверу производится от имени root-пользователя. Подключиться можно как через веб-консоль, так и по SSH, задав предварительно пароль root-пользователя в панели управления сервером.

Мы не будем использовать root-пользователя для постоянного управления сервером — его права настолько обширны, что серверу можно нанести непоправимый ущерб даже просто по неосторожности. Чтобы избежать этого, создадим нового пользователя:

Зададим для него пароль:

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

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

Если пакет sudo не установлен на вашем сервере (после ввода команды появится сообщение Unit sudo.service could not be found) установите его вручную.

Для этого зайдите на сервер от имени root-пользователя и выполните команду:

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

Установка и настройка фаервола

Для установки фаервола будем использовать программу-установщик YUM. Как правило, YUM установлен по умолчанию и сразу готов к работе.

Начнём с обновления репозиториев YUM:

Программа-установщик укажет дисковый объём, который будет занят при установке обновлённых пакетов, и попросит согласие на продолжение.

После успешного обновления YUM (в строке выдачи появится сообщение Complete!) можно переходить непосредственно к установке фаервола:

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

Активируем его и запустим:

Активация позволит фаерволу запускаться после перезагрузки сервера.

Сейчас можем проверить, какая зона (группа настроек) активна и какие службы разрешены.

Вводим команду:

Она выведет на экран активную зону с её настройками.

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

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

SSH-подключение к серверу с аутентификацией по ключу

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

Основные различия в данном случае обусловлены синтаксисом команд в разных версиях операционных систем.

Чтобы вручную поместить публичный ключ на сервер, подключимся к серверу по SSH и зайдём как новый пользователь User, которого мы создавали в начале инструкции.

Зайдём в корневую папку пользователя:

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

Теперь установим на неё права 700:

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

В открывшемся текстовом файле разместим наш публичный ключ.Если вы используете ОС Windows, то для генерации пары ключей используйте утилиту PuTTY Key Generator. Сохраним файл и установим на него права 600:

После этого можно отключиться от сервера и проверить правильность подключения к нему с помощью ключа.

Ограничение SSH-доступа для root-пользователя

Чтобы повысить уровень безопасности нашего сервера, запретим SSH-подключение к нему от имени root-пользователя. Для этого мы отредактируем файл конфигурации ssh-демона.

Подключимся к серверу от имени root-пользователя и откроем в текстовом редакторе файл конфигурации:

В этом файле нам нужно найти строку #PermitRootLogin yes. Раскомментируем её (уберём # в начале строки) и заменим yes на no. В итоге строка должна выглядеть так: PermitRootLogin no. Сохраним изменения и перезагрузим нашу ssh-службу:

Теперь к нашему серверу нельзя подключиться по SSH от имени root-пользователя — можно только через веб-консоль.

Далее можно переходить непосредственно к работе с сервером — устанавливать программное обеспечение, привязывать домен и начинать работу с собственными проектами.

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

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

Шаг 1: Войдите через SSH

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

Если вы не знаете, как подключиться, ознакомьтесь с нашей статьей «Как подключиться к вашему серверу с помощью SSH».

Шаг 2: Изменить пароль пользователя, вошедшего в систему

При первом входе в систему очень важно изменить пароль текущего пользователя. Используйте следующую команду для того же.

 пароль
 

Вас попросят указать существующий пароль, если вы не вошли в систему как пользователь root.

Шаг 3. Создайте нового пользователя Sudo

Если вы вошли в систему как пользователь root , рекомендуется создать пользователя sudo. Если вы вошли в систему как пользователь sudo с именем пользователя в формате client_xxxxxx_x , которое Snel уже создало для вас, рекомендуется создать нового пользователя sudo.

Пользователь Sudo — это пользователь с правами суперпользователя. Проще говоря, этот пользователь может выполнять административные команды и задачи как пользователь root.

Чтобы создать нового пользователя, выполните следующую команду. Вы можете заменить пример имени пользователя happysnel на любое другое.

 sudo adduser happysnel
 

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

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

 sudo passwd happysnel
 

Добавьте только что созданного пользователя в группу wheel . Пользователи в группа wheel — пользователь sudo в CentOS 7.

 sudo usermod -aG wheel happysnel
 
Шаг 4.

Вход в систему в качестве вновь созданного пользователя

Выйдите из текущего сеанса терминала, выполнив команду logout , и войдите снова, используя ssh в качестве нового пользователя.

 ssh [электронная почта защищена]
 

192.168.0.1 — пример IP-адреса.

Шаг 5. Отключение входа в систему root через SSH

Найдите текущую настройку для входа в систему root через SSH, выполнив следующую команду.

 sudo cat /etc/ssh/sshd_config | grep
 

Вы можете увидеть следующий вывод.

 [[электронная почта защищена] ~]$ sudo cat /etc/ssh/sshd_config | grep
PermitRootВойти без пароля
# настройка "PermitRootLogin без пароля".
 

Как и в приведенном выше выводе, мы видим, что для PermitRootLogin установлено значение без пароля . Это означает, что аутентификация по паролю отключена, однако включена аутентификация по открытому ключу. Что хорошо в большинстве случаев. Убедитесь, что не следует закомментировать или задавать значение yes .

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

 судо нано /etc/ssh/sshd_config
 

И изменить строку на следующую.

 PermitRootЛогин нет
 

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

 sudo systemctl перезапустить sshd
 

Теперь, если вы попытаетесь войти в систему как пользователь root, вас не пропустят.

Шаг 6. Обновите сервер

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

 sudo yum -y обновление
 

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

Шаг 7: Установка часового пояса

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

 timedatectl список часовых поясов
 

Здесь также доступен список доступных часовых поясов.

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

 sudo timedatectl установить часовой пояс Европа/Амстердам
 

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

 времядатектл
 
Шаг 8: Установите имя хоста

Проверьте существующее имя хоста, выполнив следующую команду.

 hostnamectl
 

Вы должны увидеть аналогичный вывод.

 [[электронная почта защищена] ~]$ hostnamectl
   Статическое имя хоста: vps. snelexample.site
         Имя значка: компьютер-VM
           Шасси: ВМ
        Идентификатор машины:
           Идентификатор загрузки:
    Виртуализация: квм
  Операционная система: CentOS Linux 7 (ядро)
       Имя ОС CPE: cpe:/o:centos:centos:7
            Ядро: Linux 3.10.0-957.1.3.el7.x86_64
      Архитектура: x86-64
 

Чтобы задать имя хоста, выполните следующую команду.

 sudo hostnamectl set-hostname host.snelexample.site
 

Замените host.snelexample.site на ваше фактическое имя хоста. Желательно, чтобы это было полное доменное имя (полное доменное имя). Но если вы не уверены, хотите ли вы добавить полное доменное имя, метка для идентификации сервера также работает.

Чтобы разрешить имя хоста на локальном сервере, вам нужно будет добавить его в файл /etc/hosts . Отредактируйте файл hosts , выполнив следующую команду.

 судо нано /etc/hosts
 

Если редактор nano не установлен на вашем сервере, установите его, выполнив команду.

 sudo yum -y install nano 

Добавьте свое имя хоста в конец строки, начинающейся с 127.0.0.1 . Например.

 127.0.0.1 локальный хост.snelexample.site
 
Шаг 9. Настройка брандмауэра

В большинстве случаев CentOS 7 поставляется с включенным брандмауэром по умолчанию. Вы можете проверить состояние брандмауэра, выполнив следующую команду.

 sudo firewall-cmd --state
 

Должно быть указано running , если ваш брандмауэр уже запущен.

 [[электронная почта защищена] ~]$ sudo firewall-cmd --state
Бег
 
Шаг 10.

Изменение порта SSH (необязательно)

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

 судо нано /etc/ssh/sshd_config
 

Найдите строку с надписью

 #Port 22
 

Раскомментируйте его и измените на любой порт от 1024 до 65535.

Например.

 Порт 2200
 

Сохраните файл и выйдите из редактора.

Теперь сообщите SELinux о порте SSH, выполнив следующую команду.

 sudo yum -y установить policycoreutils-python-utils
sudo semanage порт -a -t ssh_port_t -p TCP 2200
 

Откройте порт 2200 в брандмауэре, выполнив команды.

 sudo firewall-cmd --permanent --add-port=2200/tcp
sudo firewall-cmd --reload
 

Теперь перезапустите сервер SSH, выполнив следующую команду.

 sudo systemctl перезапустить sshd
 

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

 ssh -p 2200 [электронная почта защищена]
 

192.168.0.1 — пример IP-адреса.

Шаг 11: Перезагрузка

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

 перезагрузка судо
 

Заключение

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

Mastering CentOS 7 Linux Server [Книга]

Описание книги

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

Об этой книге

  • Узнайте, как эффективно настраивать сервер Linux и управлять им с помощью одной из наиболее подходящих для этой цели технологий — CentOS 7
  • Персонализируйте свой сервер Linux и ознакомьтесь с новейшими инструментами и утилитами установка предоставлена ​​новым дистрибутивом CentOS
  • Следуйте пошаговому руководству по настройке запрошенных служб с возможностью персонализировать их в соответствии с вашими потребностями

Для кого предназначена эта книга

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

Чему вы научитесь

  • Управление пользователями, группами и привилегиями корневого доступа CentOS 7
  • Повысьте безопасность сервера с помощью брандмауэра и предотвратите наиболее распространенные атаки от проникновения или отключения сервера
  • Изучите и внедрите общие , полезные услуги, которые может предоставить сервер CentOS 7
  • Мониторинг серверной инфраструктуры на наличие системных или аппаратных проблем
  • Создание и настройка виртуальной машины с использованием технологий виртуализации
  • Внедрение решения облачных вычислений в системе с одним узлом
  • Знакомство с инструментами управления конфигурацией и их использованием
  • Узнайте о важности инструментов, которые обеспечивают удаленное подключение, безопасность серверных служб, а также инструменты мониторинга системы и процессов

Подробнее

Большинство серверных инфраструктур оснащены по крайней мере одним сервером Linux, который предоставляет множество важных услуг как для нужд пользователя, так и для самой инфраструктуры. Настройка надежного сервера Linux — одна из самых сложных задач для системного администратора. Однако изучение нескольких новых технологий для удовлетворения всех их потребностей требует много времени. CentOS 7 — это совершенно новая версия системы CentOS Linux семейства RPM (Red Hat). Это одна из наиболее широко используемых операционных систем, которую выбирают многие организации по всему миру.

С помощью этой книги вы изучите передовой опыт и инструменты администрирования сервера CentOS 7 Linux, а также реализуете некоторые из наиболее распространенных служб Linux. Мы начнем с объяснения начальных шагов, которые необходимо выполнить после установки CentOS 7, кратко объяснив концепции, связанные с пользователями, группами и управлением правами, а также некоторые основные меры безопасности системы. Далее вы познакомитесь с наиболее часто используемыми службами и подробно увидите, как их реализовать и развернуть, чтобы они могли использоваться внутренними или внешними пользователями.