Как установить и настроить сервер OpenSSH на Ubuntu 16.04. Администрирование server ubuntu


Администрирование Linux | Losst

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

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

Содержание статьи:

Администрирование Linux

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

  • Удаленный доступ;
  • Диагностика сети;
  • Мониторинг ресурсов системы;
  • Проверка работоспособности сервисов;
  • Просмотр логов;
  • Установка программного обеспечения.

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

Удаленный доступ к серверу Linux

Чаще всего веб-мастера и администраторы используют для удаленного доступа и загрузки файлов на сервер протокол SSH и FTP. По SSH вы не только передавать файлы, но и выполнять на сервере различные команды Linux. Протокол FTP позволяет лишь загружать файлы на сервер, перемещать и переименовывать их. Если кратко, то, например, чтобы перенести файлы сайта с одного сервера на другой, сначала мы создаем архив с помощью tar:

tar cvzf backup.tar.gz /папка/с/файлами

Обратите внимание, что опцию p передавать не нужно, чтобы права на файлы не сохранились, затем, вам нужно будет установить права вручную. Когда архив готов, используем копирование scp для передачи его на сервер:

scp backup.tar.gz user@ip_сервера:/var/www/public_html/

Затем авторизуемся на сервере и распаковываем архив:

ssh user@ip_сервера$ cd /var/www/public_html/$ tar xvzf backup.tar.gz

После этого останется сменить владельца для распакованных данных на имя пользователя веб-сервера:

chown -R www-data /var/ww/public_html/project/

Большинство действий по администрированию сервера вам придется выполнять так что лучше понять как пользоваться ssh.

Диагностика сети Linux

Этот момент администрирования Linux серверов подходит больше для компьютеров, к которым у вас есть физический доступ, но может в некоторых случаях полезным и на сервере. Самый простой способ проверить есть ли доступ к сети на компьютере, это выполнить команду ping:

ping ya.ru

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

ifconfig

Убедитесь, что правильно задан шлюз доступа к сети:

ip route

Обычно, это может подсказать вам, что конфигурация сети выполнена неверно, например, компьютер не получает нужные данные по протоколу DHCP или заданы неправильные статические настройки. Также проблема может быть в DNS. Возможно, сеть есть, но сервер не может получить ip адрес на основе доменного имени, для проверки вы можете выполнить ping какого-либо внешнего ip:

ping 8.8.8.8

Если же сеть не работает, и она настроена правильно, то можно еще попытаться узнать на каком узле обрывается соединение. Для этого используется команда traceroute:

traceroute 8.8.8.8

Все эти данные помогут понять в чем была ошибка и как ее решить.

Мониторинг ресурсов системы

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

free -h

Естественно, что если свободно только 40-50 Мб, то этого системе очень мало и все будет работать очень медленно. Следующим шагом будет выяснить какой процесс потребляет больше всего памяти, для этого можно использовать команду htop:

htop

В утилите вы можете сортировать процессы по загрузке процессора, колонка %CPU% или по потреблению памяти %MEM%. Так вы можете очень просто понять в чем проблема и кто перегружает систему. Например, веб-сервер Apache потребляет слишком много памяти, поэтому, возможно, будет эффективнее использовать Nginx.

Также в некоторых случаях нас может интересовать загрузка диска Linux и какие именно процессы перегружают жесткий диск. Для этого применяется утилита iotop. Просто выполните утилиту без параметров:

iotop

Проверка работоспособности сервисов

В системное администрирование linux также входит управление сервисами. Сейчас в большинстве дистрибутивов, в качестве системы инициализации используется systemd. Соответственно, управление службами linux выполняется с помощью нее. Чтобы посмотреть запущена ли служба, например, веб-сервер nginx, выполните:

sudo systemctl status httpd

В многочисленном выводе утилиты вы должны увидеть сообщение Active (running), это означает, что все хорошо и служба работает так как нужно. Возможно, также вам придется перезапустить службу:

