Odp: Gargoyle by obsy, WRT160NL i SSH Reverse tunnel
On po prosty sprawdza czy dane polecenie jest w procesach. Jak nie to uruchamia ponownie. Możesz i co 1min, nie ma znaczenia poza obciążeniem routera przez cykliczne przerabianie skryptu.
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → Gargoyle by obsy, WRT160NL i SSH Reverse tunnel
Strony Poprzednia 1 … 4 5 6 7 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
On po prosty sprawdza czy dane polecenie jest w procesach. Jak nie to uruchamia ponownie. Możesz i co 1min, nie ma znaczenia poza obciążeniem routera przez cykliczne przerabianie skryptu.
No dobra, ale to nadal nie załatwia mojego problemu...
To że go sprawdzi to ok - to by miało zastosowanie wtedy, gdy router samoczynnie byłby restartowany razem z rozłączeniem internetu, ale nie wtedy jak zniknie samo połączenie internetowe, wtedy skrypt będzie w procesach ale nie zestawi się automatycznie w chwili uzyskania ponownego połączenia...
Przecież ten skrypt ZESTAWIA połączenie...
Dobra, przetestuję w praktyce.
Jak skopiować klucz na VPS o porcie ssh 2213?
# scp klucz_router_pub.txt root@xx.xxx.xx.xxx -p 2213:~/.ssh/
Co zrobiłeś najlepszego?
scp -P 2213 klucz_router_pub.txt root@xx.xxx.xx.xxx:/root/.ssh/
Dobra, to już za nami, a teraz:
root@Gargoyle:~# ssh -f -NT -R 8889:localhost:22 root@xx.xxx.xx.xxx -p 2213 -i /root/klucz_router_pub.txt
ssh: Exited: Bad buf_getptr
root@Gargoyle:~# ssh -P 2213 -f -NT -R 8889:localhost:22 root@31.220.63.128 -i /root/klucz_router_pub.txt
WARNING: Ignoring unknown argument '-P'
ssh: Exited: Error resolving '2213' port '22'. Name or service not knownmałe p jest przy ssh. I daj to z przodu nie z tyłu.
Błąd polegał na złym kluczu użytym do połączenia.
I jest problem...
Przecież ten skrypt ZESTAWIA połączenie...
No własnie zestawia ale jak pisałem juz po restarcie połączenia co godzinę (Aero2) tunel się nie zestawia.... A to że jest w procesach to się zgodzę...
Nie wiem, Cezary może jakaś podpowiedz, bo jak to wyjaśnić? Teraz jestem w pracy i po zalogowaniu na VPSa nie widzę żadnego połączenia od strony Gargulca do niego. Skrypt jest prawidłowy bo po zabiciu procesu testowego (połączenia ssh) po dodaniu skryptu do crona router ustanowił połączenie bezbłędnie do VPSa
Ps. wczoraj wieczorem sprawdzałem połączenie na VPSie i można było z niego się na Gargulca dostać, nie czekałem do 1go rozłączenia internetu ale widzę że moje obawy się sprawdziły...
root@wojtek:~# ssh -p 8889 root@127.0.0.1
ssh: connect to host 127.0.0.1 port 8889: Connection refusedSkrypcik zestawia tunel. Jeżeli z jakiegoś powodu druga strona "zwiśnie" to tunel nadal jest ale nie możesz z nim nic zrobić. Więc standardowo - pinguj sobie drugą stronę i jak nie ma odpowiedzi to rób restart tunelu przez ew. ubicie tego co zostało i uruchomienie ponowne skryptu.
Cezary więc dlatego od 118 postu zadaje to samo pytanie... Czy w związku z ww sytuacją jest jakiś gotowy skrypt bądź skrypt do przerobienia który będzie wykonywał ewentualny restart tunelu w razie zerwania połączenia?
Nie ma. Po prostu pinguj.
Jestem noga ze skryptów, ale co powiecie na stworzenie takiego skrypt restartujący tunel w przypadku braku połączenia?:
restart_tunel.sh:
#!/bin/sh
if (! ping -q -c 5 -W 10 google.com > /dev/null)
then
"skasowanie 'istniejacego' tunelu ssh z procesow"
else
/bin/tunel_ssh.sh
fitunel_ssh.sh
#!/bin/sh
T="ssh -f -NT -R 8889:localhost:22 użytkownik@adres_serwera -i /root/rsa_router_key.txt"
pgrep -f "$T" > /dev/null 2>&1 || $TPodejrzewam, że w tym wypadku nie będzie potrzebna część pgrep -f "$T" > /dev/null 2>&1 || $T z tunel_ssh.sh a zamiast "skasowanie 'istniejacego' tunelu ssh z procesow" wstawić pgrep? Tylko jakie argumenty ma przyjąć pgrep żeby kasowało istniejące już 'nieaktywne' połaczenie/proces tunelu - wcześniej było to przypisane do zmiennej a teraz...?
Ps. Czy pgrep może zabic proces wyszukując go po numerze portu?
Na routerze kliencie widziałem taki błąd.
netstat: /proc/net/tcp6: No such file or directory
netstat: /proc/net/udp6: No such file or directory
netstat: /proc/net/raw6: No such file or directory
No to ja zdalnie ściągnąłem i zainstalowałem na routerze serwerze http://ecco.selfip.net/attitude_adjustm … ar71xx.ipk i teraz nie mam kontaktu z routerem serwerem.
W związku z tym, że zdalne wyciągnięcie wtyczki routera z gniazdka z wykorzystaniem "żona.sh" nie rozwiązało problemu, to chciałbym się dowiedzieć jakie oprogramowanie mam ściągnąć z sieci, żeby zagadać z routerem, gdy wrócę do domu i nie będę miał połączenia z siecią?
Skrypt "żona.sh" raportuje, że nie ma dostępu po kablu z przeglądarki pod adresem 192.168.1.1
A miałeś gargoyle? To stąd miałeś zainstalować: http://ecco.selfip.net/gargoyle-pl/atti … /packages/
Proszę usunąć ten wpis, bo jak skrypt zobaczy to mam ...
A teraz to co? Uwaliłem go na amen? 30 - 30 - 30, czy da radę jakoś się z routerem dogadać?
To jest ta sztuka z 1.5.9.7.
Czyli zainstalowałeś aktualny moduł na prehistorycznej wersji. Teraz tak: wracasz do domu, robisz failsafe (opisany na eko.one.pl), wpisujesz firstboot i restartujesz router. Otwierasz piwo, pijesz za moje zdrowie. Otwierasz drugie i bierzesz się za ustawienie tego routera od początku...
Super, szkoda tylko, że nie zapisałem sobie tylko authorised_keys, bo jak widzę muszę konfigurować tunel od nowa.
Dziękuję za wsparcie i proszę trzymać kciuki, żeby mnie skrypt nie udusił.
Jak zrobisz failsafe to zrób mount_root i będziesz miał system plików dostępny. authorised_keys możesz sobie skopiować na bok.
Dobry wieczór, to znowu ja w jednym z dwu moich ulubionych tematów.
Tytułem przypomnienia R1 to mój serwer, a R2 to mój klient do którego chcę się dostać odwróconym tunelem, a teraz pora na problem.
Na R2 jest skrypt sprawdzający dwa warunki - po pierwsze czy tunel jest jednym z aktywnych procesów R2, a po drugie R2 poprzez tunel ma na R1 sprawdzić czy na porcie 443 prowadzony jest przez "cokolwiek" (np. usługę) nasłuch. Jeśli oba warunki są spełnione ma nie robić nic, bo tunel działa.
Skrypcik jest wrzucony do crontaba i uruchamia się co 5 minut. Problem jest taki, że skrypt uruchomiony z ręki działa prawidłowo, tzn. w związku z tym, że oba warunki są spełnione nie robi nic. Gdy minie 5 minut i uruchamia się z crona, to warunek pierwszy jest spełniony (co jest prawdą), a drugi nie (co nie jest prawdą) i w efekcie rozłącza tunel i składa go na nowo.
Pytanie - czy cron ma jakieś ograniczone uprawnienia względem roota i nie może wykonać prawidłowo tego skryptu?
Nie, ale zwykle nie ma np. ustawionych ścieżek (PATH) i zmiennej HOME - co sprawia problemy niektórym skryptom. Ponad to nie ma dostępu do ekranu (terminala) co też może przeszkadzać niektórym procesom.
W jakim sposób sprawdzasz czy na 443 coś jest?
Dziękuję za odpowiedź.
Mając zestawiony tunel z R2 do R1 wykonuję w skrypcie polecenie, które ma się zapisać w zmiennej B:
B=`ssh -p 1313 lamer@13.131.313.13 -i /root/rsa_secret.txt netstat -an | egrep "tcp.*:443.*LISTEN" | wc -l`
Od razu nadmieniam, że próbowałem już zmiennych SHELL i PATH w skrypcie, a mianowicie:
SHELL=/bin/sh
PATH=/bin:/usr/bin:/usr/sbin
. /etc/profile
... reszta skryptu ....
ale dalej to nic nie daje
Najważniejsza zmienna w skrypcie to:
B=`....`
a dalej
if [ $B -eq 0 ]; then
killall -9 ssh
$TUNEL
fi
i o ile "z ręki" działa prawidłowo, tak uruchamiane z crona nie działa.
Uruchom z crona, ale zapisz sobie do pliku co samo
ssh -p 1313 lamer@13.131.313.13 -i /root/rsa_secret.txt netstat -an
zwraca.
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:1313 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 192.168.167.8:22 31.0.230.16:4732 ESTABLISHED
tcp 0 0 192.168.167.8:22 31.0.102.214:48802 ESTABLISHED
tcp 0 0 192.168.167.8:22 31.0.102.214:48806 ESTABLISHED
tcp 0 0 :::139 :::* LISTEN
tcp 0 0 ::1:1313 :::* LISTEN
tcp 0 0 :::53 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::443 :::* LISTEN
tcp 0 0 :::445 :::* LISTEN
udp 0 0 0.0.0.0:53 0.0.0.0:*
udp 0 0 0.0.0.0:67 0.0.0.0:*
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp 0 0 192.168.0.255:137 0.0.0.0:*
udp 0 0 192.168.0.1:137 0.0.0.0:*
udp 0 0 0.0.0.0:137 0.0.0.0:*
udp 0 0 192.168.0.255:138 0.0.0.0:*
udp 0 0 192.168.0.1:138 0.0.0.0:*
udp 0 0 0.0.0.0:138 0.0.0.0:*
udp 0 0 :::53 :::*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 8 [ ] DGRAM 1037 /dev/log
unix 2 [ ACC ] STREAM LISTENING 2930 /var/nmbd/unexpected
unix 2 [ ACC ] STREAM LISTENING 1255 /var/run/ubus.sock
unix 2 [ ] DGRAM 2036 /var/run/hostapd-phy0/wlan0
unix 2 [ ] DGRAM 2731
unix 2 [ ] DGRAM 2305
unix 2 [ ] DGRAM 2270
unix 2 [ ] DGRAM 1578
unix 2 [ ] DGRAM 1561
unix 3 [ ] STREAM CONNECTED 1559 /var/run/ubus.sock
unix 3 [ ] STREAM CONNECTED 1558
unix 2 [ ] DGRAM 1501
unix 2 [ ] DGRAM 1200
Strony Poprzednia 1 … 4 5 6 7 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → Gargoyle by obsy, WRT160NL i SSH Reverse tunnel
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc