Как настроить ограниченный SFTP-сервер в Ubuntu?

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

Лучший ресурс, который поможет вам начать настройку службы ssh на хост-компьютере с использованием Ubuntu, - это Сервер OpenSSH. Это позволит вам использовать Протокол передачи файлов SSH (также Secure File Transfer Protocol, или SFTP) для доступа, передачи и управления файлами по SSH с клиентского компьютера.

Обзор решения

  • В Ubuntu вы можете настроить OpenSSH server на хост-компьютере, и затем пользователь может использовать ssh для подключения от клиента к серверу Хоста используйте только имя пользователя и пароль. Однако обратите внимание, что рекомендуется проверка подлинности с открытым ключом,

"Убедитесь, что у вас есть надежный пароль перед установкой SSH-сервера (возможно, вы захотите полностью отключите пароли)"

  • Учетные записи административных пользователей, созданные на Хосте, будут иметь права sudo, а стандартные учетные записи пользователей, созданные на Хосте, - нет.

Установите и настройте свой сервер OpenSSH на хосте

Чтобы установить сервер OpenSSH на хост:

sudo apt-get install openssh-server

Укажите вашему хосту статический IP-адрес, чтобы вы могли надежно подключиться к нему:

nm-connection-editor

Для настройки вашего сервера OpenSSH, "сначала сделайте резервную копию вашего файла sshd_config, скопировав его в свой домашний каталог или создав копию только для чтения в /etc/ssh, выполнив следующие действия:"

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaultssudo chmod a-w /etc/ssh/sshd_config.factory-defaults

"Как только вы создадите резервную копию своего sshd_config файл, вы можете внести изменения с помощью любого текстового редактора, например:"

sudo -H gedit /etc/ssh/sshd_config

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

sudo service ssh restart

Рассмотрите Следующие Меры Безопасности

  • Не включайте переадресацию портов на вашем маршрутизаторе: Когда посторонний запрашивает у вашего маршрутизатора подключение постороннего к порту 22 и т.д., Ваш маршрутизатор не выполняет требования, если вы не включили переадресацию портов
  • Отключить вход с правами суперпользователя: Закомментировать PermitRootLogin without-password; добавить PermitRootLogin no к Хозяину /etc/ssh/sshd_config
  • Выберите нестандартный SSH-порт: Закомментируйте Port 22; добавить Port <new-port-number> к Хозяину /etc/ssh/sshd_config
  • Разрешить только локальные подключения: Добавь ListenAddress 192.168.0.10
  • Разрешить определенным пользователям доступ к определенным портам: Добавить AllowUsers <username>@<IP_address_1> <username>@<IP_address_2> или AllowUsers <username>@111.222.333.* к Хозяину /etc/ssh/sshd_config
  • Разрешить только соединения с ключом RSA (без пароля): Добавьте содержимое ~/.ssh/id_rsa.pub от каждого Клиента в виде новой строки хоста ~/.ssh/authorized_keys. Затем добавьте PasswordAuthentication no к Хозяину /etc/ssh/sshd_config
  • Замедлить попытки взлома злоумышленников: Используйте ufw (несложный брандмауэр) на хосте, чтобы ограничить скорость входящих подключений до 10 в минуту: sudo apt-get install ufw && sudo ufw limit OpenSSH
  • Дополнительные идеи см. в разделе Обеспечение безопасности доступа по SSH

Если вы чувствуете, что должны, включите PasswordAuthentication В вашем sshd_config файл

Найдите строку с фразой PasswordAuthentication и заставить его читать:

PasswordAuthentication yes

Сохраните свой новый sshd_config файл, а затем перезапустите хост ssh обслуживание:

sudo service ssh restart

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

Обратите внимание на порт хоста ssh служба прослушивает в sshd_config создайте файл и настройте свой маршрутизатор для пересылки TCP/UDP-трафика, направленного на этот порт, на IP-адрес вашего сервера OpenSSH.

Подключитесь к хосту и войдите в систему через командную строку или терминал

  • Чтобы открыть терминал оболочки SFTP как <username> на хосте откройте терминал на Клиенте и введите следующую команду, заменив 123.123.1.23 с IP-адресом хоста:

    sftp <username>@123.123.1.23
    • Если вы изменили номер порта, который прослушивает сервер OpenSSH хоста, выполните:

      sftp -P <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23
  • Чтобы открыть терминал оболочки SSH как <username> на хосте откройте терминал на Клиенте и введите следующую команду, заменив 123.123.1.23 с IP-адресом хоста:

    ssh <username>@123.123.1.23
    • Если вы изменили номер порта, который прослушивает сервер OpenSSH хоста, выполните:

      ssh -p <port_number_in_Host's_sshd_config_file> <username>@123.123.1.23

Подключитесь к хосту и войдите в систему с помощью файлового менеджера с графическим интерфейсом (например, Nautilus) для более наглядного доступа SFTP для включения передачи файлов

  1. Откройте Nautilus на клиенте
  2. >Выберите Файл Подключиться к серверу
  3. Тип: SSH
  4. Сервер: Введите IP-адрес хоста
  5. Порт: номер порта, указанный в адресе хоста sshd_config файл
  6. Имя пользователя: имя пользователя
  7. Пароль: пароль

enter image description here

В 14.04:

  1. Откройте Nautilus на клиенте
  2. Подключение к серверу
  3. Тип: `ssh @123.123.1.23:

Создайте стандартные учетные записи пользователей на хосте с ограниченными правами доступа к файлам за пределами их домашней папки

Надлежащие права доступа к файлам, установленные на хосте, гарантируют, что каждый стандартный пользователь (без привилегий sudo), который вы создаете на Хосте, будет владеть своим /home/new_user каталог, но имеют ограниченные права доступа к остальной структуре каталогов.

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

Надеюсь, это будет полезно!

Шаг 1: Установите пакет OpenSSH, если он не установлен

sudo apt-get install openssh-server

Шаг 2: Создайте отдельную группу для пользователей SFTP.

sudo addgroup ftpaccess

Шаг 3: Редактирование /etc/ssh/sshd_config файл и внесите изменения, как показано ниже.Найдите и прокомментируйте нижеприведенную строку.

#Subsystem sftp /usr/lib/openssh/sftp-server

и добавьте эти строки в конец файла.

Subsystem sftp internal-sftpMatch group ftpaccessChrootDirectory %hX11Forwarding noAllowTcpForwarding noForceCommand internal-sftp

Шаг 4: Перезапустите службу sshd.

sudo service ssh restart

Шаг 5: Добавьте пользователя в группу ftpaccess и создайте пароль.

sudo adduser paul --ingroup ftpaccess --shell /usr/sbin/nologin

Шаг 6: Измените разрешение на домашний каталог.

sudo chown root:root /home/paul

Шаг 7: Создайте каталог внутри home для загрузки и изменения разрешения с помощью group.

sudo mkdir /home/paul/wwwsudo chown paul:ftpaccess /home/paul/www

Это оно.

Ссылаться : Настройка SFTP на ubuntu

Denyhosts это еще один инструмент, помимо упомянутых в "jtd", на который вы, возможно, захотите взглянуть. Он может автоматически блокировать повторные попытки подключения к вашему SSH-серверу. Он доступен для установки в репозиториях Ubuntu.

Ограничить доступ к Пользователю

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

Для этого добавьте следующие коды в нижней части файла конфигурации.

$ sudo nano /etc/ssh/sshd_config

Теперь файл откроется и вставьте код.

/etc/ssh/sshd_config. . .Match User filemgForceCommand internal-sftpPasswordAuthentication yesChrootDirectory /var/sftpPermitTunnel noAllowAgentForwarding noAllowTcpForwarding noX11Forwarding no

Заменять filemg с вашим именем пользователя. Затем сохраните и закройте файл.

Это оно.

Ссылка: Как использовать SFTP в Ubuntu 16.04