sudo systemctl restart httpd

Или запустить ее, если она не была запущена до этого:

sudo systemctl start httpd

Если служба не запустилась, то вы можете посмотреть информацию об этом с помощью команды status или же выполнить:

journalctl -xe

Просмотр логов

Если какой-либо сервис или системный компонент не работает, то первое что нужно сделать - это смотреть логи. Если не помогает - включить режим отладки и смотреть логи. В 90% вы найдете ответ почему ничего не работает в логах программы. Логи всех служб и системные логи находятся в папке /var/log/. Некоторые службы создают отдельные папки для своих файлов, например, /var/log/nginx или /var/log/apache.

Если в обычном логе вы не нашли решение, то можно переключить программу в режим отладки или включить отображение максимально подробной информации. Обычно это дается в конфигурационном файле программы. Приводить конкретные примеры нет смысла, поскольку у каждого сервиса все по-другому. Но рассмотрим несколько команд, которые вы можете использовать:

tail -f /путь/к/лог/файлу

С помощью этой команды вы можете в реальном времени просматривать изменения в конце лог файла. Если опцию -f не указывать, то команда tail покажет десять последних строк из лога:

tail /путь/к/лог/файлу

Также для просмотра лог файла вы можете использовать любой текстовый редактор или утилиту cat.

Установка программного обеспечения

Установка программного обеспечения, одна из распространенных задач администрирования. В Linux большинство программ можно установить из официальных или сторонних репозиториев. Некоторые программы нужно собирать из исходников. Для установки софта из репозиториев используется пакетный менеджер. Существуют два основных пакетных менеджера, которые применяются на серверах, это yum, который используется в CentOS и apt, который применяется в Ubuntu. Работают пакетные менеджеры похожим образом и все их мы рассматривали в отдельных статьях, смотрите установка программ CentOS и установка программ Ubuntu. Например, чтобы установить пакет в Ubuntu используйте такую команду:

sudo apt install имя_пакета

А в CentOS/RedHat:

sudo yum install имя_пакета

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

Выводы

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

losst.ru

Как установить и настроить сервер OpenSSH на Ubuntu 16.04

В этой статье мы покажем вам, как установить, настроить и использовать OpenSSH на Ubuntu 16.04. SSH (Secure Shell) является протоколом, который позволяет получить надежный доступ к удаленной машине в то время как OpenSSH представляет собой набор инструментов на основе протокола SSH. Сегодня мы покажем вам, как установить и настроить OpenSSH на Linux VPS с помощью Ubuntu 16.04 в качестве операционной системы.

Установка OpenSSH на Ubuntu 16.04

Во-первых, давайте установим OpenSSH. Обновите индексы пакетов с помощью следующей команды:

sudo apt-get update

 

Для установки приложения сервера OpenSSH, а также других связанных пакетов используют следующую команду:

sudo apt-get install openssh-server

 

Обратите внимание, что пакет сервера OpenSSH может быть уже установлен в вашей системе, как часть процесса первоначальной установки сервера. Кроме того, вы можете установить клиентское приложение OpenSSH с помощью следующей команды:

sudo apt-get install openssh-client

Настройка OpenSSH на Ubuntu 16.04

Перед внесением каких – либо изменений в конфигурации OpenSSH, хорошо знать, как управлять услугой OpenSSH на вашем Ubuntu VPS. Для запуска службы вы можете использовать следующую команду:

sudo systemctl start sshd.service

 

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

sudo systemctl stop sshd.service

 

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

sudo systemctl restart sshd.service

 

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

sudo systemctl status sshd.service

 

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

sudo systemctl enable sshd.service

 

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

sudo systemctl disable sshd.service

 

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

Основной конфигурационный файл для приложения сервера OpenSSH это /etc/ssh/sshd_config. Убедитесь, что вы создали резервную копию исходной конфигурации перед внесением каких – либо изменений:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig

 

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

Port 22

 

