Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: как организовать доступ к терминалу с андроид устройства через интернет?  (Прочитано 3012 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
Всем доброго дня.
Появилась надобность рулить компом через терминал с правами рута из любой точки нашей необъятной страны.
Как это можно сделать?

Мои мысли по этому поводу:
1. Vpn ssh для доступа в локальную сеть
2. И от туда уже пользовать vnc (благо на андроиде есть клиенты)

Буду рад за направление в нужное русло.
Lubuntu
Xubuntu

Оффлайн DimmKo

  • Активист
  • *
  • Сообщений: 260
    • Просмотр профиля
    • Image Hosting
У меня внешний адрес есть на роутере, но можно и через dyndns сделать.
Потом на том же роутере есть OpenVPn или просто VPN. Я использовал 1.
На своем Android установил "OpenVPN Connect", импортировал туда свой конфиг. Подключаюсь им, получаю адрес. Потом через "SSH Client" захожу на свой сервер.
Ну вот как-то так.
Ubuntu Server 20.04.2 LTS | x86_64

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
1 - Настроить на десктопе доступ через ssh - /etc/ssh/sshd_config
2 - Настроить на роутере проброс 22-го порта на нужную машину (если используется дефолтный порт ssh)

3 - Использовать DynDNS или NoIP сервисы, если ip-адрес динамический
4 - Установить ssh-клиент на девайс с андроидом. Server Auditor наиболее удобен для удалённого управления


5 - Всё. И не нужно никаких заморочек с vpn и vnc

Теперь что касается безопасности.
1 -
Цитировать
Появилась надобность рулить компом через терминал с правами рута из любой точки нашей необъятной страны.
Поздравляю! Ваш комп уже взломан! Давать рут-доступ к машине через удалённое подключение - самая большая глупость из тех, которые можно сделать при настройке ssh!
Для управления вполне достаточно входа под обычным пользователем. Если так уж нужны рут-права, то sudo для этого вполне достаточно. Как вариант, можно после подключения ввести команду sudo -s или sudo -i, чтобы работать от имени рута.
Удалённый доступ от имени рута запретить однозначно! А ещё лучше, явно указать, каким пользователям разрешён доступ
# Authentication:
LoginGraceTime 30s              # лимит времени на авторизацию
PermitRootLogin no              # запрет доступа для рута
MaxAuthTries 3                  # максимальное количество попыток авторизации
MaxSessions 1                   # максимальное количество одновременных сессий
AllowUsers your_username        # логин пользователя, которому разрешено подключение

2 - Дефолтный порт лучше всего сменить, т.к. в него постоянно будут долбиться всякие кулхацкеры, пытаясь брутфорсить (проверено на собственной машине - как только настроил доступ к компу извне, сразу же начали ломиться боты, в основном с китайскими адресами)
Port ***                  # установить свой порт, отличный от 22-го
AddressFamily inet

3 - Запретить доступ по паролю, использовать авторизацию только по ключам! ServerAuditor эту функцию поддерживает, в отличии от большинства андроидных клиентов
PubkeyAuthentication yes                           # разрешение использовать публичные ключи для авторизации
AuthorizedKeysFile .ssh/authorized_keys       # путь к каталогу с ключами
PasswordAuthentication no                          # запрет авторизации паролем
PermitEmptyPasswords no                            # запрет использования пустых паролей для авторизации (неактуально, если запрещена авторизация паролем)


4 - в качестве защиты от брутфорса использовать что-нибудь типа fail2ban или sshguard, если не получается самому написать правила для iptables,

Если придерживаться всех этих правил, то никаких проблем с несанкционированным доступом к машине не будет. В противном случае - ССЗБ!
« Последнее редактирование: 18 Августа 2015, 14:21:51 от Haron Prime »

Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
1 - Настроить на десктопе доступ через ssh - /etc/ssh/sshd_config
2 - Настроить на роутере проброс 22-го порта на нужную машину (если используется дефолтный порт ssh)

3 - Использовать DynDNS или NoIP сервисы, если ip-адрес динамический
4 - Установить ssh-клиент на девайс с андроидом. Server Auditor наиболее удобен для удалённого управления


5 - Всё. И не нужно никаких заморочек с vpn и vnc

Теперь что касается безопасности.
1 -
Цитировать
Появилась надобность рулить компом через терминал с правами рута из любой точки нашей необъятной страны.
Поздравляю! Ваш комп уже взломан! Давать рут-доступ к машине через удалённое подключение - самая большая глупость из тех, которые можно сделать при настройке ssh!
Для управления вполне достаточно входа под обычным пользователем. Если так уж нужны рут-права, то sudo для этого вполне достаточно. Как вариант, можно после подключения ввести команду sudo -s или sudo -i, чтобы работать от имени рута.
Удалённый доступ от имени рута запретить однозначно! А ещё лучше, явно указать, каким пользователям разрешён доступ
# Authentication:
LoginGraceTime 30s              # лимит времени на авторизацию
PermitRootLogin no              # запрет доступа для рута
MaxAuthTries 3                  # максимальное количество попыток авторизации
MaxSessions 1                   # максимальное количество одновременных сессий
AllowUsers your_username        # логин пользователя, которому разрешено подключение

2 - Дефолтный порт лучше всего сменить, т.к. в него постоянно будут долбиться всякие кулхацкеры, пытаясь брутфорсить (проверено на собственной машине - как только настроил доступ к компу извне, сразу же начали ломиться боты, в основном с китайскими адресами)
Port ***                  # установить свой порт, отличный от 22-го
AddressFamily inet

3 - Запретить доступ по паролю, использовать авторизацию только по ключам! ServerAuditor эту функцию поддерживает, в отличии от большинства андроидных клиентов
PubkeyAuthentication yes                           # разрешение использовать публичные ключи для авторизации
AuthorizedKeysFile .ssh/authorized_keys       # путь к каталогу с ключами
PasswordAuthentication no                          # запрет авторизации паролем
PermitEmptyPasswords no                            # запрет использования пустых паролей для авторизации (неактуально, если запрещена авторизация паролем)


4 - в качестве защиты от брутфорса использовать что-нибудь типа fail2ban или sshguard, если не получается самому написать правила для iptables,

Если придерживаться всех этих правил, то никаких проблем с несанкционированным доступом к машине не будет. В противном случае - ССЗБ!


Спасибо за развернутый ответ.
Под крутом я имел ввиду пользователя, созданного при установке системы.
Lubuntu
Xubuntu

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
iaks,
Если будете использовать авторизацию по ключу сначала сгенерируйте на девайсе с андроидом ключ и отправьте его на сервер (на комп), а уже потом отключайте доступ по паролю
Удачи!

P.S> используйте rsa-ключи, т.к. новая версия opennssh более не поддерживает работу с dsa-ключами
« Последнее редактирование: 18 Августа 2015, 17:27:34 от Haron Prime »

Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
iaks,
Если будете использовать авторизацию по ключу сначала сгенерируйте на девайсе с андроидом ключ и отправьте его на сервер (на комп), а уже потом отключайте доступ по паролю
Удачи!

P.S> используйте rsa-ключи, т.к. новая версия opennssh более не поддерживает работу с dsa-ключами

Сгенерировал ключ в server auditor - нажал на кнопку с молнией generate key
В поле title ввёл user1
Type - оставил RSA
Key size оставил пустым
Passphrase  и Passphrase repeate ввёл парольна ключ
Нажал generate - в keychain появился мой ключ
Нажимаю на него - открылся текстовый файл
Нкжимаю на три точки в правом углу и выбираю export to host
Ничего не меняю в появившейся странице и переходу на вкладку hosts
Выбираю свой host
Нажимаю на галочку в правом верхнем углу.
Ключ передался.
Отключил на сервере аутентификацию по ключу.
Перезагрузил ssh

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

На сервере в директории ect/sdh отсутствует дирестория с ключами
У пользователя даже нет директории .ssh

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

Lubuntu
Xubuntu

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
iaks,
от чьего имени Вы заходили на сервер и устанавливали ключ?
Если от имени рута, то и смотрите в /root/.ssh/authorized_keys
Если от другого пользователя, то соответственно в его домашнем каталоге.
Если Вы конечно не меняли параметр AuthorizedKeysFile   .ssh/authorized_keys  в настройках sshd на сервере

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11313
  • Нетолерантный социопат
    • Просмотр профиля
P.S> внастройках хоста в server auditor Вы указали данный ключ?



Оффлайн iaks

  • Автор темы
  • Участник
  • *
  • Сообщений: 217
    • Просмотр профиля
Ключ указывается автоматически после того как он передаётся на сервер
Беда в том, что на сервере не появляется директория .ssh :-[

В sshd_config AuthorizedKeyFile %h/.ssh/authorized_keys

Serverauditor передаётключ на сервер следующим образом
if test ! -e $1;
then mkdir $1;
   chmod 700 $1;
fi;
if test ! -e "$1/$2";
then touch "$1/$2";
   chmod 644 "$1/$2";
fi;
echo $3 >> "$1/$2";

$1 = .ssh
$2 = authorized_keys

В результате в serverauditor пишет, что ключ успешно передался, а на сервере он не появился

Как мне изменить строки передачи ключа в serverauditor для корректной работы?
Как можно перенести ключ в ручном режиме на сервер?




Пользователь решил продолжить мысль 05 Сентября 2015, 18:47:58:
Все разрулилось ручным созданием директории /home/user/.ssh :D
« Последнее редактирование: 05 Сентября 2015, 18:47:58 от iaks »
Lubuntu
Xubuntu

 

Страница сгенерирована за 0.053 секунд. Запросов: 24.