2017-07-27 1 views
0

Ich betreibe einen CentOS 7 Server, und ich möchte Ban oder Unban bestimmte IP mit Fail2ban.PHP Exec() zu einem und Unbain IPs mit Fail2Ban

es jedoch nicht funktioniert, wenn ich den Code ausführen:

$exec = exec('sudo fail2ban-client set apache banip 0.0.0.0', $output, $return); 

var_dump($exec);  
var_dump($output); 
var_dump($return); 

Muss ich einige spezielle Zugriffsrechte für PHP benötigen deshalb ist es funktionieren wird nicht?

Die $return Variable spuckt 1 aus, wenn ich es betreibe. Ich weiß 0 bedeutet, dass es Successful ist.

Während $output nichts zurückgibt.

+0

Sie diesen Thread überprüfen Haben: https://serverfault.com/questions/285256/how-to-unban- an-ip-richtig-mit-fail2ban/475117? –

+0

Die Befehle funktionieren in SSH als sudo. Sie nicht durch exec ... Ich denke, es ist ein Sudo Problem – Borsn

Antwort

1

Ich würde vermuten, dass Sie ein Kennwort für Sudo benötigen. Wenn Sie ein Root-Benutzer haben, und dies ist in der Tat der Fall ist, müssen Sie es wie das tun:

$command = 'sudo -u root -S fail2ban-client set apache banip 0.0.0.0 < yourpass.key'; 

$exec = exec($command, $output, $return); 

var_dump($exec);  
var_dump($output); 
var_dump($return); 


Wo yourpass.key eine Datei das Passwort für root enthält. Wie ich es oben gemacht habe, muss sich die Passwortdatei im selben Verzeichnis wie das PHP Script befinden. Sie können diesen Pfad jedoch ändern.

Zum Beispiel, wenn Sie die Datei in /home speichern möchten schreiben Sie einfach

$command = 'sudo -u root -S fail2ban-client set apache banip 0.0.0.0 < /home/yourpass.key'; 
+0

Kann ich nur das Passwort als Text hinzufügen? So: ''sudo -u root -S fail2ban-client gesetzt apache banip 0.0.0.0 Borsn

+0

Benutzer' root' Login ist deaktiviert. Ein anderer Benutzer muss eingeloggt sein, dann 'su'. Allerdings läuft php intern, also sollte es "root" lassen. – Borsn

+0

@Borsn Ja, das funktioniert, aber ich würde es nicht als ein Sicherheitsproblem empfehlen. Wenn du immer noch willst, mach es so: ''sudo -u root -S fail2ban-client set apache banip 0.0.0.0 << password123'' Außerdem bin ich sicher, dass du den root-Benutzer nicht benutzen kannst PHP, wenn es deaktiviert ist. Denken Sie daran: Exec ruft immer noch eine normale Shell auf. – NullDev