Измените ее на что-то другое. Например 2022

Port 2022

 

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

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

Безопасный OpenSSH на Ubuntu 16.04

Одним из рекомендуемых способов защиты сервера при использовании OpenSSH, это отключить логин Root . Во- первых, создайте нового пользователя SUDO на сервере Ubuntu, а затем отредактируйте конфигурационный файл сервера OpenSSH. Найдите следующую строку:

#PermitRootLogin yes

 

и измените его на:

PermitRootLogin no

 

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

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

Дополнительные опции конфигурации вы можете проверить с помощью страницы man:

man sshd_config

или вы можете посетить страницы вручную OpenSSH на https://www.openssh.com/manual.html.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Операционная система Ubuntu | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Ubuntu (/ʊˈbuːntʊ/ uu-boon-tuu) является Debian -На основе операционной системы Linux и распределения для персональных компьютеров , смартфонов и сетевых серверов. Он использует пользовательский интерфейс Unity по умолчанию. Он основан на свободном программном обеспечении и назван в честь юга Африки философии убунту (буквально, «человек-Несс”), что говорит о Canonical Ltd может быть свободно переводится как “человечество к другим» или «Я есмь то, что я из – за того , кто мы все “.

Ubuntu является наиболее популярной операционной системой, работающую в размещенных средах, так называемые « облака », как самый популярный сервер распределения Linux.

Разработка Ubuntu возглавляет британской компании Canonical Ltd , компания из Южной Африки предприниматель Марк Шаттлворт . Canonical получает доход за счет продажи услуг технической поддержки и других услуг, связанных с Ubuntu. Проект Ubuntu публично привержен принципам разработки программного обеспечения с открытым исходным кодом, люди, рекомендуют использовать бесплатное программное обеспечение, изучать, как он работает, улучшить, и распространять его.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Администрирование | Самоучитель LINUX

Select Page: Where to?

Select Category: Where to?C чего начать? -- Плюсы и минусы ОС Ubuntu Linux за 3 минуты. Видео -- Собственно что это GNU/Linux? -- Глоссарий основных терминов GNU/Linux -- Linux для начинающих -- Как установить Linux -- Подробная инструкция с иллюстрацией каждого шага установки ОС DEBIAN -- Как установить Linux на флешку -- Установка программ в Linux Ubuntu (часть 1) -- Установка программ в Linux Ubuntu (часть 2) -- Настройка Убунту после установки (видео) -- Андрей Сухов. Видеокурс "Linux для начинающих" Debian\Ubuntu\Mint -- Аналоги Windows программ в Linux -- Linux — основные предубеждения Windows-пользователей -- WINE и PlayOnLinux — запуск WINDOWS программ в Linux. Устрановка, настройка для начинающих. -- Файловая система LINUX кратко -- Добавление программ в автозагрузку из консоли в Ubuntu\Debian\Mint -- Основы BASHРуководстваСправочники команд -- Справочник основных команд Linux с примерами -- Десятка лучших консольных команд -- Шпаргалка. Основы работы с терминалом -- Шпаргалка. Команды Unix — Linux кратко -- Шпаргалка по управлению ПО в Debian/Ubuntu/Mint -- Управляющие комбинации клавиш в Bash -- FreeBSD: мини-справочник по командам -- Основы BASH -- Работа с редактором nano -- Планировщик заданий cron в Debian\Ubuntu\Mint -- CHMOD — простые примеры -- Перечень основных сервисов GNU/Linux -- Файловая система LINUX кратко -- Добавление программ в автозагрузку из консоли в Ubuntu\Debian\Mint -- MANы на русском.ЛитератураРесурсыСтатьиДистрибутивы -- Debian -- Mint -- Ubuntu -- ДругиеПрограммы -- Оболочки рабочего стола -- Администрирование -- Офисные приложения -- Мультимедиа -- Android -- Графика -- Интернет -- Игры -- Утилиты -- Другие приложения -- Коммерческое ПО -- ХакиОбзорыРейтингиАдминистрирование -- Утилиты -- Сети -- Администрирование серверов Linuх, первая ступень (по программе LPIC-1 exam 101), 2015. Видеокурс -- Набор учебников для сертификации LPI(LPIC-1 и LPIC-2), Ян Шилдс, скачать бесплатно без регистрацииНовости OpenSource -- Дайжесты StudyLINUX.ruОпросы -- Чего не хватает на StudyLINUX.ru? Опрос. -- Лучшее окружение рабочего стола 2016. Голосование. -- Лучший 2016 дистрибутив для домашнего пользователя. Голосование. -- Какой браузер выбрать: сравнение Edge, Chrome, Firefox и Opera Vivaldi без привязки к операционной системе + голосованиеКарта сайтаО проекте -- О StudyLINUX.ru -- Друзья StudyLINUX.ru -- Добавить статью -- Поддержите проект! -- Хостинг\домен друзьям StudyLINUX.ru -- Дайжесты StudyLINUX.ru

studylinux.ru

Как настроить SSH ключи на Ubuntu 16.04

Мы покажем вам, как настроить SSH-ключи на Ubuntu 16.04. SSH или Secure SHELL – самый популярный и надежный криптографический сетевой протокол на базе UNIX. Он может использоваться для безопасной передачи данных, удаленных серверов, удаленного выполнения команд и многих других безопасных сетевых сервисов между двумя сетевыми серверами. Обычно аутентификация с паролем используется для подключения к удаленному серверу через SSH, но в этой статье мы покажем вам, как войти в ваш Ubuntu 16.04 VPS с помощью SSH-ключей. Мы создадим пару ключей (частный и открытый ключ), поместим закрытый ключ на ваш сервер, а затем воспользуемся локально сохраненным личным ключом, чтобы получить доступ к вашему серверу. Этот метод обеспечивает более безопасный способ подключения к вашему серверу, а не просто использование пароля.

Во время этого урока мы также объясним, как создать пару ключей SSH как на Linux, так и на операционной системе Windows.

1. Создание SSH-ключей на Ubuntu 16.04

Чтобы создать пару ключей SSH, просто запустите следующую команду с терминала на локальном компьютере под управлением Ubuntu 16.04:

ssh-keygen

 

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

Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:2QB/eJ39/4N7Q3PRSghNJmglX6hh3pSqQ3uGHhfd7Og root@rosehosting The key's randomart image is: +---[RSA 2048]----+ | . .+o++ | | oB+o=.o | | O+=+.o.. .| | . + +*o . .o.| | . + .So. . .o| | * + . . .oo| | . * . o +| | . E . +.| | .o +| +----[SHA256]-----+

 

Это создаст закрытый и открытый 2048 битовый ключ (id_rsa и id_rsa.pub) в каталоге /root/.ssh/ в вашей локальной системе.

Загрузка открытого ключа на сервер Ubuntu 16.04 с идентификатором ssh-copy-id

Следующий шаг требует, чтобы вы загружали сгенерированный открытый ключ на ваш удаленный сервер Ubuntu.

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

Затем вы можете использовать следующую команду для загрузки открытого ключа на ваш удаленный сервер:

ssh-copy-id root@remote_server

 

Вам будет предложено ввести пароль пользователя (в нашем примере это пароль root) и нажмите Enter. После установления соединения содержимое id_rsa.pub (открытого ключа) будет скопировано в файл /root/ssh/authorized_keys на удаленном сервере.

Должен отображаться следующий вывод:

Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@remote-host'" and check to make sure that only the key(s) you wanted were added.

 

Теперь вы должны иметь возможность аутентифицироваться на своем сервере Ubuntu, используя ваши SSH-ключи.

Загрузка открытого ключа на сервер Ubuntu вручную

Если инструмент ssh-copy-id недоступен в вашей системе, вы можете войти на свой сервер и сделать это вручную.

Сначала подключите свой сервер через SSH с помощью:

ssh root@remote_server

 

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

mkdir /root/.ssh

 

Затем вам нужно скопировать открытый ключ в файл authorized_keys на удаленном сервере. Вы можете создать и затем добавить содержимое открытого ключа с помощью текстового редактора:

nano /root/.ssh/authorized_keys

 

Вам также необходимо открыть файл конфигурации SSH:

nano /etc/ssh/sshd_config

 

и убедитесь, что существуют следующие строки и не комментируются:

RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys

 

Сохраните изменения и перезапустите службу SSH:

systemctl restart ssh

 

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

2. Создание ключей SSH в системе на базе Windows с PuTTY и PuTTYGen

Если вы используете операционную систему Windows на своем локальном компьютере, вам понадобится PuTTY для подключения к вашему серверу через SSH и PuTTYgen для генерации ваших SSH-ключей. Вы можете скачать их здесь (https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).

Чтобы сгенерировать SSH-ключи, запустите PuTTYGen на своем компьютере.

Внизу вы можете выбрать количество бит для сгенерированного ключа. Введите 4096 и нажмите «Создать». Начните перемещать мышь вокруг пустой области на экране PuTTYgen, чтобы создать уникальный ключ, основанный на вводе движения мыши.

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

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

Теперь вы можете открыть PuTTY и назначить местоположение своего закрытого ключа, нажать SSH в меню Connection и затем нажать Auth. Нажмите кнопку обзора и введите местоположение сохраненного файла закрытого ключа.

Затем нам нужно загрузить открытый ключ на ваш сервер. Для этого нажмите «Сессия», введите свой IP-адрес и номер порта SSH вашего сервера, выберите SSH для типа подключения и нажмите «Открыть».

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

После входа на ваш сервер сначала создайте каталог .ssh:

mkdir /root/.ssh

 

Затем создайте файл authorized_keys внутри каталога .ssh и добавьте содержимое своего открытого ключа внутри этого файла:

nano /root/.ssh/authorized_keys

 

Вы также можете открыть файл конфигурации SSH на своем сервере с помощью:

nano /etc/ssh/sshd_config

 

и убедитесь, что существуют следующие строки и не комментируются:

RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys

 

Если какие-либо изменения были внесены, не забудьте перезапустить службу sshd:

systemctl restart ssh

 

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

3. Отключить аутентификацию паролей

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

Чтобы отключить аутентификацию на основе пароля, откройте файл конфигурации SSH с помощью:

nano /etc/ssh/sshd_config

 

И раскомментируйте следующую строку и установите ее значение на «no»:

PasswordAuthentication no

 

Перезапустите службу sshd с помощью:

systemctl restart ssh That’s it. You have successfully set up SSH keys on your Ubuntu 16.04 VPS.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Первоначальная настройка сервера с Ubuntu 16.04

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

Шаг первый – Войдите под root

Для того, чтобы войти на свой сервер, то вам нужно знать публичный IP – адрес вашего сервера. Вам также потребуется пароль или, если вы установили ключ SSH для аутентификации, закрытый ключ для учетной записи пользователя “root”. Если вы еще не вошли на свой сервер, вы можете следовать за гидом, как подключиться к серверу с помощью SSH, который охватывает этот процесс в деталях.

Если вы еще не подключены к серверу, идти вперед и войдите в систему как пользователь root, используя следующую команду (замените выделенное слово на IP адрес для общего вашего сервера):

ssh root@your_server_ip

 

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

О root

Привилегированный пользователь является пользователь с правами администратора в среде Linux, который имеет очень широкие привилегии. Из-за возросших привилегий корневой учетной записи, вам на самом деле не рекомендуется использовать его на регулярной основе. Это происходит потому, что часть возможностей, присущей корневой учетной записи является возможность сделать деструктивные изменения, даже случайно.

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

Шаг второй – создать нового пользователя

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

В этом примере создается новый пользователь с именем “andreyex”, но вы должны заменить его на имя пользователя, которое вам нравится:

adduser andreyex

 

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

Введите надежный пароль, при необходимости, заполните дополнительную информацию, если вы хотите. Это не требуется, если вы можете просто нажать ENTER в любой области, которую вы хотите пропустить.

Шаг третий – суперпользователь

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

Чтобы избежать необходимости выйти из нашего обычного пользователя и снова войти в систему в качестве корневой учетной записи, мы можем установить, известного как “superuser” или корневые привилегии для нашей обычной учетной записи. Это позволит нашему обычному пользователю выполнять команды с правами администратора, поставив слово sudo перед каждой командой.

Чтобы добавить эти привилегии к нашему новому пользователю, нам нужно добавить нового пользователя в группу «sudo». По умолчанию в Ubuntu 16.04, пользователи, принадлежащие к группе “sudo” разрешено использовать команду sudo.

Как root, запустите эту команду, чтобы добавить нового пользователя к группе SUDO (замените выделенное слово новым пользователем):

usermod -aG sudo andreyex

 

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

Если вы хотите повысить безопасность вашего сервера, выполните остальные шаги в этом учебнике.

Шаг четвертый – добавить публичный ключ аутентификации (рекомендуется)

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

Генерация пары ключей

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

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

ssh-keygen

 

Предположим, что ваш локальный пользователь называется “localuser”, вы увидите вывод, который выглядит следующим образом:

Вывод ssh-keygen

Generating public/private rsa key pair. Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

Теперь вернитесь, чтобы принять это имя файла и путь к нему (или введите новое имя).

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

Примечание

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

Это создает закрытый ключ id_rsa и открытый ключ, id_rsa.pub, в директории .ssh домашней директории localuser‘s. Помните, что закрытый ключ не должен использоваться совместно с кем – либо, кто не должен иметь доступ к серверам!

Скопируйте открытый ключ

После генерации пары ключей SSH, вы хотите скопировать свой открытый ключ на новый сервер. Мы рассмотрим два простых способа как сделать это.

Вариант 1: Использование ssh-copy-id

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

Запустите скрипт ssh-copy-id, указав пользователя и IP – адрес сервера, на который вы хотите установить ключ, так:

ssh-copy-id andreyex@your_server_ip

 

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

Вариант 2: Вручную установить ключ

Предполагая, что вы сгенерировали пару ключей SSH, используя предыдущий шаг, используйте следующую команду в терминале вашей локальной машине, чтобы напечатать ваш открытый ключ ( id_rsa.pub):

cat ~/.ssh/id_rsa.pub

 

Это должно напечатать ваш публичный ключ SSH, который должен выглядеть следующим образом:

Содержание id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABSAABAQFBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7A2c47d4gOqB4izP0+fRQfvbz/AnXFz4COP/H6rCV05hqhhF+KYRxs9Y8tVQrpDZRAl75o6+hSbUOMu7xN+uVD0T9XzCcxmzTmZV7Na5up3QM3DISRYX/NP3utD2+zQqpJILKPLdP74w7s56oYpI9blpnSzxkEP3edVBOivUPpZ4JRenWManvIaSdMTALMy3MtlQhva+jS0gguyVbUkdzK9KKEuah+pSJvaugtebsU+aslPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAWXUPCI9mWkYS/1rPgpFmu3HCXBnWSUgf [email protected]

Выберите открытый ключ, и скопируйте его в буфер обмена.

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

На сервере, в качестве корневого пользователя, введите следующую команду, чтобы временно переключиться на нового пользователя (замените на собственное имя пользователя):

su - andreyex

 

Теперь вы будете в домашнем каталоге вашего нового пользователя.

Создайте новую папку с именем .ssh и ограничьте права доступа следующими командами:

mkdir ~/.ssh chmod 700 ~/.ssh

 

