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

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

82
задан 11 April 2015 в 11:19

4 ответа

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

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

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

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

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

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

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

sudo apt-get install openssh-server

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

nm-connection-editor

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

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

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

sudo -H gedit /etc/ssh/sshd_config

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

sudo service ssh restart

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

  • Не включайте переадресацию портов на вашем маршрутизаторе: Когда посторонний просит ваш маршрутизатор подключить постороннего к порту 22 и т. Д., Ваш маршрутизатор не будет соответствовать требованиям, если вы не включили переадресацию портов
  • Отключите вход в систему с правами root: Закомментируйте 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 и перезапустите службу Host 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
      

Подключитесь к хосту и войдите в систему с помощью файлового менеджера GUI (например, 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, но ограниченный разрешения с остальной частью структуры каталогов.

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

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

0
ответ дан 11 April 2015 в 11:19

Шаг 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-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand 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: Создайте каталог внутри дома для загрузки и измените разрешение для группы.

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

Вот и все.

См .: Настройка SFTP в Ubuntu

0
ответ дан 11 April 2015 в 11:19

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

0
ответ дан 11 April 2015 в 11:19

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

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

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

$ sudo nano /etc/ssh/sshd_config

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

/etc/ssh/sshd_config

. . .

Match User filemg

ForceCommand internal-sftp

PasswordAuthentication yes

ChrootDirectory /var/sftp

PermitTunnel no

AllowAgentForwarding no

AllowTcpForwarding no

X11Forwarding no

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

Вот и все.

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

0
ответ дан 11 April 2015 в 11:19

Другие вопросы по тегам:

Похожие вопросы: