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