Настройка SSH в CentOS 7
Настройка сервера CentOS 7 после установки
CentOS — это свободный дистрибутив, основанный на исходном коде Red Hat Enterprise Linux, фактически, он создается с этих исходников практически без изменений, разработчики только вырезают весь брендинг Red Hat. Но в отличие от Red Hat, CentOS полностью бесплатна и получает регулярные обновления, спустя немного времени после выхода их для Red Hat поскольку они тоже собираются из исходного кода.
Очень часто CentOS применяется в качестве операционной системы для серверов. В одной из предыдущих статей мы рассматривали как выполняется установка CentOS 7. Сегодня будет рассмотрена настройка сервера CentOS 7 после установки. Мы рассмотрим все основные параметры, которые вам нужно будет изменить чтобы подготовить ваш сервер к работе.
Настройка CentOS после установки
Далее, мы рассмотрим все действия, которые необходимо выполнить для полной настройки CentOS на сервере, просто выберите то что вам нужно и примените на своей машине.
1. Настройка статического IP адреса
Первое, что нужно сделать — это настроить сеть. На персональных компьютерах используется получение IP адреса по DHCP, и компьютер при каждом запуске будет иметь другой адрес, сервер должен всегда работать на одном адресе, поэтому мы присваиваем ему статический IP. Также нужно настроить DNS и шлюз по умолчанию. Но сначала установите утилиту net-tools:
yum install net-tools
Сначала посмотрим доступные сетевые интерфейсы и текущий IP адрес:
Теперь можно перейти к настройке интерфейса через файл /etc/sysconfig/network-scripts/ifcfg-enp0s3, например, с помощью редактора vi:
IPADDR = ваш_ip
GATEWAY = шлюз_для_доступа_к_сети
DNS1 = IP_адрес_DNS1
DNS2 = IP_адрес_DNS2
После внесения изменений этот файл будет выглядеть вот так:
Затем останется перезагрузить сеть чтобы применить новые настройки:
service network restart
Потом, при необходимости вы можете сменить IP адрес таким же способом.
2. Имя компьютера
Следующее что нам нужно сделать — это изменить имя компьютера. Текущее имя компьютера хранится в переменной HOSTNAME:
Чтобы его изменить вам нужно отредактировать файл /etc/hostname и заменить там старое имя на новое.
Также вы можете использовать команду hostnamectl:
hostnamectl set-hostname «имя_хоста»
3. Обновление CentOS
После установки принято обновлять программное обеспечение до самой новой версии, чтобы установить все обновления безопасности. Для обновления списка пакетов в репозиториях и установки новых версий выполните такую команду:
yum update && yum upgrade
4. Установите браузер
Во многих случаях приходится использовать CentOS из командной строки без графического интерфейса, поэтому может понадобиться браузер, чтобы найти что-либо в интернете или проверить работоспособность сайтов из командной строки. Для установки браузера links наберите:
yum install links
Вы можете найти и другие консольные браузеры для Linux, например, Lynx или Elinks.
5. Настройка часового пояса
Правильная настройка часового пояса очень важна для сервера. Это уберет путаницу в логах и позволит вашим приложениям отображать правильную дату и время. Для настройки используется утилита timedatectl.
Сначала получите список часовых поясов:
Затем установите нужный, например, Europe/Kyiv:
timedatectl set-timezone Europe/Kyiv
7. Настройка локали
Локаль определяет язык и кодировку, которая будет использоваться в вашей системе, например, для включения русского языка установите значение ru_RU.UTF-8
localectl set-locale LANG=ru_RU.UTF-8
Затем смотрим что получилось:
Затем устанавливаем раскладку клавиатуры:
localectl set-keymap us
8. Отключите SELinux
Набор политик SELinux предназначены для контроля доступа к файлам в системе Linux, но если вы не собираетесь их использовать, то такую возможность можно отключить. Для этого выполните:
sed -i ‘s/(^SELINUX=).*/SELINUX=disabled/’ /etc/selinux/config
Затем перезагрузите компьютер и проверьте, действительно ли возможность была отключена:
9. Создайте пользователя
Использовать систему от имени суперпользователя небезопасно и тем более небезопасно оставлять открытым доступ к root аккаунту по ssh. Сначала создайте обычного пользователя и установите для него пароль:
useradd имя_пользователя
# passwd пароль
Затем добавьте пользователя в группу wheel, чтобы разрешать пользователю работать от имени администратора:
usermod -G wheel имя_пользователя
Теперь осталось подправить настройки sudo, для этого добавьте такую строчку, если ее там еще нет:
%wheel ALL = (ALL) ALL
10. Включите сторонние репозитории
Добавлять сторонние репозитории к производственному серверу — это не очень хорошая идея, и в некоторых случаях может привести к плохим последствиям. Однако иногда могут понадобиться программы, которых в официальных репозиториях нет. Поэтому рассмотрим как добавить несколько репозиториев.
Для добавления репозитория Enterprise Linux Repository (EPEL) выполните:
yum install epel-release
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
10. Настройка SSH
Чаще всего нам приходится работать с серверами не напрямую, а по сети, через SSH. Обычно служба SSH уже установлена и активирована, но для ее правильной работы нужно выполнить несколько настроек. Сначала нужно настроить использование только безопасного протокола, для этого откройте файл /etc/ssh/ssh_config и удалите строчку Protocol 2,1. А вместо нее добавьте:
Также нужно отключить вход от имени суперпользователя:
11. Установите веб-сервер Apache
Если вы планируете использовать машину в качестве веб-сервера, вам понадобится Apache. С помощью него вы можете размещать веб-сайты, мультимедиа контент, клиентские программы и многое другое. Для установки выполните:
yum install httpd
Когда установка будет завершена, перед тем, как вы сможете перейти к работе нужно разрешить HTTP в брандмауере:
firewall-cmd —add-service=http
# firewall-cmd -permanent -add-port=3221/tcp
# firewall-cmd —reload
Теперь осталось добавить Apache в автозагрузку:
systemctl start httpd.service
# systemctl enable httpd.service
Дальше вы можете проверить его работоспособность с помощью links:
12. Установите PHP
PHP — это современный язык веб-приложений и скриптов. Он часто используется в качестве языка программирования общего назначения. Для установки выполните:
yum install php
После установки необходимо перезапустить Apache:
systemctl restart httpd.service
Далее создадим тестовый файл со сриптом, чтобы проверить правильность установки:
echo -e «<?phpnphpinfo();n?>» > /var/www/html/phpinfo.php
Затем откройте созданный файл в браузере:
13. Установка базы данных
MariaDB — это база данных, основанная на исходном коде MySQL. Дистрибутивы Linux на базе Red Hat используют MariaDB вместо MySQL. Базы данных — незаменимая вещь на сервере, поэтому настройка CentOS после установки должна включать ее установку. Для установки MariaDB наберите:
yum install mariadb-server mariadb
Затем запустите и добавьте в автозагрузку:
systemctl start mariadb.service
# systemctl enable mariadb.service
И разрешите в использование службы в брандмауэре:
Осталось запустить скрипт настройки:
14. Установите GCC
GCC расшифровывается как GNU Compiler Collection, это набор компиляторов, которые считаются стандартом для сборки программ в Linux. Но по умолчанию он не поставляется с CentOS, поэтому для установки наберите:
yum install gcc
Затем вы можете посмотреть версию GCC:
15. Установите Java
Java — это объективно-ориентированный язык программирования общего назначения. Он не устанавливается по умолчанию, поэтому настройка CentOS 7 после установки может включать и его установку. Для этого выполните:
yum install java
Затем проверьте версию:
Выводы
В этой статье мы рассмотрели как выполняется настройка сервера CentOS 7 после установки. Как видите, есть много элементарных действий, которые желательно сделать перед тем, как использовать сервер на производстве. Если у вас остались вопросы, спрашивайте в комментариях!
CentOS. Настройка SSH.
SSH (secure shell) — протокол для создания шифрованного соединения между клиентом и сервером. Благодаря этой технологии может осуществляться удаленное управление компьютером. Взаимодействие с утилитой происходит в терминале, а в операционную систему CentOS 7 она добавлена по умолчанию. Поэтому сегодня мы бы хотели детально рассмотреть стандартную процедуру настройки, которая будет полезна всем, кто собирается работать с SSH.
Процесс конфигурации индивидуален для каждого системного администратора, но все же имеется несколько пунктов, полезных для всех юзеров. В рамках данной статьи мы поговорим не только о серверной составляющей, но и о клиентской, а также укажем, на каком из устройств выполняется определенное действие.
Установка компонентов и запуск сервера
Мы уже сказали, что SSH по умолчанию добавлен в список системных библиотек CentOS 7, но иногда по некоторым причинам необходимые компоненты отсутствуют на компьютере. В таком случае их потребуется добавить, а затем активировать работу сервера.
- Откройте «Терминал» и пропишите там команду
2. Подтвердите подлинность учетной записи суперпользователя, введя пароль. Учтите, что вводимые таким образом символы не отображаются в строке.
3. Запустите проверку конфигурации командой
4. Затем запустите сам сервис SSH, указав
5. Осталось только проверить, что задействованный по умолчанию порт открыт. Для этого используйте строку
После успешного проведения указанных выше инструкций можно смело переходить к настройкам. Хотим обратить ваше внимание, что обязательно следует читать показанные на экране уведомления во время активации команд. Они могут свидетельствовать о возникновении определенных ошибок. Своевременное исправление неполадок поможет избежать дальнейших проблем.
Редактирование конфигурационного файла
Конечно, конфигурационный файл редактируется только на усмотрение системного администратора. Однако мы хотим показать, как его запустить в текстовом редакторе и на какие пункты следует сделать акцент в первую очередь.
- Советуем использовать редактор nano, установить который в систему поможет команда
sudo yum install nano .
По завершении инсталляции запустите конфигурационный файл через
sudo nano /etc/ssh/sshd_config . - Вы будете ознакомлены со всеми доступными параметрами. Некоторые из них закомментированы, то есть перед параметром стоит знак #. Соответственно, убирая этот символ, вы раскомментируете параметр, и он будет действителен. Вы можете изменить стандартный порт, поменяв значение строки «Port» на любое другое. Кроме этого, рекомендуется установить второй протокол, используя «Protocol 2». Тогда повысится уровень безопасности.
- Эти и остальные параметры изменяются только по предпочтению администратора. Детальную информацию о каждом из них вы найдете в официальной документации SSH. По завершении редактирования сохраните изменения, нажав горячую клавишу Ctrl + O.
- Выйти из редактора поможет комбинация Ctrl + X.
- Перезапустите сервис, чтобы внесенные изменения вступили в силу.
sudo service sshd restart - Затем можете проверить статус SSH, чтобы убедиться в его работоспособности
service sshd status .
Редактированием конфигурационного файла изменяется много параметров, но основной процесс — добавление и настройка ключей — производится с помощью специальных команд, о чем мы и хотим поговорить далее.
Создание пары RSA-ключей
Криптографический алгоритм RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) используется сервисом SSH для создания пары ключей. Такое действие позволить максимально обезопасить клиентскую и серверную часть при проведении соединений. Задействовать придется обе цепи, чтобы создать пару ключей.
- Для начала зайдите на клиентский компьютер и введите в консоли
ssh-keygen . - После активации появится новая строка, где будет предложено указать путь для сохранения ключа. Если хотите оставить расположение по умолчанию, не вводите ничего, а просто нажмите на клавишу Enter.
- Далее создается парольная фраза. Она обеспечит защищенность от несанкционированного входа в систему. После создания пароля его потребуется повторить.
- На этом процедура генерации завершена. На экране вы увидите сам ключ и случайное изображение, присвоенное ему.
При успешном выполнении указанного выше руководства появятся открытый и закрытый ключ, которые в дальнейшем будут задействованы для аутентификации с сервером. Однако для этого ключ нужно передать на сервер и отключить вход по паролю.
Копирование открытого ключа на сервер
Как уже было сказано выше, копирование ключа необходимо для дальнейшей безпарольной аутентификации. Сделать такое действие можно одним из трех способов, каждый из которых будет наиболее оптимальным в определенных ситуациях. Давайте рассмотрим все их по порядку.
Утилита ssh-copy-id
Копирование открытого ключа через утилиту ssh-copy-id — самый простой метод. Однако подойдет он только в том случае, когда на компьютере присутствует этот самый инструмент. Вам же нужно прописать всего одну команду
ssh-copy-id username@remote_host
, где username@remote_host — имя пользователя и хост удаленного сервера.
Если соединение проводится первый раз, на экране вы увидите сообщение подобного характера:
The authenticity of host ‘111.111.11.111 (111.111.11.111)’ can’t be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?
Оно обозначает, что сервер не находится в списке надежных источников и будет задан вопрос, стоит ли проводить дальнейшее подключение. Выберите вариант yes .
Осталось только ввести пароль от учетной записи сервера, и на этом процедура копирования через упомянутую утилиту будет успешно завершена.
Копирование открытого ключа по SSH
При отсутствии утилиты ssh-copy-id рекомендуем задействовать стандартные возможности инструмента SSH, если, конечно, у вас имеется доступ к серверной учетной записи. Выгрузка ключей производится посредством обычного подключения, а именно:
- Команда cat позволит считать и сразу же добавить ключ в файл на серверном компьютере. Для этого просто введите
cat
/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p
Ручное копирование открытого ключа
Иногда случаются ситуации, когда невозможно использовать утилиту ssh-copy-id, а также отсутствует доступ по паролю. Тогда копирование осуществляется вручную.
- Сперва узнайте этот ключ через уже знакомую команду cat, введя в консоли
cat
На этом процедура копирования ключа успешно завершена. Благодаря этому теперь доступна аутентификация к серверу путем ввода
ssh username@remote_host .
Однако подключиться можно и через пароль, что понижает безопасность такой сети.
Отключение аутентификации по паролю
Отключение возможности входа по паролю, в обход ключа, делает такое удаленное соединение менее защищенным. Поэтому рекомендуется деактивировать эту функцию для предотвращения несанкционированной аутентификации со стороны злоумышленников.
- На удаленном сервере запустите конфигурационный файл SSH через
sudo nano /etc/ssh/sshd_config . - Отыщите параметр «PasswordAuthentication» и измените значение на no .
- Сохраните изменения и завершите работу в текстовом редакторе.
- Новый параметр вступит в силу только после перезагрузки сервиса
sudo systemctl restart sshd.service .
На этом статья, в которой вы были ознакомлены с основными конфигурационными моментами протокола SSH, подходит к концу. Настоятельно рекомендуем изучить содержимое выдачи после активации команд, поскольку там иногда содержатся описания ошибок. Их решение ищите в официальной документации инструмента или дистрибутива CentOS.
Начальная настройка Centos 7
Сразу для работы с текстовыми файлами (конфигами) устанавливаем Midnight Commander:
И сразу же для удобства, меняет расцветку синтаксиса:
Отключаем SELinux, для этого открываем файл на редактирование с помощью Midnight Commander:
И у SELINUX ставим параметр disabled.
После отключения SElinux необходимо перезагрузиться или выполнить команду:
— тогда изменение выполнится без перезагрузки.
Firewall
Фаерволом в CentOS 7 является iptables. И для управления им в центос придумала другая утилита — Firewalld. Я ею не пользуюсь, поэтому останавливаю ее и удаляю из автозагрузки, т.к. удобнее пользоваться самописным скриптом, который кроссплатформенный между разными линуксами:
Установливаем утилиты для iptables:
Включаем iptables в автозагрузку:
Посмотреть текущие настройки можно командой:
Теперь создадим текстовый файл (скрипт) для iptables:
Делаем файл c правилами исполняемым:
и запускаем его:
При каждом запуске скрипта, все изменения записываются в файл /etc/sysconfig/iptables и применяются при загрузке системы.
Проверить, применились ли правила можно командой:
По умолчанию, сервис работает на 22 порту. Для безопасности его лучше сменить на любой другой свободный. Открываем конфиг
Нужно раскомментировать строку Port 22 и заменить значение 22 на любое другое, например 99999. Сохраняем.
Теперь нужно добавить в настройки фаервола наш новый порт в разрешенные. Открываем скрипт для iptables
И вместо 22 пишем 99999. Сохраняем и запускаем этот скрипт!
Можно проверить на каком порту висит сейчас sshd
видим 99999, значит все ок.
Добавление репозиториев
Добавим популярный репозиторий EPEL
Настройка bash_history (по желанию)
Все подробно расписал товарищ в этой статье.
Самое основное. Список последних выполненных команд хранится в домашней директории пользователя в файле .bash_history (в начале точка).
Нам нужно отредактировать файл .bashrc, который находится в том же каталоге, что и файл с историей.
Добавляем в него следующие строки:
Чтобы изменения применились, нужно разлогиниться и залогиниться снова.
Отключаем флуд сообщений в /var/log/messages
Сохраняем и перезапускаем:
Мониторинг — iftop, atop, htop, lsof
iftop показывает в режиме реального времени загрузку сетевого интерфейса
lsof поможет узнать какие файлы используются теми или иными процессами:
Обычно после этого требуется настроить веб-сервер, к примеру на связке nginx+apache. Статья описывающая эту связку.
Читайте также:
Vi редактор в Centos7
Автор: Гончаров · Published 17.12.2017 · Last modified 27.02.2020
Как делать бекапы в Centos 7
Автор: Гончаров · Published 17.12.2017 · Last modified 28.10.2019
PhpMyAdmin — установка и настройка на CentOS 7
Автор: Гончаров · Published 29.05.2018 · Last modified 28.10.2019
Всё сделал с точностью до буквы. Смена порта не получилась. Команда «netstat -tulpn | grep sshd» выводит новый номер порта, однако присоединиться через него не получается. Видно кроме этого нужно что-то ещё сделать, что в статье отсутствует.
в фаерволе разблокировали новый порт?
Да, конечно, новый порт открыл, а старый закрыл. Причина оказалась в том, что новый порт был чем-то занят, хотя перед его открытием проверил занятые порты. Нашёл список портов в Wikipedia, в нём свободный диапазон портов и выбрал из него порт. После этого всё заработало. Я так понимаю. номер порта 99999 указан в статье для примера, как реальный, его я не рассматривал, ибо порта с номером более 65535 не существует, а диапазон 49152—65535 (цитата из Wikipedia) содержит динамически выделяемые или частные порты, которые не регистрируются IANA. Эти порты используются временными (короткоживущими) соединениями «клиент — сервер» или в определённых частных случаях. Этот … Подробнее »
How to Install / Enable OpenSSH on CentOS 7
Secure Shell (SSH) is a cryptographic protocol that allows a client to interact with a remote server in a secure environment.
High-level encryption protects the exchange of sensitive information and allows flie trans or issue commands on remote machines securely.
Learn how to enable SSH on CentOS 7 by following the instructions in this short tutorial.
- CentOS 7 system to act as an SSH server
- A user with necessary permissions
- Access to a command line (Ctrl-Alt-T)
- yum utility (included by default)
Installing and Enabling OpenSSH on CentOS 7
SSH software packages are included on CentOS by default. However, if these packages are not present on your system, easily install them by completing Step 1, outlined below.
Step 1: Install OpenSSH Server Software Package
Enter the following command from your terminal to start the installation process:
This command installs both the OpenSSH client applications, as well as the OpenSSH server daemon, sshd.
In this example, the system informs us that the latest version is already present.
Step 2: Starting SSH Service
To start the SSH daemon on the OpenSSH server:
When active, sshd continuously listens for client connections from any of the client tools. When a connection request occurs, sshd sets up the correct connection.
Step 3: Check sshd status
Check the status of the SSH daemon:
As we have previously started the service, the output confirms that it is active.
To stop the SSH daemon enter:
We can check if the service has stopped by verifying the status. The output shows that the service is inactive and the time and date when the status last changed.
Step 4: Enable OpenSSH Service
Enable SSH to start automatically after each system reboot by using the systemctl command:
To disable SSH after reboot enter:
OpenSSH Server Configuration
Properly configuring the sshd configuration file hardens server security. The most common settings to enhance security are changing the port number, disabling root logins, and limiting access to only certain users.
To edit these settings access the /etc/ssh/sshd_config file:
Once you access the file by using a text editor (in this example we used vim), you can disable root logins and edit the default port number:
- To disable root login:
PermitRootLogin no
- Change the SSH port to run on a non-standard port. For example:
Port 2002
Remember to uncomment the lines that you edit by removing the hashtag.
Save and close the file. Restart sshd:
Note: We recommend you generate SSH keys for authentication, as a safer alternative to passwords.
Firewall Settings
After successfully enabling SSH and configuring the sshd file, adjust the firewall settings to make sure there are no compatibility issues.
It is also possible to restrict IP access to make the connection even more secure.
To restrict IP access, edit the iptables file by typing:
To allow access using the port defined in the sshd config file, add the following line to the iptables file:
To restrict access to a specific IP, for example 133.123.40.166, edit the line as follows:
If your site uses IPv6, and you are editing ip6tables, use the line:
Save and exit the file by pressing Escape (Esc) on your keyboard and typing:
:X
Press Enter to confirm.
Restart iptables to apply the changes:
In this tutorial, we learned how to enable SSH on a CentOS 7 server. Additionally, we configured your firewall and SSH rules to limit access.
Your CentOS 7 server is now able to accept SSH connections.
Check out our guide on “ssh_exchange_identification: Read: Connection Reset By Peer” error if you notice it while connecting to your remote server.