Я хотел бы знать, как настроить учетные записи пользователей 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.
- Как правило, вы можете указать свой веб-браузер на
192.168.1.1
для того, чтобы войти в свой маршрутизатор и настроить переадресацию портов. Видеть Настроить сервер OpenSSH и маршрутизатор для приема SSH-соединения через Интернет?
Подключитесь к хосту и войдите в систему через командную строку или терминал
-
Чтобы открыть терминал оболочки 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 для включения передачи файлов
- Откройте Nautilus на клиенте
- >Выберите Файл Подключиться к серверу
- Тип:
SSH
- Сервер: Введите IP-адрес хоста
- Порт: номер порта, указанный в адресе хоста
sshd_config
файл - Имя пользователя: имя пользователя
- Пароль: пароль
В 14.04:
- Откройте Nautilus на клиенте
- Подключение к серверу
- Тип: `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
с вашим именем пользователя. Затем сохраните и закройте файл.
Это оно.