Webinterface für fritzbox und freetz ein-ausschalten

babylon05

Mitglied
Mitglied seit
2 Mrz 2006
Beiträge
203
Punkte für Reaktionen
0
Punkte
16
Moinsen

gibt es was für Putty (SSH) womit ich das Webinterface für avm weboberfläche und freetzoberfläche ein und ausschalten kann?

so das keiner mehr auf 80 und 81 mehr was sieht?
 
Wenn du mit Putty per ssh auf der Box bist, kannst du natürlich den Webserver von AVM und den httpd für freetz stoppen, dann gehen die Zugriffe nicht, und man kommt nur per ssh (und evtl Telnet) auf die Box.
Nach dem erneuten Starten der Dienste geht es wieder. Alternativ kannst du vermutlich auch die Ports 80 und 81 in der FW sperren und dann wieder freigeben.

Nur in den ganz neuen Firmwares geht es nicht mehr so einfach, da es keinen websrv mehr gibt, sondern der Webserver mit in den ctlmgr gewandert ist.


Jörg
 
gibts in der neuen Firmware dennoch was wie man das in der ctlmgr per SSH (Putty)
die oberfläche abschalten kann und bei gelegenheit wieder anschalten?
 
Naja, es ginge, wie mir gerade einfällt,ziemlich "einfach und brutal" ;-), indem du der Box die Web-Seiten "wegnimmst". Die Seiten liegen als Link unter /var/html. Wenn du den umbiegst, ist zumindest das AVM-Webif schonmal "weg". Bei mir geht z.B.:
Code:
# [I]speichern, wo die Seiten eigentlich liegen[/I]
export HTMLZIEL=`ls -l /var/html | sed  "s/^.*> //"`
#  [I]Seiten "löschen"[/I]
rm /var/html 
# jetzt was auch immer tun, am Ende:
ln -s $HTMLZIEL /var/html


Jörg
 
das klingt ja gut, aber bevor ich es jetzt teste, wollte ich noch mal fragen,
wohin biege ich die um, weil möchte die ja wieder irgendwann mal wieder haben,
 
ne Jörg meinte das anders.
Ich mach es mal ausfühlich:
zum dektivieren der Webseiten löscht du den /var/html, welches ein Link auf die Wirklichen webseiten ist (z.b. /usr/www/1und1), also zum deaktiviern
Code:
# speichern, wo die Seiten eigentlich liegen
export HTMLZIEL=`ls -l /var/html | sed  "s/^.*> //"`
#  Seiten "löschen"
rm /var/html
jetzt zeigt der Webserver ein FileNotFound an. -> kein Webinterface
um das ganz wieder zu restoren erstellt du den link wieder:
also:
Code:
# wiederherstellen
ln -s $HTMLZIEL /var/html
denn unter $HTMLZIEL ist dein ursprüngliches ziel gespeichert.
fertig.

mach doch mal ein
Code:
ls -l /var/html
dann siehst du, dass es ein symlink ist und warauf er zeigt.
dieser hängt nämlich vom branding ab, bei mir 1und1.




edit:
das ganze geht durch das export leider nur in der gleichen shell, du dürftest also deine session nicht schließen. Du müssest es also offen halten oder über screen offen lassen.
Du kannst auch dieses script benutzten(es ist mit absicht sehr einfach gehalten):
Code:
#!/bin/sh

start () {
	#  Seiten "löschen"
	rm /var/html
}

stop () {
	# wiederherstellen
	ln -s /usr/www/1und1 /var/html
}
	
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	*)
		echo $"Usage: $prog {start|stop}"
		exit 1
esac

musst allerdings /usr/www/1und1 durch die ausgabe von ls -l /var/html | sed "s/^.*> //" erstetzten.
Speicher es auf nem stick oder auch unter /var/tmp/flash/ mit modsave flash.
mit /pfad_zum_script/stopavmweb.sh start stoppst du die AVM-Webinterface und mit /pfad_zum_script/stopavmweb.sh stop kannst du das Webinterface wiederherstellen.


