zensbert
Goto Top

Intranet - Anhand Quell-IP Passwort oder nicht (extern oder intern)

Hallo,
Ich habe ein Intranet in der Firma erstellt, würde nun gerne die Seite extern erreichbar machen..
habs derzeit nur über VPN, aber das missfällt den kritischen stimmen..
Gibt es ein PHP-Skript was erkennt ob es eine andere IP-Range als 192.168.1.XXX ist, die auf das Intranet zugreift und wenn ja User und Passwort abfragt?

Gruß Thomas

Content-ID: 98932

Url: https://administrator.de/contentid/98932

Ausgedruckt am: 14.11.2024 um 09:11 Uhr

manuel-r
manuel-r 10.10.2008 um 08:03:16 Uhr
Goto Top
$_SERVER['REMOTE_ADDR']  
Ist die Variable, die du suchst.

Manuel
zensbert
zensbert 10.10.2008 um 11:01:20 Uhr
Goto Top
OK, habe vergessen zu schreiben dass ich mit PHP nicht viel am Hut habe. Auch wenns nervt wär ich um eine ausführlichere Anleitung dankbar.. Gibts da was vorgefertigtes?^^ Mir würd es auch reichen einen User+Passwort zu setzen.. brauche da keine unterschiedlichen PWs und User.
Gruß
Spackenbremse
Spackenbremse 12.10.2008 um 11:41:13 Uhr
Goto Top
Hallo!

Du meinst mit 192.168.XXX.XXX deine lokale Adresse?
Diese kannst du nicht mit $_SERVER['REMOTE_ADDR'] abrufen, da die Variable nur die öffentliche IP enthält.

Dennoch, falls diese IP fix ist wäre soetwas möglich
<?
if($_SERVER['REMOTE_ADDR']=="--DIE IP--")  
{
// gib Zugriffsrechte bze Passwortabfrage
}
else
{
// Zugriff verweigern
die;
}
?>

Ganz andere Idee: MySQL Datenbank zum abfragen der Benutzerdaten + Passwörter?
mfg
zensbert
zensbert 12.10.2008 um 13:54:42 Uhr
Goto Top
die externen adressen variieren natürlich, aber die interne range ja nicht, vll. habe ich mich unklar ausgedrückt, 1 webserver mit lan-internen zugriff in range 192.168.1.XXX ohne Passwort-Zugriff, gleicher Webserver von aussen erreichbar mit externen adressen (also nicht 192.168.1.XXX dann PW-Skript...
Ist Xampp mit MySQL falls du das wissen musst, ist aber wie gesagt nur 1 benutzer und pw notwendig..
Spackenbremse
Spackenbremse 13.10.2008 um 14:26:55 Uhr
Goto Top
okay, dann gehts trotzdem ca mit dem Prinzip(ist jetzt villt bisschen kompliziert):

index.php
<?
list($T1,$T2,$T3,$T4) = split(".",$_SERVER['REMOTE_ADDR']);  
if($T1 == "192" AND $T2 == "168" AND $T3 == "1")  
{
  // lokaler Zugriff -> Ohne Passwortabfrage!
}
else
{
  // externer Zugriff -> Mit Passwortabfrage 
  include 'passwortanfrage.php";  
}

passwortabfrage.php:
<form action="passwortabfrage.php" Method=POST>  
<input type="text" name="Benutzername"><br>  
<input type="password" name="Passwort"><br>  
<inpt type="submit" value="Einlggen">  
</form>
<?
if($_POST['Benutzername'] == "Benutzer" AND $_POST['Passowrt'] == "DeinPasswort")  
{
  // Zugriff
}
else
{
  // Kein Zugriff
  die;
}
?>

Ich hoffe ich hab's jetzt richtig verstanden
mfg
zensbert
zensbert 13.10.2008 um 19:05:54 Uhr
Goto Top
danke sehr^^
ich probiers mal morgen aus...
tausend dank!
Spackenbremse
Spackenbremse 13.10.2008 um 20:01:00 Uhr
Goto Top
Garkein Thema nicht!
Man hilft wo man kann ^^
Melde dich, wenns nicht klappt, einfach nochmal hier (oder per PN)
zensbert
zensbert 14.10.2008 um 18:23:27 Uhr
Goto Top
Hmm, bin zu blöd..
ich nutz hier so ein Homepagebastelprogramm (Data Becker Web to Date),
is an sich auch ganz gut, aber ich kann hier nur bedingt skripte mit ein basteln,
weil ich das in die index.php integrieren wollte ist das ein bischen problematisch.
geht das irgendwie dass man dass nicht 2 phps daraus macht und dann trotzdem die funktion hat, dass man nicht den rest der index.php angezeigt bekommt wenn man aus einer anderen range kommt und dass passwort nicht korrekt eingegeben hat..?
es tut mir leid solche noob fragen zu stellen, aber programmierung in sämtlichen sprachen liegt mir nur eher wenig, aber irgendeiner muss es machen^^

danke
Spackenbremse
Spackenbremse 14.10.2008 um 19:40:03 Uhr
Goto Top
klar doch:

<?
list($T1,$T2,$T3,$T4) = split(".",$_SERVER['REMOTE_ADDR']);  
if($T1 == "192" AND $T2 == "168" AND $T3 == "1")  
{
  // lokaler Zugriff -> Ohne Passwortabfrage!
}
else
{
  // externer Zugriff -> Mit Passwortabfrage 
?>
<form action="passwortabfrage.php" Method=POST>  
<input type="text" name="Benutzername"><br>  
<input type="password" name="Passwort"><br>  
<inpt type="submit" value="Einlggen">  
</form>
<?
if($_POST['Benutzername'] == "Benutzer" AND $_POST['Passowrt'] == "DeinPasswort")  
{
  // Zugriff
}
else
{
  // Kein Zugriff
  die;
}
}


mfg
zensbert
zensbert 14.10.2008 um 20:07:07 Uhr
Goto Top
Servus..
aber dann kann man doch dennoch den restlichen inhalt der index.php sehen oder nicht?
Stimmt Zeile 11 mit der Passwortabfrage.php?

wie dass absolut perfekt wäre:

1 skript,

lokaler Zugriff -> Ohne Passwortabfrage, alles sichtbar

externer Zugriff -> nichts sichtbar, Mit Passwortabfrage OK -> alles sichtbar

externer Zugriff -> nichts sichtbar, Mit Passwortabfrage falsch -> Umleitung auf Google oder so..

MAANY THANKS!!
Spackenbremse
Spackenbremse 15.10.2008 um 16:13:30 Uhr
Goto Top
Hallo.

Zeile 11 stimmt nicht, hatte ich vergessen zu ändern.

Soweit ich weiß sieht man den Inhalt nicht, da PHP ein Serverseitiges Script ist (auser man läd sich die Datei per ftp runter).

Als sicherheit kannst du z.b. das Passwort MD5 verschlüsseln:

<? 
list($T1,$T2,$T3,$T4) = split(".",$_SERVER['REMOTE_ADDR']);   

if($T1 == "192" AND $T2 == "168" AND $T3 == "1")   
{ 
 // lokaler Zugriff -> Ohne Passwortabfrage! 
} 
else 
{ 
  // externer Zugriff -> Mit Passwortabfrage  
?> 

<form action="index.php" Method=POST>   
<input type="text" name="Benutzername"><br>   
<input type="password" name="Passwort"><br>   
<inpt type="submit" value="Einlggen">   
</form> 
<? 
if($_POST['Benutzername'] == "Benutzer" AND MD5($_POST['Passowrt']) == "DeinPasswortInMD5Verschlüsselung")   
{ 
  // Zugriff 
} 
else 
{ 
  // Kein Zugriff 
echo "KEIN ZUGRIFF!!";  
?>
<meta http-equiv="refresh" content="2; URL=www.google.de">  
<? 
} 
}

hast du eventuell einen IM? ICQ villeicht? Dann könnte man sich schneller verständigen.

mfg