gelöst: all-inkl.com SSL-proxy und phpbb3

phpBB 3.0 hat sein "End of Life" erreicht. Eine Neu-Installation wird nicht mehr unterstützt.
Gesperrt
hbarck
Mitglied
Beiträge: 3
Registriert: 09.02.2009 09:00

gelöst: all-inkl.com SSL-proxy und phpbb3

Beitrag von hbarck »

Hallo zusammen,

seit einiger Zeit versuche ich, phpbb3 unter dem all-inkl ssl-proxy zum Laufen zu bringen. Ich habe dazu folgenden Beitrag gefunden:

http://www.bantu-phpbb.de/viewtopic.php?f=21&t=30

Allerdings haben die Einstellungen nicht das gewünschte Ergebnis gebracht. Nach wie vor erscheint, wenn man sich als Administrator angemeldet hat und in den Adminstrationsbereich wechseln will, die gefürchtete Meldung, dass man nicht als Administrator angemeldet sei. Außerdem muss man nach jedem erfolglosen Versuch phpbb3 neu installieren, da man auch unverschlüsselt nicht mehr in das Administrator-Panel kommt, wenn man den Domain-Namen geändert hat. (habe das über Direktzugriff auf die Datenbank zu umgehen versucht, aber irgendwie spielt mir der Cache hier einen Streich)

Obiger Beitrag ist von vor einem Jahr, ich nehme an, inzwischen hat sich etwas in der Anmeldeprozedur geändert... Leider hat die weitere Suche in diesem Forum unter den Begriffen ssl und ssl-proxy nichts zu Tage gefördert. Ich habe die angegebene Methode mit phpbb2 ausprobiert, da funktioniert sie; allerdings möchte ich lieber phpbb3 verwenden, da ja der Support für phpbb2 eingestellt ist.

Zuletzt habe ich das ganze mit ausgeschalteten Cookies versucht. Damit konnte ich das Administrator-Panel öffnen und Daten lesen, aber nichts ändern.

Da die Aufgabenstellung und die relevanten Einstellungen im oben verlinkten Artikel gut beschrieben sind, spare ich mir hier weitere Einzelheiten. Mich würde folgendes interessieren:

1. Hat jemand aktuell ein Forum in der beschriebenen Konfiguration laufen?
2. Weiß jemand, ob sich bei der Anmeldung etwas verändert hat, was für dieses Problem verantwortlich sein könnte, und wo diese Änderung zu suchen ist?
3. Wie kann ich die relevanten Einstellungen (Server und Cookie) über die Datenbank zurücksetzen, bzw. danach aus dem Cache löschen? Reicht es dazu, die Dateien aus dem Cache-Verzeichnis zu löschen?

Vielen Dank und Alles Gute...
Zuletzt geändert von hbarck am 13.02.2009 23:03, insgesamt 1-mal geändert.
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Re: all-inkl.com SSL-proxy und phpbb3

Beitrag von bantu »

Siehe auch: http://www.phpbb.de/community/viewtopic ... 4&t=179674 und http://www.phpbb.de/community/viewtopic ... 290#954290

Es sieht so aus, als wäre das Verfahren ab 3.0.2 so nicht mehr machbar, da einige weitere Sicherheitsfeatures eingebaut wurden. Ich kann das mangels all-inkl-SSL-Account leider nicht mehr testen.
Powered by Coffee
hbarck
Mitglied
Beiträge: 3
Registriert: 09.02.2009 09:00

Re: all-inkl.com SSL-proxy und phpbb3

Beitrag von hbarck »

Hi,

herzlichen Dank, dann muss ich wohl weiterforschen... melde mich, wenn ich etwas herauskriege. Kannst Du mir einen Tip geben, wo ich nach diesen Sicherheitsfeatures suchen muss? Ich habe den Verdacht, dass es damit zusammenhängt, dass der Webserver in diesem Fall nichts davon weiß, dass noch ein Proxy davor sitzt. Wenn der Code irgendwo den Server nach seinem Namen fragt (statt in der Datenbank nachzusehen) und dabei feststellt, dass die Domains nicht übereinstimmen, könnte das für dieses Verhalten verantwortlich sein.

Alles Gute...
hbarck
Mitglied
Beiträge: 3
Registriert: 09.02.2009 09:00

gelöst: all-inkl.com SSL-proxy und phpbb3

Beitrag von hbarck »

Hi,

habe herausgefunden, was los war. Wie vermutet, haben die referer-checks, die in Version 3.0.2 eingebaut worden sind, dafür gesorgt dass die Sitzung beendet wird, wenn man über den SSL-proxy arbeitet...

Ich habe den Code an zwei Stellen geändert: includes/session.php: function validate_referer

