Remote reverse ssh shell på OpenWRT og lignende Lars Sommer, [email protected] 2007-07-12, v.1.0, beerware Disclaimer: Alt i denne artikel er dit eget ansvar. Alt hvad du bruger denne viden til, er dit eget ansvar. Indholdet af denne artikel kan misbruges til ulovlig overvågning af andres privatliv, samt misbrug af deres internetforbindelser. Sker dette, er det udelukkende dit eget ansvar. Artiklen her er ikke færdig. Dette er en tidlig version, der kun bringer det eneste nødvendige for at komme igang. Efterhånden som jeg kommer videre med det, udbygges den sikkert. Hvis DU finder glæde i den, og bygger mere på, må du meget gerne sende feedback, foreslag, kritik og andet til mig. Abstract: Artiklen beskriver hvorledes der kan oprettes fjernadgang til små routere med OpenWRT og lignende, via internettet. Disse forbindelser gøres reversed, således NAT, firewalls og andet også omgåes. Der gives herefter bud og ideer på viderudvikling og sikring af sådanne opsætninger. Formål: Formålet med denne artikel er at opsætte shelladgang via SSH, på trådløse routere der kører OpenWRT eller lignende. Dette er anvendeligt, hvis man opsætter routere eller trådløst net for andre, og ønsker at beholde en shell-adgang ind til dem. Denne adgang kan f.eks. være for at kunne yde dem support, men kan naturligvis udnyttes til alverdens formål, som den enkelte selv må vurdere etikken i. Hvis routeren sættes direkte på en internetforbindelse med statisk offentlig IP, er det nemmest bare at forbinde direkte ind, men så snart IP'en er dynamisk, eller routeren sidder bag NAT, firewalls eller lignende, begynder problemerne med at kunne forbinde. Derfor er det smart at lade shell-adgangen være reversed , således det er routeren der forbinder ud til ens remote kontrolmaskine. Minimalkonfiguration: I det følgende antages at der allerede eksisterer en router med OpenWRT eller tilsvarende. Der er mange gode vejledninger i installation og opsætning af OpenWRT på deres egen hjemmeside, så dette beskrives ikke her. I OpenWRT følger Dropbear med til SSH. Denne er en lille simpel SSH-implementation, der ikke har alle features, bl.a. muligheden for reverse connections. Derfor installeres den rigtige OpenSSH klient med: ipkg install openssh-client -force-overwrite En nøgle skal genereres, så der kan forbindes uden indtastning af kode. Da der ikke er en ssh-keygen på OpenWRT, sker dette på en PC: ssh-keygen, efterfulgt af et par tast på enter. Husk IKKE at angive en passphrase. Filerne id_rsa og id_rsa.pub kopieres over på OpenWRT i ~/.ssh, og filen id_rsa.pub kopieres til ~/.ssh/authorized_keys på den maskine OpenWRT skal forbinde op mod. Filen known_hosts eksisterer ikke i starten. Så den skal enten laves automatisk ved der manuelt tastes "yes" ved første connection, eller skrives manuelt. Herefter kan forbindelsen initieres fra OpenWRT med kommandoen: ssh -NR <portnummer>:localhost:22 <remote username>@<remote addr> -i .ssh/id_rsa Eksempelvis: ssh -NR 1337:localhost:42 [email protected] -i .ssh/id_rsa Og fra kontrol-PC'en kan forbindelsen tilgåes med: ssh root@localhost -p 1337 SSH-forbindelsen forbliver aktiv, selv når kontrol-PC'en afbryder ovenstående kommando. Kommandoen på OpenWRT'en kan f.eks. scriptes til at starte automatisk efter boot. Kontrol-PC'en kan sagtens modtage forbindelser fra flere OpenWRT'er, bare med hvert sit portnummer. AutoSSH: Programpakken "autossh" til OpenWRT overvåger aktive SSH-forbindelser, og genopretter dem, hvis de dør. Denne er oplagt til at overvåge forbindelserne. Programmet installeres med: ipkg install autossh Og bruges herefter ved at sætte "autossh" ind foran ssh-kommandoen på OpenWRT'en Flere kontrol-PC'er: Det vil være attraktivt at have flere kontrol-PC'er, på forskellige adresser, hvis nogle en dag går tabt. Det kan enten blot være flere ssh-forbindelser fra OpenWRT'en, eller en liste over forskellige adresser, der prøves igennem, hvis nogle ikke svarer. Remote konfiguration: Hvis noget går galt, og forbindelsen til en remote shell mistes, vil det være smart hvis OpenWRT'en selv går ind og tjekker efter en konfiguration via http eller lignende, engang i mellem. Dette bør indeholde en form for login eller anden auth, således fremmede ikke kan aflæse eller påvirke konfigurationen. Andet til egen sikkerhed: Det kan være relevant at skjule sine remote shell scripts og PID's, ved at ændre på kommandoer som ls, ps, netstat og lignende på OpenWRT'en. Ligeledes kan det være relevant at have et selvdestruktionsscript, der enten fjerner alle spor af ens remote shell, eller blot bricker hele routeren, hvis nødvendigt. - - - - - - = = = = = = - - - - - -
-
Kategorier:
-
Emneordsky:
Anmeldelse Apple Armbåndsure BoltAction Cisco Computer Familie Fantasy Fashion Forbrug FreeBSD Fritid HeroQuest Humor iPhone IT-Sikkerhed Linux Mac Mad&Drikke Mobil OpenBSD Opskrifter Programmering Rollespil Slægtsforskning Solaris Spil Stamtræ Sustainability Tabletopgaming Telt Udendørsliv Unix Warhammer Warhammer40k WarlordsOfErehwon Webudvikling Windows
-
Seneste indlæg:
-
Øvrige dele af hjemmesiden:
- Apple
- Blandet
- Cisco ASA
- Computer, blandet
- APG bødekalkulator
- AWK intro
- Diverse snak via Telnet
- Fra Windows til Linux, stille og roligt
- IPv6 noter fra hlk
- Mailservere og deres skalerbarhed
- Maple 9 i linux
- Nemme IT-sikkerhedsværktøjer til egen test
- OpenMP og parallel computing
- Oplevelser med Asus eee pc
- Programming tools for C and Perl
- Remote reverse ssh shell på OpenWRT og lignende
- Sed stream editor, introduktion
- Solaris 10 x86 review til workstation
- Tips til vim editoren
- Wireless network (sikkerhed) for begyndere
- Figurkrigsspil
- Fløng Skole, lidt om skolens historie
- FreeBSD
- ACL filtering for Squid webproxy on FreeBSD 8.x
- Amavisd-new, spamassassin and clamav On FreeBSD 7.2 (and probably 8.0)
- Apache mod proxy on FreeBSD
- Apache, PHP and MySQL on FreeBSD
- APC UPS power failure handling agent
- APC UPS power failure handling agent on FreeBSD
- Apple file share server on FreeBSD 8.1
- Apple TimeMachine backup server on FreeBSD 8.1
- Bitlbee on FreeBSD 7.0
- BSD-sikkerhedsnoter v.0.1
- Cacti Monitoring system on FreeBSD 6.2
- CD Recording in FreeBSD
- Denyhosts on FreeBSD 8
- Denyhosts to protect SSH service from bruteforce attacks in FreeBSD
- Festival text to speech system in FreeBSD 6.2
- File backed encrypted file system on FreeBSD 6.2
- File backed encrypted file system on FreeBSD 6.2
- FreeBSD 6.2 release digt
- FreeBSD gmirror raid 1 setup
- FreeBSD jails note
- GELI encryption of full drive in FreeBSD
- Gnokii SMS support in FreeBSD 8.2
- Host Intrusion Detection System in FreeBSD
- Installing Mailman mailing list software on FreeBSD 7.1
- Intrusion Detection, noter i FreeBSD og OpenBSD
- IPv6, DHCPd, OpenLDAP on FreeBSD
- iTunes server on FreeBSD 8.1
- Munin monitoring system on FreeBSD 6.2 (and 7.2, and 8.0)
- Noter til bogen Mastering FreeBSD and OpenBSD Security del 2
- NTPd on FreeBSD 8.0
- Opdatering af FreeBSD
- OpenVPN on FreeBSD 8.2
- Postfix + Dovecot + MySQL in FreeBSD
- Postfix smarthost i FreeBSD
- Postfixadmin on FreeBSD 6.2 (and probably 7.2 and 8.0)
- Pure-FTPd in FreeBSD 6.2 (and 7.2, and probably 8.0)
- Rootkit-detection in FreeBSD
- Secure erase data on hard drives in FreeBSD
- Setting up PostgreSQL 8.x and phpPgAdmin on FreeBSD 7.1
- Squid webproxy and Junkbuster on FreeBSD 8.x
- Squirrelmail Webmail on FreeBSD 6.2
- Tor relay on FreeBSD 7.2 and 8.0
- TV-kort i FreeBSD
- Unreal IRCd on FreeBSD 7.0
- Update FreeBSD base system and ports
- Webserver, noter i FreeBSD og OpenBSD
- Internet Startside
- Kontakt
- OpenBSD
- Privacy Policy
- Rollespil
- Velkommen til min hjemmeside
- Windows
-
Links til andre sider:
-
Min forrige hjemmeside, nu hosted hos GitHub, stadig i anvendelse i ny og næ