Banner robo47.net

SSH dynamisch nur für gewisse IPs erlauben

Auf diesem Weg kann man in Kombination mit einem Cronjob und einem weiteren Script (sei es PHP oder etwas anderes) dynamisch verschiedenen IPs erlauben SSH zu nutzen.
Der Cronjob ist nötig, weil php keinen Zugriff auf das /etc-Verzeichnis hat.

Anmerkung: Das ist hier alles quick and dirty ausgeführt, nur um zu zeigen was für Möglichkeiten man hat.

Anzeige:

Mein Problem war, Usern eines Forums zu erlauben auf einen SSH-Account zuzugreifen, um das etwas weiter einzugrenzen damit nur User die auch mehr oder minder regelmäßig auf das Forum zugreifen zu erlauben, eine Verbindung aufzubauen und gleich Brute-Force Angriffe von fremden IPs zu unterbinden. Dazu habe ich folgendes kleines Script benutzt (es ist für das Simple Maschines Forum (SMF) geschrieben, sollte allerdings sehr einfach an ein anderes Forum angepasst werden können.)

<?php
error_reporting(E_ALL);
$res = mysql_connect('host','user','pw') or exit(mysql_error());
mysql_select_db('databasename',$res) or exit(mysql_error());
$query = mysql_query("SELECT memberIP,memberIP2 from smf_members") or exit(mysql_error());
if (mysql_num_rows($query) > 0)
{
  while($data = mysql_fetch_assoc($query))
  {
    $global[] = $data['memberIP'];
    $global[] = $data['memberIP2'];
  }
}
file_put_contents('./hosts.allow','sshd: '.implode("\n".'sshd: ',$new));
?>

Der Cronjob muss jetzt folgendes machen, er muss das PHP-Script aufrufen (dazu nutze ich wget) und dann die vom PHP-Script erzeugte Datei an den richtigen Platz kopieren:

wget --output-document=/dev/null http://www.domain.tld/allowscript/allowscript.php
cp /pfad/zum/allowscript/hosts.allow /etc/hosts.allow

Dadurch dass der Cronjob nur alle Minute ausgeführt wird, kommt es halt zu einer kurzen Wartezeit zwischen Forumsbesuch und der Möglichkeit via SSH zu verbinden.

Ein Nachteil der besteht, ist man bei einem normalen DSL-Anbieter, fliegt man spätestens alle 24 Stunden raus und muss danach erst wieder aufs Forum, auch wenn man gerade vor fünf Minute auf dem Forum war. Wer ne feste IP hat, hat damit kein Problem, es lässt sich allerdings auch noch erweitern indem man nur die IPs der Leute einträgt die innerhalb der letzen XX Stunden z.b. auf dem Forum waren, einen Post gemacht haben .... ist also ausbaufähig.

Hoch Pfeil nach Oben