Архив метки: Linux

Конвертация дисков qcow2 -> lvm в KVM (Proxmox)

Занимался на днях переносом виртуальных машин с обычного kvm гипервизора на proxmox. На исходном гипервизоре диски виртуальных машин были в формате qcow2. Я решил заодно сконвертировать диски из qcow2 в lvm и написать заметку об этом, чтобы не забыть.

Читать

Сервер времени на Linux Ubuntu | ntp server

Сегодня разберём установку и настройку ntp сервера или сервера времени на Linux |Ubuntu | Debian. Данное руководство применима и для настройки ntpd на любом другом Linux дистрибутиве (например CentOS). Читать

Настройка DNS сервера с FQDN-доменом и внешним статическим ip адресом

Сегодня настроим DNS сервер с FQDN-доменым именем и внешним статическим ip адресом. В качестве DNS сервера будет выступать bind9 и операционная система Ubuntu Server 16.04. Так же разберем настройку двух зон: зона прямого и зона обратного просмотра.

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

Устранение неполадок SSH – ошибки работы протокола

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

Какие бывают ошибки протокола SSH?

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

Невозможность проверки ключа хоста

При создании SSH-соединения протокол требует, чтобы стороны идентифицировали себя. Бывает так, что от сервера поступает следующая ошибка:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed.

The fingerprint for the ECDSA key sent by the remote host is

SHA256:doBAKL304WyMd8hnFc9a29r3nX9okS9BlrBJcHtuyNk.

Please contact your system administrator.

Add correct host key in /root/.ssh/known_hosts to get rid of this message.

Offending ECDSA key in /root/.ssh/known_hosts:14

ECDSA host key for 212.45.27.201 has changed and you have requested strict checking.

Host key verification failed.

Эта ошибка может возникать по нескольким причинам:

  • переустановка SSH-сервера и неполная его конфигурация;
  • восстановление сервера из резервной копии;
  • изменение IP-адреса сервера.

Очистка ключей хостов помогает решить эту проблему. Сами эти ключи хранятся на стороне клиента в файле ~/.ssh/known_hosts. Для очистки можно удалить все записи вручную. Либо можно использовать команду:

$ ssh-keygen -R host_ip

Эта команда попытается очистить соответствующую информацию о ключе хоста в файле known_hosts:

Host 123.123.123.123 found: line 14

/home/john/.ssh/known_hosts updated.

Original contents retained as /home/john/.ssh/known_hosts.old

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

Закрытие или сброс соединения

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

Connection closed by 123.123.123.123 port 22

Часто такая ошибка возникает по нескольким причинам:

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

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

В данном случае необходимо проверить, есть ли в каталоге /etc/ssh набор файлов с именами sshd_host_*_key. Один из них должен иметь расширение *.pub.

В случае, если таких файлов нет, их нужно сгенерировать:

$ ssh-keygen -A

ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519

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

Ошибка взаимодействия с хостом

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

Unable to negotiate with 123.123.123.123: no matching key exchange method found.

Their offer: diffie-hellman-group1-sha1

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

  • список шифрования сервера был изменён или сервер его не поддерживает;
  • различные реализации (версии) протокола SSH на сервере и у клиента.

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

Для клиента использование методов шифрования можно настроить, используя опцию KexAlgorithms:

$ openssh -o KexAlgorithms=+diffie-hellman-group1-sha1 root@your_server_ip

Эта проблема не такая распространённая, поскольку возникает, когда версия реализации SSH-клиента более новая, чем используемая на сервере.

Заключение

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

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



2019-04-11T11:58:41
Без рубрики

Могу ли я запустить Linux на своём Android смартфоне?

Если вы читаете это, вы, вероятно, раньше использовали Linux и знаете, что это работает практически на любом оборудовании. Между тем, у вас в кармане телефон, и вы знаете, что он универсален. Так может ли ваш телефон Android работать под управлением Linux?

Да, он может. Вот что вам нужно знать о запуске Linux на вашем Android смартфоне или планшете.

Подождите, разве Android уже не Linux?

Ну, это так, но не совсем…

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

Операционная система Linux на самом деле должна называться GNU/Linux. Но со временем слово «Linux» стало взаимозаменяемо описывать ядро, а также различные операционные системы, которые его используют, такие как Ubuntu, Gentoo и многие другие.

Так что, хотя Android использует ядро ​​Linux, он не предлагает среду рабочего стола. Это то, о чем думает большинство людей, когда рассматривают способы установки Linux на Android.

Зачем запускать Linux на вашем Android-устройстве?

Так почему же вы хотите иметь среду рабочего стола Linux на своем телефоне или планшете Android?

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

