Last active
October 28, 2015 14:52
-
-
Save serweb-labs/f6a6327de52b0c850ea2 to your computer and use it in GitHub Desktop.
generar dkim asistente
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/php | |
<?php | |
if (!is_dir("/etc/opendkim")) { | |
$salida = shell_exec("mkdir /etc/opendkim"); | |
echo " - creando directorio /etc/opendkim" . "\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
if (!is_dir("/etc/opendkim/keys")) { | |
$salida = shell_exec("mkdir /etc/opendkim/keys"); | |
echo " - creando directorio /etc/opendkim/keys/" . "\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
if (!is_dir("/etc/opendkim/keys/" . $argv[1])) { | |
$salida = shell_exec("mkdir /etc/opendkim/keys/" . $argv[1]); | |
echo " - creando directorio /etc/opendkim/keys/" . $argv[1] . "\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
$salida = shell_exec("opendkim-genkey -D /etc/opendkim/keys/" . $argv[1] . "/ -d " . $argv[1] . " -s default"); | |
echo " - generando llaves dkim\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
$salida = shell_exec("chown -R opendkim: /etc/opendkim/keys/" . $argv[1]); | |
echo " - asignando dueño\n\n"; | |
echo $salida; | |
if (!file_exists("/etc/opendkim/keys/" . $argv[1] . "/default.private")) { | |
$salida = shell_exec("mv /etc/opendkim/keys/" . $argv[1] . "/default.private /etc/opendkim/keys/" . $argv[1] . "/default"); | |
echo " - renombrando archivo\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
if (!file_exists("/etc/opendkim/SigningTable")) { | |
$salida = shell_exec("touch /etc/opendkim/SigningTable"); | |
echo " - creando SigningTable\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
$fichero = file_get_contents('/etc/opendkim/SigningTable', false); | |
$cadena = "*@" . $argv[1] . " default._domainkey." . $argv[1]; | |
$posicion_coincidencia = strpos($fichero, $cadena); | |
if ($posicion_coincidencia === false) { | |
file_put_contents('/etc/opendkim/SigningTable', "\n" . $cadena, FILE_APPEND); | |
echo " - escribiendo entrada en SigningTable\n\n"; | |
} else { | |
echo " - la entrada ya existe en SigningTable\n\n"; | |
} | |
// trusted hosts | |
if (!file_exists("/etc/opendkim/TrustedHosts")) { | |
$salida = shell_exec("touch /etc/opendkim/TrustedHosts"); | |
echo " - creando TrustedHosts\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
$ficheroTrustedHosts = file_get_contents('/etc/opendkim/TrustedHosts', false); | |
// localhost in trusted hosts | |
$cadena = "localhost"; | |
$posicion_coincidencia = strpos($ficheroTrustedHosts, $cadena); | |
if ($posicion_coincidencia === false) { | |
file_put_contents('/etc/opendkim/TrustedHosts', "\n" . $cadena, FILE_APPEND); | |
echo " - escribiendo entrada <localhost> en TrustedHosts\n\n"; | |
} else { | |
echo " - la entrada <localhost> ya existe en TrustedHosts\n\n"; | |
} | |
// 127.0.0.1 in trusted hosts | |
$cadena = "127.0.0.1"; | |
$posicion_coincidencia = strpos($ficheroTrustedHosts, $cadena); | |
if ($posicion_coincidencia === false) { | |
file_put_contents('/etc/opendkim/TrustedHosts', "\n" . $cadena, FILE_APPEND); | |
echo " - escribiendo entrada <127.0.0.1> en TrustedHosts\n\n"; | |
} else { | |
echo " - la entrada <127.0.0.1> ya existe en TrustedHosts\n\n"; | |
} | |
// domain in trusted hosts | |
$cadena = $argv[1]; | |
$posicion_coincidencia = strpos($ficheroTrustedHosts, $cadena); | |
if ($posicion_coincidencia === false) { | |
file_put_contents('/etc/opendkim/TrustedHosts', "\n" . $cadena, FILE_APPEND); | |
echo " - escribiendo entrada <" . $argv[1] . "> en TrustedHosts\n\n"; | |
} else { | |
echo " - la entrada ya existe <" . $argv[1] . "> en TrustedHosts\n\n"; | |
} | |
// public ip in trusted hosts | |
if (!empty($argv[2])) { | |
$cadena = $argv[2]; | |
} else { | |
echo " - no pasaste tu ip publica como argumento, intentaremos averiguar\n\n"; | |
$cadena = shell_exec("curl ifconfig.host"); | |
$cadena = trim($cadena); | |
echo "\n\n"; | |
} | |
if (!empty($cadena) && (filter_var($cadena, FILTER_VALIDATE_IP))) { | |
$posicion_coincidencia = strpos($ficheroTrustedHosts, $cadena); | |
if ($posicion_coincidencia === false) { | |
file_put_contents('/etc/opendkim/TrustedHosts', "\n" . $cadena, FILE_APPEND); | |
echo " - escribiendo entrada para la ip {$cadena} en TrustedHosts\n\n"; | |
} else { | |
echo " - la entrada para la ip {$cadena} ya existe en TrustedHosts\n\n"; | |
} | |
} else { | |
echo " - error al averiguar tu ip, pasala como segundo parametro y vuelve a intentarlo\n\n"; | |
exit(); | |
} | |
echo " - se ha configurado dkim para {$argv[1]}\n\n"; | |
if (file_exists("/etc/opendkim/keys/" . $argv[1] . "/default.txt")) { | |
$salida = file_get_contents("/etc/opendkim/keys/" . $argv[1] . "/default.txt"); | |
echo " - ahora agrega la entrada al dns:\n\n"; | |
echo !empty($salida) ? $salida . "\n\n" : "" ; | |
} | |
echo " - para sentora y zpanel agrega un registro del tipo txt, tiene que quedar así:\n\n"; | |
$vowels = array("DKIM key default for {$argv[1]}", " ", " ", "\"", "\n", "-", "(", ")"); | |
$parasentora = str_replace($vowels, "", $salida); | |
$parasentora = str_replace("INTXT", " 3600 IN TXT ", $parasentora); | |
$parasentora = str_replace(";k", "; k", $parasentora); | |
$parasentora = str_replace(";p", "; p", $parasentora); | |
echo trim($parasentora, " \t\n\r\0\x0B;") . "\n\n"; | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment