Проникновение во внутреннюю сеть — это технология, которая позволяет внешним сетям получать доступ к устройствам NAS в интрасети, благодаря чему даже в различных сетевых средах к устройствам NAS можно получить доступ и управлять ими удаленно. Ниже приведены некоторые распространенные решения для проникновения в интранет:
Synology официально предоставляет службу QuickConnect, которая позволяет удаленно получать доступ к устройствам NAS через вашу учетную запись Synology. Пользователи могут настраивать службу QuickConnect и управлять ею на панели управления NAS, что упрощает доступ к NAS в различных сетевых средах.
Synology NAS поддерживает использование DDNS (динамического решения). доменного имени)Служить,Вы можете установить динамическое доменное имя для устройства NAS.,Предоставьте пользователям доступ к NAS через доменные имена.,Нет необходимости беспокоиться о проблемах, вызванных динамическим изменением IP-адреса.
Настроив VPN-сервер на маршрутизаторе или используя собственную службу VPN NAS, можно установить безопасное удаленное соединение, позволяющее пользователям удаленно получать доступ к ресурсам интрасети, включая устройства NAS.
Настройте переадресацию портов (или сопоставление портов) на маршрутизаторе для перенаправления трафика с указанного порта на устройство NAS, чтобы пользователи могли получить доступ к NAS через определенный порт. Но обязательно учитывайте безопасность при переадресации портов, чтобы избежать раскрытия ненужных служб или портов.
Используйте сторонние инструменты или службы, такие как ngrok и frp, для проникновения в интрасеть. Эти службы могут помочь пользователям предоставлять доступ к общедоступным устройствам интрасети, но им необходимо уделять внимание безопасности и защите конфиденциальности.
В этой статье будет представлен собственный сервер ngrok для проникновения во внутреннюю сеть.
1. Требуется доменное имя. Если это домашний сервер, его также необходимо зарегистрировать.
2. Нужен сервер Рекомендуется использовать определенное облако за 99 юаней в год. доступ:http://d.xgss.net/2
3. Система centos7
Выберите доменное имя второго уровня ngrok.xgss.net. Доменное имя третьего уровня использует пананалитику *.ngrok.xgss.net. Чтобы позже указать имя домена, например nas.ngrok.xgss.net, нет необходимости это анализировать.
ngrok.xgss.net Aанализироватьприезжать облачный Сервер Публичный IP
*.ngrok.xgss.net Aанализироватьприезжать облачный Сервер Публичный IP
Подключитесь к серверу через удаленный ssh.
Загрузите часто используемые зависимые библиотеки
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++
Установите go и git
# yum -y install git go
Следует отметить, что версия git должна быть выше 1.7.9, а версия go — выше 1.4, иначе могут возникнуть непредвиденные ошибки.
Посмотреть версию
# git --версия
git версия 1.8.3.1
# версия Go
версия go go1.13 Linux/amd64
Лично я предпочитаю устанавливать в каталог /data/. Если вы хотите установить в другой каталог, перейдите в тот каталог, который вы хотите установить.
mkdir /data/
cd /data/
# git clone https://github.com/inconshreveable/ngrok.git ngrok
cd /data/ngrok
#Сгенерируйте и замените сертификат по умолчанию в исходном коде. Обратите внимание, что имя домена должно быть изменено на ваше собственное. Вот имя виртуального тестового домена.
NGROK_DOMAIN="ngrok.xgss.net"
#тест Успешно ли вы его настроили?
echo $NGROK_DOMAIN
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
После этого в каталоге ngrok будут созданы шесть файлов, включая root и устройство. Затем вам нужно скопировать его в настроенный каталог, и эти файлы будут использоваться при компиляции.
//Выполняем построчно,Затем вам будет предложено перезаписать,входить “y” Просто нажмите Enter
# cp -rf rootCA.pem assets/client/tls/ngrokroot.crt
cp: overwrite ‘assets/client/tls/ngrokroot.crt’? y
# cp -rf device.crt assets/server/tls/snakeoil.crt
cp: overwrite ‘assets/server/tls/snakeoil.crt’? y
# cp -rf device.key assets/server/tls/snakeoil.key
cp: overwrite ‘assets/server/tls/snakeoil.key’? y
На данный момент подготовка к созданию и копированию сертификата завершена.
make release-server
Это создаст файл ngrokd в каталоге bin, который является нашей серверной программой ngrok.
В разных системах можно использовать следующие команды:
32-битный Linux-клиент: GOOS=linux GOARCH=386 make release-client
64-битный Linux-клиент: GOOS=linux GOARCH=amd64 make release-client
32-битный клиент Windows: GOOS=windows GOARCH=386 make release-client
64-битный клиент Windows: GOOS=windows GOARCH=amd64 make release-client
32-битный клиент платформы Mac: GOOS=darwin GOARCH=386 make release-client
Клиент 64-битной платформы Mac: GOOS=darwin GOARCH=amd64 make release-client
Linux-клиент платформы ARM: GOOS=linux GOARCH=arm make release-client
Вот 64-битные клиенты Linux и 64-битные Windows, скомпилированные в системе Mac.
GOOS=linux GOARCH=amd64 make release-client
GOOS=windows GOARCH=amd64 make release-client
GOOS=darwin GOARCH=amd64 make release-client
После последовательного выполнения этих трех команд все клиентские файлы будут созданы в каталоге bin. Клиентская платформа — это имя папки, а клиент помещается в соответствующий каталог. Текущий клиент платформы Linux находится непосредственно в каталоге bin. . программа нгрока
Полная команда:
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
что я использую
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
nohup /data/ngrok/bin/ngrokd -domain="ngrok.xgss.net" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" &
Нет вывода nohup.out
nohup /data/ngrok/bin/ngrokd -domain="ngrok.xgss.net" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" >/dev/null 2>&1 &
chmod +x /etc/rc.d/rc.local
echo 'nohup /data/ngrok/bin/ngrokd -domain="ngrok.xgss.net" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443" >/dev/null 2>&1 &' >> /etc/rc.d/rc.local
# Это нормально?
# netstat -tunpl|grep ngrok
tcp6 0 0 :::80 :::* LISTEN 21387/ngrokd
tcp6 0 0 :::4443 :::* LISTEN 21387/ngrokd
tcp6 0 0 :::443 :::* LISTEN 21387/ngrokd
# curl http://ngrok.xgss.net
Tunnel ngrok.xgss.net not found
нормальный
Контролируйте службу ngork и автоматически запускайте ее, если служба аварийно завершает работу.
vi /root/jiankong.sh
Напишите следующее:
#!/bin/bash
process_pid=`ps -aux|grep -v 'grep'|grep -c 'ngrok'`
#echo "$process_pid"
#Количество ключевых слов, которые можно использовать grep -c
if [ $process_pid -eq 0 ]
then
pkill ngrok
nohup /data/ngrok/bin/ngrokd -domain=ngrok.7477.com -httpAddr=:80 -httpsAddr=:443 -tunnelAddr=:4443 >/dev/null 2>&1 &
now=`date +%Y-%m-%d[%H:%M:%S]`
echo "at $now start ngrok" >> /data/restart_ngrok.log
fi
Запланированное выполнение
# chmod +x /root/jiankong.sh
# echo '*/5 * * * * root /root/jiankong.sh' >> /etc/crontab
# systemctl restart crond
тест
# cat /data/restart_ngrok.log
# pkill ngrok
# /root/jiankong.sh
# # cat /data/restart_ngrok.log
at 2023-11-27[15:16:57] start ngrok
На этом установка ngrok завершена.
Скачать клиент
ls /data/ngrok/bin
darwin_386 darwin_amd64 go-bindata linux_386 linux_arm ngrok ngrokd windows_386 windows_amd64
в /data/ngrok/bin/ngrok Это Linux-клиент
в windows_amd64 Это клиент Windows
# cd /data/ngrok/bin
# tar -zcvf ngork-client.tar.gz ngrok darwin_amd64/ windows_amd64/
ngrok
darwin_amd64/
darwin_amd64/ngrok
windows_amd64/
windows_amd64/ngrok.exe
Пучок ngork-client.tar.gz Конфигурация загрузки файлов.
Загрузите файл сервера ngrok /data/ngrok/bin/ngrok на Synology NAS в каталоге 192.168.1.4 /root/ngrok:
Требования: Настройка сопоставления 22 портов ngork на Synology.
root@star-nas:~# mkdir /root/ngrok
root@star-nas:~# vi /root/ngrok/start_ngrok.sh
# cat start_ngrok.sh
#!/bin/bash
pkill ngrok
#ngrok-webprotocol
/root/ngrok/ngrok -subdomain=nas -config="/root/ngrok/ngrok.cfg" 5000 >/dev/null 2>&1 &
root@star-nas:~/ngrok# cat /root/ngrok/ngrok.cfg
server_addr: "ngrok.xgss.net:4443"
trust_host_root_certs: false
root@star-nas:~/ngrok# chmod +x /root/ngrok/start_ngrok.sh
Требования: Настройте порт 80 ngork на Synology для сопоставления с общедоступной сетью.
Создайте новый файл конфигурации:
mkdir /data/ngrok
vi /data/ngrok/ngrok_8000.cfg
Заполните содержимое
server_addr: "ngrok.xgss.net:4443"
trust_host_root_certs: false
vi /data/ngrok/ngrok_8082.cfg
Заполните содержимое
server_addr: "ngrok.xgss.net:4443"
trust_host_root_certs: false
Загрузите файл ngrok, сгенерированный на сервере, в каталог /data/ngrok/.
chmod +x /data/ngrok/ngrok
nohup /data/ngrok/ngrok -log=/data/ngrok/ngrok_8000.log -subdomain=seafiles -config="/data/ngrok/ngrok_8000.cfg" 8000 &
nohup /data/ngrok/ngrok -log=/data/ngrok/ngrok_8082.log -subdomain=down -config="/data/ngrok/ngrok_8082.cfg" 8082 &
netstat -tunpl |grep ngrok
tcp 0 0 127.0.0.1:4040 0.0.0.0:* LISTEN 20609/ngrok
бревно: -log=/data/ngrok/ngrok_8000.log Он записывает журнал ngrok. Если вы добавите этот параметр во время ранней отладки, вы сможете проверить, в чем проблема, если вы не можете получить к нему доступ. Имя субдомена: -subdomain=seafiles Это имя поддомена, определенное при доступе. Посетите сейчас. seafiles.ngrok.xgss.net Вы можете получить доступ к службе через порт 8000 на этом компьютере.
ngrok
Tunnel Status online
Version 1.7/1.7
Forwarding https://test.ngrok.xgss.net -> 127.0.0.1:80
Forwarding http://test.ngrok.xgss.net -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
Conn 0
Avg Conn Time 0.00ms
Если здесь не произойдет ничего неожиданного, он запустится успешно. Когда вы получите доступ к test.ngrok.xgss.net, это будет ваш локальный IP-адрес. Вы можете настроить доменное имя test.ngrok.xgss.net через apache или nginx, чтобы указать свой каталог. чтобы начать использовать его.
Создайте новый каталог ngrok на диске D. Как показано на рисунке, есть четыре файловые функции:
add.bat — добавить start.bat в элемент загрузки, ngrok.cfg — конфигурация порта, ngrok.exe — файл, загружаемый сервером, start.bat запускает ngrok
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v lin /t REG_SZ /d D:\ngrok\start.bat /f
server_addr: "ngrok.xgss.net:4443"
trust_host_root_certs: false
tunnels:
mstsc:
remote_port: 3378
proto:
tcp: "127.0.0.1:3389"
Содержимое start.bat
D:
cd D:\ngrok
ngrok -config=ngrok.cfg start mstsc
Дважды щелкните start.bat.
Используйте тестовую сеть 4G мобильного телефона для удаленного подключения к машине.
Адрес: ngrok.xgss.net:3378
Вы можете подключиться удаленно.