edit2:
Da es noch keiner geschrieben hatte.
mit
Code:
/etc/init.d/rc.webcfg start
startet man das Freetz-Web-Interface und mit
Code:
/etc/init.d/rc.webcfg stop
kann man es stoppen.
 
Zuletzt bearbeitet:
/var/tmp/flash # ./stopavmweb.sh start
./stopavmweb.sh: line 1: cannot open !DOCTYPE: no such file
./stopavmweb.sh: line 1: html: not found
./stopavmweb.sh: line 2: cannot open html: no such file
./stopavmweb.sh: line 3: cannot open head: no such file
./stopavmweb.sh: line 4: cannot open title: no such file
./stopavmweb.sh: line 4: -: not found
./stopavmweb.sh: line 5: cannot open meta: no such file
./stopavmweb.sh: line 5: http-equiv=Content-Type: not found
./stopavmweb.sh: line 6: cannot open meta: no such file
./stopavmweb.sh: line 6: http-equiv=pragma: not found
./stopavmweb.sh: line 7: cannot open meta: no such file
./stopavmweb.sh: line 8: cannot open meta: no such file
./stopavmweb.sh: line 9: cannot open meta: no such file
./stopavmweb.sh: line 10: cannot open meta: no such file
: not foundb.sh: line 11:
./stopavmweb.sh: line 12: cannot open style: no such file
: not foundb.sh: line 13:
./stopavmweb.sh: line 14: td: not found
./stopavmweb.sh: line 14: }body: not found
./stopavmweb.sh: line 15: syntax error: "(" unexpected
/var/tmp/flash #


das kommt bei mir wenn ich deine zeile durch ls -l /var/html | sed "s/^.*> //"
ersetzen tue
 
Ich schätze mal, dass du das irgendwo "extern erstellt hast"? Da scheinen irgendwelche Steuersignale drin zu sein.

Versuche doch mal
Code:
cat > /var/tmp/stopavmweb.sh << 'EOF'
#!/bin/sh

start () {
	# Sicherheitsabfrage: Ist das ein Link
	if [ `find /var -type l | grep /var/html` ]; then
		# Html-Pfad wegsichern
		ls -l /var/html | sed  "s/^.*> //" > /var/tmp/.stopavmweb.out
		#  Seiten "löschen"
		rm /var/html
	else
		echo "Hmm, /var/html ist kein Link? Gebe auf"
		exit
	fi
}

stop () {
	# Sicherheitsabfrage
	if [ -r  /var/tmp/.stopavmweb.out ]; then
		# wiederherstellen
		ln -s  `cat /var/tmp/.stopavmweb.out` /var/html
		# Pfad-Datei loeschen
		rm /var/tmp/.stopavmweb.out
	else
		echo "Datei mit HTML-Pfad nicht gefunden! Gebe auf"
		exit
	fi

}
	
case "$1" in
	start)
		start
		;;
	stop)
		stop
		;;
	*)
		echo $"Usage: $prog {start|stop}"
		exit 1
esac

EOF

chmod +x /var/tmp/stopavmweb.sh

Jörg
 
Hi Jörg

ja hatte es mit Notepad++ gemacht und als .sh abgespeichert.
Jetzt habe ich über putty selbst eine Datei erstellt und alles noch mal reingeschrieben, wie vorher. jetzt funzt es :p
 
Ich möchte die in der FritzBox (7362SL) einen lighttp Webserver unter Port 80 und 443 erreichen.
Leider läuft da das AVM Interface welches sich auch immer wieder nach kurzer Zeit aktiviert wenn es durch
"kill ctlmgr" oder "/etc/init.d/rc.webcfg stop" entfernt wurde.

Gibt es mittlerweile eine Möglichkeit die Dienste auf den Ports 80 und 443 dauerhaft zu deaktivieren oder
auf andere Ports zu legen?
 