Конечно, вы можете обнаружить, что задачи, которые вы хотите выполнять в Linux, также работают в Android. Единственным препятствием, сдерживающим вас, может быть одновременная многозадачность приложения. К счастью, эта функция доступна в Android начиная с Android 7.0 Nougat 2016 года.

Запустить Linux на вашем Android-устройстве непросто, поэтому, если вы ищете многозадачность, попробуйте перейти на современную версию Android.

Чтобы запустить Linux на Android, у вас есть несколько вариантов. Какой из них использовать, зависит от того, является ли ваше Android-устройство рутованным или нет.

Как запустить Linux на Android (без рута)

Лучший способ запустить Linux на вашем телефоне с минимальными усилиями — это Debian Noroot.

Хотя это полезно, к сожалению, это приложение больше не поддерживается. Он работает только на Android 2.3 Gingerbread до Android 5.0 Jellybean.

Преимущество Debian Noroot состоит в том, что он установит Debian Jessie на ваш телефон со слоем совместимости. Это позволяет вам запускать приложения Debian без необходимости рутировать Android. Учитывая, насколько сложно рутирование для некоторых устройств, это полезно.

Производительность с Debian Noroot невелика, но она полезна. Для достижения наилучших результатов при использовании Linux на Android сначала попробуйте рутировать устройство.

Загрузить: Debian Noroot (бесплатно)

Как запустить Linux на Android (с рутом)

Если у вас есть рутированное устройство, вы можете установить различные версии Linux на Android, используя инструмент Linux Deploy. Лучше всего это сделать, сначала подключив телефон к сети Wi-Fi.

Начните с установки BusyBox, который предоставляет некоторые расширенные возможности root.

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

Используйте это меню параметров, чтобы выбрать предпочитаемый дистрибутив . Debian, Ubuntu, Gentoo, Fedora и многие другие доступны для установки. Мы использовали Arch Linux.

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

Наконец, найдите записи Имя пользователя и Пароль пользователя и запишите их или измените на более запоминающиеся для вас.

Выйдите из этого меню, затем нажмите три точки в верхнем правом углу и выберите «Установить», затем нажмите «ОК» .

Когда это будет сделано, установите VNC Viewer из Play Store. В Linux Deploy нажмите «Пуск» для запуска Linux. Затем откройте VNC Viewer и подключитесь к localhost:5900, чтобы просмотреть рабочий стол Linux с учетными данными, которые вы ввели ранее.

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

Поздравляем: теперь у вас Linux работает на Android!

Как установить Kali Linux на Android (требуется рут)

Вышеприведенный метод Linux Deploy для запуска дистрибутивов Linux на Android, вероятно, самый лучший. Доступен хороший выбор версий Linux, включая Kali Linux.

Хотите использовать Android в качестве устройства для тестирования на проникновение? В то время как доступны различные полезные сетевые инструменты для Android, лучшим вариантом является портативная версия Kali Linux. Просто следуйте инструкциям выше, используя Linux Deploy, и выберите Kali Linux для установки на Android.

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

4 других способа запуска Linux на Android

Хотя мы рассмотрели несколько хороших вариантов запуска Linux на вашем Android-устройстве, у вас есть и другие доступные методы:

  1. DeX: Если у вас есть современное устройство Samsung, у вас есть возможность переключить аппаратное обеспечение в режим рабочего стола с DeX Хотя это не совсем операционная система Linux, это среда рабочего стола с ядром Linux, поэтому она достаточно близка.
  2. Удаленный рабочий стол для системы под управлением Linux с Splashtop или другим удаленным решением -Linux
  3. Limbo: Это эмулятор Linux для Android, основанный на эмуляторе QEMU. Тем не менее, это сложно и требует много времени для настройки, и результаты часто не стоят усилий.
  4. Двойная загрузка Android с Ubuntu Touch . Подключите устройство к дисплею HDMI, чтобы увидеть среду рабочего стола Ubuntu Touch.

Или просто установите пользовательский Android ROM

Не уверен, что установка Linux — это хорошая идея, но хотите изменить способ использования своего Android-устройства? Вы можете просто попробовать другую версию Android со встроенным рабочим столом. Мы рассмотрели ОС Maru, которую вы можете установить на некоторые устройства в виде пользовательского ПЗУ. Это идет со стандартным режимом телефона и режимом рабочего стола, с хорошими результатами.



2019-04-05T14:44:14
Вопросы читателей

Как удалить файлы и каталоги в терминале Linux?

Команды rm и rmdir удаляют файлы и каталоги в Linux, macOS и других Unix-подобных операционных системах. Они похожи на команды del и deltree в Windows и DOS. Эти команды очень мощные и имеют довольно много опций.

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

