Совместное использование SMB-сервера через SFTP

У меня есть файлы, хранящиеся на NAS, к которым я хотел бы получить доступ из Интернета, но я знаю, что пересылка порта, на котором запущен обычный smb или ftp, - это плохая идея. Я надеюсь, что смогу использовать свою Linux-машину для монтирования общего ресурса smb, а затем поделиться им через sftp, который я могу перенести вперед. Это возможно? Я бы просто переставил жесткий диск с NAS на компьютер с Linux, но свободных портов SATA недостаточно.

Спасибо за ваше время, Эрик

0
задан 8 December 2019 в 04:09

1 ответ

единственный безопасный способ - не использовать пароль и настроить открытые ключи для вашего sftp-подключения к внешнему миру:

ssh-keygen

Если вы не установите пароль, то вы можете использовать скрипт к автозапуску. Вы также можете использовать пароль для шифрования личных ключей. Затем вы захотите изменить /etc/ssh/sshd_config, чтобы разрешить вход только с ключами, а не с паролем.

Вы должны увидеть примерно следующее. Закрытый ключ никогда не должен покидать вашу машину.

tom@jb:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tom/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/tom/.ssh/id_rsa
Your public key has been saved in /home/tom/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:3f88MO3hUf4DvGFASPjuWEmoTwCGFsw3s+xGJgjtFck tom@jb
The key's randomart image is:
+---[RSA 3072]----+
|ooo..o  o..      |
|.=.*E  . . .     |
|+.+.=   o .      |
|...= . . + o    .|
|  =   o S o + ...|
|   o . . +   O +.|
|  .   o +   . X +|
|       o .   . B.|
|                =|
+----[SHA256]-----+

Открытый ключ должен быть добавлен в файл авторизованных ключей вашего сервера:

cat /home/tom/.ssh/id_rsa.pub >> authorized_keys # roughly speaking

Не спрашивайте меня, как вы вообще планируете получить ключи паба! Это текст, который выглядит следующим образом:

cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC+ybhOrgg7SBbbMho75R2DsAnFNjHGZGEa2i2PhNM2mGAOY/7GRGhEQsUuGHyciuvSld7m+HVTEemXQszAc9B0/ElO/wuz1+i/elSpi6dbMuzqihZE9SFik8GQzf8BxrgsU1av/OazwagLUPWm2Y4XGxYZrfolRSnhYiJ3htB8G6TH6yemX9jZ6btxTlUlCtkmgR0hTA8iZzPwTAr/g9TckBee9nbq9amcVO2ff+t+ and this is only the pub key of a 4096 bit pair remember MZFF8PxDFQH70qWcrb2XSlUvhsfCGZxTQqLWON749rLXQSPSbW8nFA2Lz1mRJ++NnChvPcODBgVfBd+E59LBSsD9JLcBrWJj5IBpTBu9znNR3QaMYukrQ0Cnpa01+6ZwmEilhQBZg/xtrJxGK8vq8SQamtWWNzY5Bm0atsbdazXX8j7AUogMNHiXICIrVky6jf4E5tH57dQeHeUTWgU5Ql3q6yyfKh/Q1HJMdvIlS58cYE5Xc= tom@jb

Вашему серверу sshd может потребоваться слушать широко открытый Интернет 0.0.0.0 вместо, скажем, 127.0.0.1 (только вы) или, может быть, 192.168.1.69 для локальной сети. Затем откройте порт 22 на вашем брандмауэре для вашего хоста 192.168.1.69 и т. д. Если вам нужен путь к вашим общим ресурсам SMB или SFTP из туннеля ssh, попробуйте перетащить значок соответствующей папки, чтобы открыть путь, например:

/run/user/1000/gvfs/sftp:host=moderna.local/Users/tom/ALLYOURBASE

Вот как я получаю доступ к некоторым старым дискам формата HFS+ и APFS для macOS с возможностью чтения/записи. Хорошее решение проблемы с монтированием только для чтения. Этот удаленный сетевой ресурс доступен через /run/ после использования sftp для входа (ftp через ssh).

Я считаю, что sshfs предпочтительнее, чем samba, но он немного больше загружает процессор, поэтому, если большая работа, возможно, будет использовать samba, но монтирование / at /mnt/sshs удовлетворяет мои потребности.

Подстановочный знак WAN без монтирования Что-то вроде ssh -L 10.10.10.22:445:192.168.1.69:445 (или, возможно, с -RI часто ошибаются в порядке, попробуйте ssh -R *:445:192.168.1.69: 445)

С помощью * теперь каждый в удаленной локальной сети может как бы получить доступ к этой машине, если они нажмут на нее, например, \192.168.1.69\MyDerkaments или, возможно, smb:\10.10.10.22\DerkaDerkaShare и т. д., когда туннель ваш linxuxbox может пересылать SYN на NAS. Бакала.

Надеюсь, у вас там есть брандмауэр. Я бы не советовал открывать 445 в самый разгар паутины.

Вы можете использовать ssh, чтобы отправить порт 445 вашего NAS в качестве сокета для удаленного прослушивания: сделать его доступным внутри удаленной локальной сети — это круто. Если он не возражает против ответа на несколько разных подсетей.

nmap ваш NAS, найдите порт 445, скажите, что он называется derka_muhamed_nas, вы бы:

root@putin:/# nmap derka_muhamed_nas
Starting Nmap 7.80 ( https://nmap.org ) at 2021-11-17 05:47 NZDT
Nmap scan report for naztynasofderkaderka (10.0.0.60)
Host is up (0.00068s latency).
rDNS record for 10.0.0.60: derka_muhamed_nas

PORT      STATE SERVICE
445/tcp   open  microsoft-ds   <---  Samba run on port 445 yeah? 

небезопасно для сети, если вы туннелируете его, только одна машина может быть хостом, потому что smb должен быть на 445 в отличие от более крутые протоколы, такие как ssh, которые могут работать на любом порту.

0
ответ дан 14 August 2020 в 10:10

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

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