Einen denkbaren Weg ist man bei Freetz schon vor Jahren gegangen ... wenn auch für den multid und nicht für den ctlmgr. Dabei wird über ein DSO (eine Library) per "Pre-loading" der entsprechende Socket-Call (üblicherweise ein bind() - https://man7.org/linux/man-pages/man2/bind.2.html - wobei man das noch einmal prüfen sollte, denn der ctlmgr ist eben "closed-source") abgefangen (wenn bereits eine Library geladen ist, die eine (vermeintlich) passende Funktion enthält, wird deren Adresse beim dynamischen Laden verwendet) und die Portnummer geändert. Wie das aussehen könnte, kann man sich bei Freetz in der libmultid ansehen: https://github.com/Freetz/freetz/tree/master/make/libs/libmultid

EDIT: Wobei es auch - je nach FRITZ!OS-Version und ich habe keinen Schimmer, wo AVM die 7362SL abgehangen hat von der Entwicklung - reichen kann, in der ar7.cfg die entsprechenden Einstellungen zu ändern - ob die berücksichtigt werden, kriegt man ja nun ganz schnell raus. Nur beim Editieren muß man dann eben die richtigen/notwendigen Vorkehrungen treffen (hier im Board auch zig-mal beschrieben), damit man auch wirklich die Einstellungen testet und nicht irgendeinen anderen Mist.
 
Bezüglich Port 80 habe ich da noch eine andere Idee: Der Port 80 für das AVM-Webinterface ist in der Datei /var/flash/ar7.cfg festgelegt. Ein Umbiegen, z.B. auf Port 82, müsste so funktionieren:
Rich (BBCode):
ctlmgr -s                                                                            # Dienst stoppen
cat /var/flash/ar7.cfg | sed 's/port = "80";/port = "82";/' > /var/tmp/ar7.cfg.82    # ar7.cfg "editieren"
cat /var/tmp/ar7.cfg.82 /var/flash/ar7.cfg && rm /var/tmp/ar7.cfg.82                 # ar7.cfg zurückschreiben
cat /var/tmp/ar7.cfg.82 > /var/flash/ar7.cfg && rm /var/tmp/ar7.cfg.82               # ar7.cfg zurückschreiben
ctlmgr                                                                               # Dienst starten
Bezüglich Port 443 habe ich nur einen Lese-Tipp parat.

EDIT : Zeile 3 enthält einen Fehler, der in Zeile 4 korrigiert wurde.
 
Zuletzt bearbeitet:
Die dritte Zeile ist wirkungslos, so wie sie oben steht:
Code:
cat /var/tmp/ar7.cfg.82 /var/flash/ar7.cfg && rm /var/tmp/ar7.cfg.82
Außer zwei Kopien der ar7.cfg mit minimalen Unterschieden, die in der Console angezeigt werden, bewirkt das gar nichts - nein, stimmt nicht ... die Kopie mit dem geänderten Port wird tatsächlich auch gelöscht, weil das cat ohne Fehler durchläuft.
 
Danke für den Hinweis: Da fehlt ein ">". Ich ändere das mal lieber in Post #12.

Fortsetzung:
Bezüglich Port 443 habe ich nur einen Lese-Tipp parat.
Ich habe mal die Ausführungen meines Lese-Tipps (bei einer 7590 FW 7.27 mit Freetz-NG) aus Interesse mal nachvollzogen, also:
Rich (BBCode):
ctlmgr -s                     # Dienst stoppen
nvi /var/flash/ar7.cfg        # Einfügen von "tcp 0.0.0.0:443 0.0.0.0:943" unter voip_forwardrules
...
ctlmgr                        # Dienst starten 
(Die Einstellungen der Port-Umleitung blieben auch "reboot-sicher" in der /var/flash/ar7.cfg erhalten.)
Jedoch konnte ich vom ctlmgr ein "Freimachen" des Ports nicht feststellen.
Rich (BBCode):
#  netstat -tulpn | grep 443
tcp        0      0 :::49443                :::*                    LISTEN      2275/upnpd
tcp        0      0 :::443                  :::*                    LISTEN      5608/ctlmgr
:rolleyes:

@ baerenbisch
Mich würden deine Fortschritte beim Verfolgen deiner Ziele interessieren, also halte uns (mich) mal auf dem Laufenden.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.