Как удалить файлы с помощью rm

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

rm file_1.txt

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

rm ./path/to/the/file/file_1.txt

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

rm file_2.txt file_3.txt

Подстановочные знаки могут использоваться для выбора групп файлов, которые будут удалены. Знак * представляет несколько символов, а символ ? представляет один символ. Эта команда удалит все файлы изображений png в текущем рабочем каталоге.

rm * .png

Эта команда удалит все файлы с одним символьным расширением. Например, это удалит File.1 и File.2, но не File.12.

рм *.?

Если файл защищен от записи, вам будет предложено удалить файл. Вы должны ответить с помощью y или n и нажать «Enter».

Чтобы снизить риск использования rm с подстановочными знаками, используйте параметр -i (интерактивный). Для этого необходимо подтвердить удаление каждого файла.

rm -i * .dat

Опция -f (сила) противоположна интерактивной. Он не запрашивает подтверждение, даже если файлы защищены от записи.

rm -f имя_файла

Как удалить каталоги с помощью rm

Чтобы удалить пустой каталог, используйте опцию -d (directory). Вы можете использовать подстановочные знаки (* и ?) В именах каталогов так же, как и в именах файлов.

rm -d directory

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

rm -d directory1 directory2 /path/to/directory3

Чтобы удалить не пустые каталоги, используйте параметр -r (рекурсивный). Чтобы было ясно, это удаляет каталоги и все файлы и подкаталоги, содержащиеся в них.

rm -r directory1 directory2 directory3

Если каталог или файл защищен от записи, вам будет предложено подтвердить удаление. Чтобы удалить не пустые каталоги и подавить эти приглашения, используйте вместе параметры -r (рекурсивный) и -f (принудительный).

rm -rf directory

Здесь требуется осторожность. Ошибка в команде rm -rf может привести к потере данных или неисправности системы. Это опасно, и осторожность — лучшая политика. Чтобы получить представление о структуре каталогов и файлах, которые будут удалены командой rm -rf, используйте команду tree.

Используйте apt-get для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.

sudo apt-get install tree

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

tree

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

tree path/to/directory

Команда rm также имеет параметры --one-file-system, --no-preserve-root, --preserve-root, но они рекомендуются только для опытных пользователей. Если вы что-то не так, вы можете случайно удалить все ваши системные файлы.

Как удалить каталоги с помощью rmdir

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

Самый простой случай — удаление одного пустого каталога. Как и в случае с rm , вы можете передать несколько имен каталогов в rmdir или rmdir путь к каталогу.

Удалите один каталог в текущем каталоге, передав его имя в rmdir :

rmdir directory

Удалите несколько каталогов, передав список имен в rmdir :

rmdir directory1 directory2 directory3

Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:

rmdir /path/to/directory

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

Когда rmdir выдает ошибку «Directory not empty», он прекращает обработку каталогов, переданных ему в командной строке. Если вы попросили удалить четыре каталога, а в первом содержались файлы, rmdir выдаст вам сообщение об ошибке и больше ничего не сделает. Вы можете заставить его игнорировать эти ошибки с --ignore-fail-on-non-empty чтобы обрабатывать другие каталоги.

В следующем примере две папки были переданы в rmdir , это work/reports и work/quotes. Параметр --ignore-fail-on-non-empty включен в команду. В папке work/reports находятся файлы, поэтому rmdir не может удалить ее. Опция --ignore-fail-on-non-empty заставляет rmdir игнорировать ошибку и переходить к следующей папке, которую он должен обработать, это work/quotes. Это пустая папка, и rmdir удаляет ее.

Эта команда использовалась.

rmdir --ignore-fail-on-non-empty work/reports /work/quotes

Вы можете использовать опцию -p (parent), чтобы удалить каталог, а также удалить его родительские каталоги. Этот прием работает, потому что rmdir начинается с целевого каталога, а затем возвращается к родительскому. Теперь этот каталог должен быть пустым, поэтому он может быть удален rmdir, и процесс повторяет шаг назад по пути, предоставленному rmdir.

В следующем примере команда, переданная в rmdir:

rmdir -p work/invoices

Каталоги invoices и work удаляются по запросу.

Используете ли вы Bash или любую другую оболочку? Linux предоставляет гибкие и мощные команды для удаления каталогов и файлов прямо из командной строки терминала. Некоторые люди предпочитают иметь рабочий процесс, который вращается вокруг терминала. У других может не быть выбора в этом вопросе. Они могут работать на серверах без установленного графического интерфейса или в удаленном сеансе в автономной системе, такой как Raspberry Pi. Эти команды идеально подходят для этой группы людей.

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



2019-04-02T10:01:05
Вопросы читателей