Теперь откройте файл в папке .ssh называется authorized_keys с помощью текстового редактора. Мы будем использовать nano для редактирования файла:

nano ~/.ssh/authorized_keys

 

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

Нажмите , CTRL-x чтобы выйти из файла, а затем, y чтобы сохранить изменения, которые вы сделали, а затем, ENTER чтобы подтвердить имя файла.

Теперь ограничьте права доступа к файл authorized_keys с помощью следующей команды:

chmod 600 ~/.ssh/authorized_keys

 

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

exit

 

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

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

Шаг пятый – отключить проверку подлинности пароля (рекомендуется)

Теперь, когда ваш новый пользователь может использовать ключи SSH, чтобы войти в систему, вы можете повысить безопасность вашего сервера путем отключения проверки подлинности пароля. Это позволит ограничить SSH доступ к серверу только для открытого ключа аутентификации. То есть, единственный способ войти на свой сервер (за исключением консоли), это иметь секретный ключ, который образует пару с открытым ключом, который был установлен.

Примечание

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

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

В корневом каталоге или нового пользователя SUDO, откройте конфигурацию SSH-демона:

sudo nano /etc/ssh/sshd_config

 

Найдите строку, которая определяет PasswordAuthentication, раскоментировать путем удаления # в начале, а затем измените его значение на “no”. Он должен выглядеть следующим образом после того, как вы сделали изменения:

sshd_config – Отключите пароль аутентификации

PasswordAuthentication no

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

sshd_config – Важные значения по умолчанию

PubkeyAuthentication yes ChallengeResponseAuthentication no

Когда вы закончите вносить изменений, сохраните и закройте файл, используя метод, который мы использовали ранее ( CTRL-X, а затем Y, потом ENTER).

Перезагрузите SSH демон:

sudo systemctl reload sshd

 

Аутентификация пароля теперь отключена. Ваш сервер теперь доступен только с ключом аутентификации SSH.

Шаг шестой – Тест входа

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

В новом терминале на вашем локальном компьютере, войдите на сервер с помощью новой учетной записи, которую мы создали. Для этого, используйте эту команду (замените имя пользователя и IP – адрес сервера):

ssh andreyex@your_server_ip

 

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

Примечание о ключе аутентификации

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

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

Помните, что если вам нужно выполнить команду с привилегиями суперпользователя, введите “sudo” перед ним, так:

sudo command_to_run

 

Шаг седьмой – Настройка основного брандмауэра

Серверы на Ubuntu 16.04 могут использовать брандмауэр UFW, чтобы убедиться, что только подключения к определенным службам разрешено. Мы можем настроить основной брандмауэр очень легко с помощью этого приложения.

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

Вы можете увидеть это, введя:

sudo ufw app list

 

Вывод

Available applications: OpenSSH

 

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

sudo ufw allow OpenSSH

 

После этого мы можем включить брандмауэр, набрав:

sudo ufw enable

 

Введите “у” и нажмите кнопку ENTER для продолжения. Вы можете видеть, что соединения SSH по-прежнему разрешено выводить:

sudo ufw status

 

Вывод

Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

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

 

Куда пойти отсюда?

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Администрирование сети компьютеров с Ubuntu через web-интерфейс / Хабр

Не так давно я принялся за довольно трудный, длительный и, как оказалось, не до конца возможный в реализации проект перевода информационной инфраструктуры предприятия с одноранговой безсерверной сети Windows в сеть Ubuntu с централизованным управлением.