Code: Alles auswählen

	/**
	* Check if the request originated from the same page.
	* @param bool $check_script_path If true, the path will be checked as well
	*/
	function validate_referer($check_script_path = false)
	{
		global $config;
		
		// no referer - nothing to validate, user's fault for turning it off (we only check on POST; so meta can't be the reason)
		if (empty($this->referer) || empty($this->host))
		{
			return true;
		}

		$host = htmlspecialchars($this->host);
		$path = rtrim($this->page['root_script_path'], '/');
		
		// if set in the configuration, might be different...
		if($config['force_server_vars'])
		{
			$host=htmlspecialchars($config['server_name']);
			$path=$config['script_path'];
		}
		$ref = substr($this->referer, strpos($this->referer, '://') + 3);
		if (!(stripos($ref, $host) === 0))
		{

			return false;
		}
		else if ($check_script_path && $path !== '')
		{
			$ref = substr($ref, strlen($host));
			$server_port = (!empty($_SERVER['SERVER_PORT'])) ? (int) $_SERVER['SERVER_PORT'] : (int) getenv('SERVER_PORT');

			if ($server_port !== 80 && $server_port !== 443 && stripos($ref, ":$server_port") === 0)
			{
				$ref = substr($ref, strlen(":$server_port"));
			}

			if (!(stripos(rtrim($ref, '/'), $path) === 0))
			{
				return false;
			}
		}

		return true;
	}

und in includes/functions.php, function redirect:

Code: Alles auswählen

function redirect($url, $return = false, $disable_cd_check = false)
{
	global $db, $cache, $config, $user, $phpbb_root_path;

	if (empty($user->lang))
	{
		$user->add_lang('common');
	}

	if (!$return)
	{
		garbage_collection();
	}

	// Make sure no &'s are in, this will break the redirect
	$url = str_replace('&', '&', $url);

	// Determine which type of redirect we need to handle...
	$url_parts = parse_url($url);

	if ($url_parts === false)
	{
		// Malformed url, redirect to current page...
		$url = generate_board_url() . '/' . $user->page['page'];
	}
	else if (!empty($url_parts['scheme']) && !empty($url_parts['host']))
	{
		// Attention: only able to redirect within the same domain if $disable_cd_check is false (yourdomain.com -> www.yourdomain.com will not work)
		//Fix: user->host might be different from generate_board_url() if force_server_vars is set
		$host=parse_url(generate_board_url(),PHP_URL_HOST);
		if (!$disable_cd_check && $url_parts['host'] !== $host)
		{
			$url = generate_board_url();
		}
	}
// ... danach alles wie vorher...
Die nötigen Einstellungen sind dann:
Server-Name: ssl-account.com
Script-Pfad: /deinedomain.tld/forumspfad
Server-Protokoll: https://
Server-Port: 443
Server-Variablen verwenden: Ja

Cookies habe ich ausgeschaltet, aber wenn man sie benutzen will kann man folgende Einstellungen verwenden:
Cookie-Domain: leer
Cookie-Pfad: /deinedomain.tld/forumspfad/
Sichere Cookies: Ja

Außerdem habe ich unter Sicherheit bei der Referer-Validierung angegeben, dass der Pfad auch überprüft werden soll.

Wenn man dazu noch die .htaccess Datei aus oben verlinktem Artikel benutzt, hat man, was man will...
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

Re: gelöst: all-inkl.com SSL-proxy und phpbb3

Beitrag von Kampf Katze »

Vielen Dank für die Tipps hier. Damit habe ich das Forum schon einmal via SSL unter all-inkl zum laufen gebracht.

Leider funktioniert es nun nicht mehr, irgendwelche Änderungen zu vollziehen. Ich kann nicht mal das Board offline schalten und eine Nachricht hinterlegen, ohne das ich sofort rausgeworfen werde und mich neu verifzieren muss.

Etwas merkwürdig finde ich auch, dass meine Änderungen an der Datenbank scheinbar wirkungslos sind. Wenn ich dort einen Wert verändere bzw. eine Beschreibung, so taucht diese nicht im ACP auf. An der richtigen Datenbank arbeite ich aber, das habe ich extra noch mal überprüft ;-)

Als Wert meine ich z.B. das ändern der Pfadangabe oder des Serverports von 80 auf testweise 443.

Das ändern der besagten Dateien hinsichtlich der Session habe ich auch ausprobiert, leider ohne Erfolg unter phpBB 3.0.5

Meine Einstellungen die das Forum von sich gibt im ACP:

Cookies:
Cookie Domain: ssl-account.com
Cookie Name: phpBB3_XXXXX
Cookie Pfad: /subdomain.domain.de/

Server URL Einstellungen:
Erzwinge Server URL Einstellungen: Nein
Server Protokoll: https://
Domainname: ssl-account.com
Port: 80
Scriptpfad: /subdomain.domain.de/phpBB

In der .htacess habe ich folgende Info hinterlegt:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} !^85\.13\.128\.137$
RewriteRule ^(.*)$ https://ssl-account.com/subdomain.domain.de/phpBB/$1 [R=301,L]

Ändere ich das ab wie in einem der verlinkten Beiträge erwähnt gegen:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/adm/
RewriteCond %{REMOTE_ADDR} !^85\.13\.128\.137$
RewriteRule ^(.*)$ https://ssl-account.com/subdomain.domain.de/phpBB/$1 [R=301,L]

Komme ich in den Adminbereich nicht mehr rein. Aber ehrlich gesagt, da fehlt mir auch das Knowhow um zu verstehen was da nun so alles gemacht werden soll :-)

Tja, habe ich da nun irgendwas total falsch konfiguriert? Was kann ich probieren?
Gesperrt

Zurück zu „[3.0.x] Installation, Update und Konvertierung“