В процессе перевода были реструктуризованы: рабочие места пользователей, организован примитивный файловый сервер, шлюз интернет, сервер приложений (скорее всего, это я его так называю, а на самом деле этот термин подразумевает нечто другое, но дальше будет понятно, почему я его так назвал, я надеюсь). В сочетании с некоторыми указаниями и «советами» руководства о том, как работать в «новой» системе, получилась довольно удобная в администрировании система. На ПК пользователей — Ubuntu 10.04 и стандартный набор программ — архиваторы, кодеки, документоридеры, переводчик, браузеры, скайп, клиент удаленного рабочего стола Remmina. По протоколу RDP пользователи подключаются к серверу терминалов Windows 2003 (который я выше назвал сервером приложений) и в терминальных сессиях работают с приложениями, которые оказалось не так просто заменить аналогами из мира Ubuntu: 1С-бухгалтерия, клиент Лига-закон, MS Office, Me-doc, некоторые клиентбанки. Интернет на сервере приложений запрещен и закрыт фаерволом. Набор каталогов с разрешениями на запись и исполнение для каждого пользователя (группы, если их несколько) четко ограничен. Для прироста файлов от каждого пользователя на дисках выделено по 1-2 Гб места, и основной файловый сервер вынесен на отдельный примитивный файловый сервер Ubuntu и настроена samba. Для каждого пользователя в samba заведен личный каталог и заведен каталог с возможностью для записи для каждой пары пользователей. На файловом сервере и на сервере приложений заведены одинаковые пользователи с одинаковыми паролями, на каждом из компьютеров пользователя заведен только один пользователь и админ. Это дает возможность присоединить расшаренные на файловом сервере каталоги к серверу приложений как сетевые диски (для каждого пользователя сервера приложений эти диски свои), а на локальные ПК пользователей монтировать эти каталоги через файл fstab. Шлюз благополучно работает под управлением FreeBSD, на котором настроен ipfw, natd, squid, sams, dhcpd.

Так вот, в процессе настройки и управления получившейся сетью ПК с Ubuntu мне очень часто приходится делать однотипные задачи типа заведения, удаления пользователя на сервере и на локальном ПК пользователя, создание и удаление общих каталогов на сервере и подключение их на компьютерах пользователей, мониторинг актуальности версий установленных у пользователей приложений, многоразовый запуск, остановка и перезапуск различных сервисов на сервере и на ПК пользователей, шаблонная правка одних и тех же конфигов, в общем все то, что делается после ssh admin@remotePC. В поисках автоматизации всех этих рутинных действий был найден Webmin, но, к сожалению, либо я не разобрался, как с его помощью управлять всем, что мне нужно на серверах и ПК пользователей, либо Webmin этого пока не умеет. Отдельные скрипты, во множестве встречающиеся на разных форумах использовать не очень хотелось, поэтому немного поразмыслив, я придумал как можно своими силами большинство задач, выполняемых при администрировании своей сети упростить и сделать доступными даже секретарше.

1. На ПК с реальным IP (либо с нереальным, но тогда на шлюзе нужно пробрасывать порт на нужный адрес внутри сети) ставится apache, запускаемый далее от имени пользователя с правами суперпользователя (правка httpd.conf) — назовем его условно admin.

2. Этот же пользователь admin заводится на всех ПК сети.

3. Генерируется пара ключей для безпарольного доступа по ssh с сервера, где стоит apache, к любому ПК локальной сети.

4. Далее в файле /etc/sudoers каждого локального ПК нужно дописать строки типа: admin ALL = (ALL) NOPASSWD: ALL — это уберет запрос подтверждения принадлежности группе суперпользователей, и уберет необходимость использования expect скриптов.

5. В apache заводится виртуальный хост, куда вешается сайт с кнопками, типа echo 'ssh admin@remotehost 'sudo service smbd restart'' или echo 'ssh admin@remotehost 'sudo apt-get upgrade'' и другими, добавляемыми и программируемыми по необходимости Т.е. мы получаем для любого устройства, на котором есть интернет и web-браузер возможность управления сервисами сервера и локальных ПК, их конфигами, монтированием и размонтированием файловых систем, и вообще всем, что позволено делать по ssh — т.е. всем! Остается только завести базу наших пользователей и ПК и запрограммировать необходимые функции по нажатию кнопок нашего примитивного сайта-админки. И, желательно, доступ к сайту-админке настроить с использованием ssl, для пущей верности.

habr.com