You are on page 1of 38

DOCUMENTACIÓN DE SCRIPTS DE COMPARTIDOS

1) crear.sh
Nombre script: crear.sh
Líneas: 714
Descripción: Este programa se encarga de crear una máquina virtual o VPS en el sistema
anfitrión Citrix, cuenta con un menú principal con 13 opciones de
configuración con 3 perfiles de VPS en Centos 6, los cuales pueden ser con o
sin respaldo y opciones de CPanel.
Nuevo nombre: Crear-vps.sh
Funciones / Programa completo
Métodos
Uso en crontab No
Variables IP- Dirección IP del nodo VPS
utilizadas: Interfaz - Para ver la interfaz (xe network-list bridge)
SRUI - Ver uuid mediante xencenter
VAPP – Para ver (xe appliance-list uuid)
Gr – Color verde
Red - Color rojo
Blink - Color
Blue – Color Azul
Yellow – Color Amarillo
NC- Sin color
Blanco – Color blanco
Rutacitrix- Ruta del servidor anfitrión Citrix
choice – Selección del menu principal
hostname1 - Nombre del servidor VPS
ipvps - Dirección IP del servidor VPS
puerta - Dirección IP de la puerta de enlace del VPS
inicio - Orden o confirmación de inicio de VPS
VMID – ID de máquina virtual VPS
LOCALSRID – Dirección local del storage
Disco - Lista de discos de VPS
core - Cantidad de Vcpu para el VPS
memory – Cantidad de memoria del VPS
memoryswap – Cantidad de mamoria Swap del VPS
discototal –
vif – Dispositivo de interfaz para la VPS
Uso esperado: El programa debe presentar un menú principal con 13 opciones para
configurar una VPS con o sin CPanel. Una vez seleccionado el programa
solicita las variables de configuración ipvps, puerta, core, memory,
memoryswap, discototal e inicio. Luego crea una maquina virtual VPS en el
sistema Citrix utilizando repositorio de gtdinternet.com.
Resultado Por favor escribir las opciones
1) crear.sh
VPS1 + Centos 6 (64bits) sin respaldo ${NC}" ;
VPS1 + Centos 6 (64bits) + respaldo ${NC}" ;
VPS1 + Centos 6 (64bits) sin respaldo + Cpanel ${NC}"
VPS1 + Centos 6 (64bits) + respaldo + Cpanel ${NC}" ;
VPS2 + Centos 6 (64bits) sin respaldo ${NC}" ;
VPS2 + Centos 6 (64bits) + respaldo ${NC}" ;
VPS2 + Centos 6 (64bits) sin respaldo + Cpanel ${NC}" ;
VPS2 + Centos 6 (64bits) + respaldo + Cpanel ${NC}" ;
VPS3 + Centos 6 (64bits) sin respaldo ${NC}" ;
VPS3 + Centos 6 (64bits) + respaldo ${NC}" ;
VPS3 + Centos 6 (64bits) sin respaldo + Cpanel ${NC}" ;
VPS3 + Centos 6 (64bits) + respaldo + Cpanel ${NC}" ;
VPS personalizado
Por favor escribir las opciones [1,2,3 o 13]
Observaciones: Se puede mejorar el programa dividiendo el código completo en funciones
separadas.
2) diario.sh
Nombre script: diario.sh
Líneas: 26
Descripción: Este programa se encarga de reportar la información del estado actual de
los discos duros, estado actual del raid y el estado actual de la batería.
Nuevo nombre: reporte-raid.sh
Funciones / Programa completo
Métodos
Uso en crontab No
Variables Host – Hostname
utilizadas: Asunto – Estado raid en el host
TEMPFILE – Archivo temporal
Uso esperado: El programa debería crear un archivo temporal /tmp/envio con la
información y en enviarlo por correo electrónico
Resultado: **************************
Estado actual de los discos duros:
Estado del raid:"
Estado actual de la batería:

Observaciones: No
3) raid.sh
Nombre script: raid.sh
Líneas: 91
Descripción: Este programa se encarga de instalar los paquetes de lsi, generar la
configuración SMTP (sendmail) y crear un script diario.

Nuevo nombre instalar-raid.sh


Funciones / Programa completo
Métodos
Uso en crontab No
Variables DBS1 – Para guardar información del RAID.
utilizadas: Script relacionada:
diario310.sh

Uso esperado: Este programa debería instalar los paquetes. rpm y configurar el
servicio de sendmail.

Resultado: Paquetes instalados de MegaCli y mailx

Observaciones: NO ha sido probado


4) runav.pl
Nombre script: runav.pl
Líneas: 42
Descripción: Este programa es una interface entre ModSecurity y la
disponibilidad para interceptar archivos actualizados a través de
web server u ClamAV.
Nuevo nombre: runav.pl
Funciones / Programa completo
Métodos
Uso en crontab No
Variables CLAMSCAN – Ubicación del comando camscan
utilizadas: FILE - Archivo de salida del comando camscan
cmd – Sentencia completa con las variables CLAMSCAN y FILE.
Input - Ejecución del comando cmd
error_message – Valor de $1
output – Muestra el resultado de archivos vacíos, errores,
encontrados y oks.
error_messages - Mensaje de errores.
Uso esperado: El programa ejecuta las firmas de CamScan con una salida de
reporte con “Empty file, Error, Found y Ok).

Resultado: No probado

Observaciones: Se necesita CPanel para utilizar el script


5) script.sh
Nombre script: script.sh
Líneas: 78
Descripción: Este programa permite bloquear direcciones IP mediante IPTables,
además de crear una programación en el crontab.

Nuevo nombre crear-reglas-iptables.sh


Funciones / Programa completo
Métodos
Uso en crontab No
Variables No
utilizadas:
Uso esperado: El programa debería crear un archivo llamado bloqueo.sh

Resultado: El programa muestra las reglas de IPTables

Observaciones: Es programa funciona creando reglas en IPTables.


6) new.sh
Nombre script: hora.sh
Líneas: 582
Descripción: Este programa se encarga descargar desde powerhost.cl archivos
script .sh y paquetes rpm, para luego instalarlos. Adicionalmente
instala y configura el ConfigServer Security & Firewall (csf)
agregando y bloquendo direcciones IP. Ademas de ConfigServer
ModSecurity Control (cmc), ConfigServer Mail Queues (cmq) y
ConfigServer Mail Manage (cmm) . Adicionalmente configura
Crontab y SSH.

Nuevo nombre nuevo-compartido.sh


Funciones / Scripts relacionados:
Métodos  disco.sh
 load.sh
 ddos.sh
 emergecias.sh
 backlist.sh
 suspendidas.sh
 read.sh
 monitor.sh
 security.sh
 security2.sh
 eximqueue.sh
 read.sh
 hora.sh
 monitor.sh
 timthumbup.sh
 powerscan
Uso en crontab No
Variables strContador – Contador para las colas de correos en Exim.
utilizadas: TEMPFILE – Archivo de mensaje de notificación

Uso esperado: El programa debería instalar los archivos disco.sh, load.sh, ddos.sh,
emergecias.sh, backlist.sh, suspendidas.sh, read.sh, monitor.sh,
security.sh, security2.sh, eximqueue.sh, read.sh, hora.sh,
monitor.sh, timthumbup.sh y powerscan en el directorio
/root/powerhost/. Luego crear las tareas programadas crontab y
aviso de ingreo de SSH en /etc/mothLuego. Finalmente realizar la
instalación de los paquetes rpm nload, dnstop, atop y htop.

Resultado : Instalacion de paquetes rpm y creación de los scripts.


6) new.sh

Observaciones: Se sustituyo /root/powerhost/.envios3 por


La siguiente línea:
/root/powerhost/.envios
7) config.sh
Nombre script: config.sh
Líneas: 380
Descripción: Este programa realiza la configuración del script de PowerHost
aplicando reglas al cpanel.config, modifica el php.ini, los puertos
de exim, chkserv, sshd_config y activar el Background Process
Killer.

Nuevo nombre: nuevo-compartido.sh


Funciones / Programa completo
Métodos Relacionados:
script.sh
Uso en crontab No
Variables DBS – Lista de detección de disco para comprobación si es
utilizadas: dedicado o vps
partición – Para leer la lista generada DBS
color – Color de las opciones

Uso esperado: El programa debería crear los archivos /etc/localaliases,


/etc/aliases , cpanel.config, /etc/exim.conf.localopts. Aplicando
script para activar opciones en WHM. Además de cambiar puerto
de 22 a 1295.
Resultado:

Observaciones:
8) ddos.sh
Nombre script: ddos.sh
Líneas: 146
Descripción: Este programa se encarga bloquear las IP que exceden el número
de conexiones establecido en el archivo ddos.conf
Nuevo nombre: ddos.sh
Funciones / load_conf()
Métodos head()
showhelp()
unbanip()
add_to_cron()
Uso en crontab Si
Variables Archivo: ddos.conf
utilizadas: PROGDIR – Directorio del script
PROG – Archivo de ejecución del script
IGNORE_IP_LIST – Archivo de IP ignoradas (ignore.ip.list)
CRON - Variable de archivo ddos.cron
APF – Ruta del comando /usr/sbin/csf
IPT= Ruta del comando sbin/iptables
FREQ= Frecuencia en minutos para corer el script
NO_OF_CONNECTIONS= Limite de conexión de una sola IP
APF_BAN= Usar iptables o APF para bannear una IP
KILL – IP malas que no son baneadas
EMAIL_TO= Correo para la notificación
BAN_PERIOD – Numero de segundos que una ip baneada en el
blacklist
Archivo: ddos.sh
TMP_PREFIX – Variable de archivo /tmp/ddos
TMP_FILE – Variable de comando mktemp
BANNED_IP_MAIL – Variables para email
BANNED_IP_LIST – IP que superaron el limite
CURR_LINE_IP – Línea actual de IP
IP_BAN_NOW –
Uso esperado: El programa debería crear una lista con las ip

Resultado: -bash-3.2# /usr/local/ddos/ddos.sh


22 190.215.194.92
17 190.196.113.243
13 191.114.136.57
10 190.215.81.253
9 82.192.70.80
8 200.104.233.102
8 190.45.145.37
8) ddos.sh
8 190.20.0.98
7 201.186.79.237
7 190.45.168.54
6 201.219.233.27
6 190.233.151.84
6 190.186.70.51
6 187.208.15.132
6 186.9.135.153
6 186.9.131.193
6 186.79.94.18
6 186.37.202.228
5 68.196.5.138
5 201.187.49.142
5 200.113.175.3
5 190.45.236.153
5 186.37.202.51
5 181.75.68.73
4 68.180.228.42
4 201.219.233.242
4 201.219.233.131
4 190.163.26.31
4 190.160.193.248
4 190.153.200.76
4 186.9.129.43
4 186.67.159.154
4 181.72.33.40
3 62.212.73.211
Observaciones: Este script no genera una notificación por e-mail
9) disco.sh
Nombre script: disco.sh
Líneas: 20
Descripción: Este programa se encarga de verificar el uso de las particiones en
el sistema Linux.
Nuevo nombre verificar-particiones.sh
Funciones / Programa completo
Métodos
Uso en crontab 0 6 * * * root sh /root/powerhost/disco.sh>/dev/null 2>&1
Variables ALERT=95 Límite máximo de porcentaje de uso de partición
utilizadas: ajustado al 95% por defecto.
$usep – porcentaje de uso de la partición
Uso esperado: El programa debería enviar un e-mail a los administradores de
sistemas operaciones@powerhost.cl

Resultado: La particion "/dev/sdb1 tiene utilizado (79%)" en el servidor


power55.powerhost.cl

Estado de las particiones actualmente:


Filesystem Size Used Avail Use% Mounted on
/dev/sda5 190G 124G 57G 69% /
/dev/sda8 1.2T 609G 462G 57% /home
/dev/sda7 8.6G 769M 7.4G 10% /tmp
/dev/sda3 190G 172G 8.4G 96% /usr
/dev/sda2 190G 62G 119G 35% /var
/dev/sda1 8.6G 177M 7.9G 3% /boot
tmpfs 16G 0 16G 0% /dev/shm
/dev/sdb1 111G 83G 23G 79% /backup
Saludos Bot de monitoreo PowerHost =)
Observaciones: Se debería mejorar el programa agregando en el crontab de forma
diaria a las 3:00am emita los resultados esperados.
10) eximqueue.sh
Nombre script: eximqueue.sh
Líneas: 21
Descripción: Este programa se encarga notificar o alertar cuando la cola de
correo es mayor o igual a 500.
Nuevo nombre: verificar-colas.sh
Funciones / Programa Completo
Métodos
Uso en crontab */2 * * * * root sh /root/powerhost/eximqueue.sh>/dev/null
2>&1
Variables strContador – Contador para las colas de correos en Exim.
utilizadas: TEMPFILE – Archivo de mensaje de notificación

Uso esperado: El programa debería crear un archivo llamado exim.txt y enviar una
notificación por e-mail

Resultado: *****************************************************

Total de correos en cola:

2020
*****************************************************
Observaciones: Se sustituyo /root/powerhost/.envios3 por
La siguiente línea:
/root/powerhost/.envios
11) hora.sh
Nombre script: hora.sh
Líneas: 237
Descripción: Verifica los dominios y usuarios que se encuentran enviando spam.

Nuevo nombre verificar-envios-spam.sh


Funciones / Programa Completo
Métodos
Uso en crontab */1 * * * * root sh /root/powerhost/hora.sh>/dev/null 2>&1
Variables Fecha – Hora, Dia mes y año.
utilizadas: DBS – Variable de exim_mainlog para máximo de email por hora

Uso esperado: El programa debería crear un archivo llamado limitecorreo-


suspensión.txt y enviar una notificación por e-mail

Resultado: mysql> use server_bloqueo; select * from ip;


Database changed
Empty set (0.00 sec)

mysql>
Observaciones: Este script no genera una notificación por e-mail
12) hora2.sh
Nombre script: hora.sh
Líneas: 237
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos server_bloqueo

Nuevo nombre verificar-envios-spam.sh


Funciones / Programa Completo
Métodos
Uso en crontab No
Variables Fecha – Hora, Dia mes y año.
utilizadas: DBS – Variable de exim_mainlog para máximo de email por hora

Uso esperado: El programa debería crear un archivo llamado limitecorreo-


suspensión.txt y enviar una notificación por e-mail

Resultado: mysql> use server_bloqueo; select * from ip;


Database changed
Empty set (0.00 sec)

mysql>
Observaciones: Este script no genera una notificación por e-mail
13) hora3.sh
Nombre script: hora.sh
Líneas: 237
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos server_bloqueo

Nuevo nombre verificar-envios-spam.sh


Funciones / Programa Completo
Métodos
Uso en crontab No
Variables Fecha – Hora, Dia mes y año.
utilizadas: DBS – Variable de exim_mainlog para máximo de email por hora

Uso esperado: El programa debería crear un archivo llamado limitecorreo-


suspensión.txt y enviar una notificación por e-mail

Resultado: mysql> use server_bloqueo; select * from ip;


Database changed
Empty set (0.00 sec)

mysql>
Observaciones: Este script no genera una notificación por e-mail
14) ipbloqueadas.sh
Nombre script: ipbloqueadas.sh
Líneas: 406
Descripción: Este programa se encarga de bloquear con reglas DROP de Iptables
en las cadenas de entrada y salida de las ip que que molestan al
servidor con envíos de Spam y otros bloqueos tales como:
santamail.info, mailer.intra.net, emailpremium, vps datosmasivo,
correosuperior, b2.cl, publicidadymarketing,
vendoenchile.marketing, vps chilecommm, correodirect,
primeservice, negociosnowxenomail, santamail, getpost,
mailxmail, maildelivery, viajoven.cl, correopost, api twitter, rusia ,
spam, ovh timthumn, bluehosting.cl, CPANELHOST, asn
bluehosting, qq.com
Nuevo nombre verificar-envios-spam.sh
Funciones / Programa Completo
Métodos
Uso en crontab No
Variables Sin Variables
utilizadas:
Uso esperado: El programa debería crear reglas de IPTABLES en el servidor para
bloquear (DROP) las ips que generan Spam

Resultado:
Actualmente sin uso

Observaciones: Este script se incompleto incompleto ya que filtrar los Stopwatch


que comienzan por 65000*
15) load.sh
Nombre script: load.sh
Líneas: 95
Descripción: Este programa se encarga de verificar la carga actual, cantidad de
procesos Linux y conexiones entre PHP y MySQL.
Nuevo nombre verificar-carga.sh
Funciones / Programa completo
Métodos
Uso en crontab */1 * * * * root sh /root/powerhost/load.sh>/dev/null 2>&1
Variables SUBJECT = Asunto del email de notificación
utilizadas: OS – Versión del kernel de Linux/Unix
TRUE – Valor booleano para verificar el envió de email.
F5M – Tiempo de encendido y carga en 5 minutos
F10M – Tiempo de encendido y carga en 10 minutos
F15M – Tiempo de encendido y carga en 15 minutos
fecha – Fecha completa del sistema
hostname – Nombre de host
$TEMPFILE- Archivo temporal con los resultados de procesos
Linux, php, conexión a MySQL
RESULT – Muestra de resultado
Uso esperado: El programa debería enviar un e-mail a los administradores de
sistemas operaciones@powerhost.cl

Resultado: Hostname: power55.powerhost.cl

Fecha y hora : Tue Sep 13 14:51:01 CLST 2016


Carga actual: 12.69
*****************************************************************************

Procesos que estan generando consumo:

83.3 1867 1701 /usr/bin/php /home/cristinaimportac/public_html/index.php


23.1 22238 root /usr/local/cpanel/3rdparty/bin/pigz -6 --processes 4 --
blocksize 128 --rsyncable
11.8 1626 1886 [php] <defunct>
%CPU PID USER COMMAND
9.8 28735 root /usr/local/cpanel/3rdparty/bin/clamd
6.8 5258 root /usr/bin/python /usr/bin/fail2ban-server -b -s
/var/run/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -x
6.0 1924 root /usr/sbin/exim -Mc 1bjrrJ-0000DW-1f
5.0 1911 root /usr/sbin/exim -Mc 1bjrrI-0000Tk-9z
4.9 17625 mysql /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --
15) load.sh
plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-
error=/var/lib/mysql/power55.powerhost.cl.err --open-files-limit=99999 --pid-
file=/var/lib/mysql/power55.powerhost.cl.pid --port=3306
3.8 3519 root spamd child

*****************************************************************************

Procesos php

1886 1626 11.8 0.0 0 0? Z 14:50 0:01 [php] <defunct>


1877 1714 0.8 0.0 229008 13184 ? S 14:50 0:00 /usr/bin/php
/home/cirugiadeobesida/public_html/index.php
1701 1867 84.6 0.1 326140 57132 ? R 14:50 0:02 /usr/bin/php
/home/cristinaimportac/public_html/index.php
root 1965 0.0 0.0 4044 680 ? Ss 14:51 0:00 jailshell (tg) [1980]
jailshell -c php -f /home/tg/public_html/shop/modules/cron/cron_crontab.php
tg 1980 0.0 0.0 260108 10808 ? R 14:51 0:00 php -f
/home/tg/public_html/shop/modules/cron/cron_crontab.php
32005 10484 0.0 0.0 106136 8504 ? S Aug30 0:00
/usr/local/cpanel/3rdparty/php/54/bin/php-cgi -c
/usr/local/cpanel/3rdparty/php/54/etc/roundcube
/usr/local/cpanel/base/3rdparty/roundcube/index.php
1645 16326 0.0 0.0 52968 5196 ? SL 13:51 0:01 proftpd:
comunidadcristia - 190.160.249.47: STOR landing-page-templates.php
1645 18623 0.0 0.0 52648 4800 ? SL 14:43 0:00 proftpd:
comunidadcristia - 190.160.249.47: STOR credits.php
1645 18708 0.0 0.0 52812 4928 ? SL 14:09 0:00 proftpd:
comunidadcristia - 190.160.249.47: STOR Core.php
1645 20577 0.0 0.0 52796 4924 ? SL 14:44 0:00 proftpd:
comunidadcristia - 190.160.249.47: STOR class-json.php
1645 21480 0.1 0.0 52628 4840 ? SL 14:45 0:00 proftpd:
comunidadcristia - 190.160.249.47: STOR getid3.php
32005 23153 0.0 0.0 106136 8508 ? S Sep11 0:00
/usr/local/cpanel/3rdparty/php/54/bin/php-cgi -c
/usr/local/cpanel/3rdparty/php/54/etc/roundcube
/usr/local/cpanel/base/3rdparty/roundcube/index.php
1877 23612 0.1 0.0 0 0? Z 14:46 0:00 [php] <defunct>
32005 23679 0.0 0.0 106136 8508 ? S Aug30 0:00
/usr/local/cpanel/3rdparty/php/54/bin/php-cgi -c
/usr/local/cpanel/3rdparty/php/54/etc/roundcube
/usr/local/cpanel/base/3rdparty/roundcube/index.php
1877 23848 0.0 0.0 229008 13244 ? S 11:24 0:00 /usr/bin/php
/home/cirugiadeobesida/public_html/index.php

*****************************************************************************
Peticiones generadas hacia apache

1
1 0.0.0.0
1 104.131.182.65
1 104.33.130.1
1 131.253.24.154 1 190.53.107.86
1 190.54.31.18
1 191.116.76.18
1 191.116.88.217
1 191.119.104.124
1 191.125.56.175
15) load.sh
1 192.0.84.33
1 199.16.156.126 9 201.238.206.28
10 190.47.251.57
10 190.54.27.139
11 191.119.122.118
11 200.89.66.152
18 190.45.149.218

*****************************************************************************
Procesos mysql

+---------+--------------+-----------+--------------+---------+------+-------+------------------
+
| Id | User | Host | db | Command | Time | State |
Info |
+---------+--------------+-----------+--------------+---------+------+-------+------------------
+
| 6894673 | leechprotect | localhost | leechprotect | Sleep | 2434
| | |
| 6903426 | root | localhost | | Query | 0 | | show
processlist |
+---------+--------------+-----------+--------------+---------+------+-------+------------------
+

*****************************************************************************

Observaciones: Al ejecutar el scrpit en la consola de Linux aparece la notificación


siguiente:
Directorio de almacenamiento para los logs de consumo ya existe
mkdir: cannot create directory `/root/powerhost/logs-scripts-
powerhost/consumo/130920161436': Too many links
./load.sh: line 54: /root/powerhost/logs-scripts-
powerhost/consumo/130920161436/log.txt: No such file or
directory

Se debería mejorar el programa con una verificación previa de la


existencia del directorio /root/powerhost/logs-scripts-
powerhost/consumo/13.
Al ejecutar el comando mkdir aparece lo siguiente: “mkdir: cannot
create directory `prueba': Too many links”. Lo que significa que
hay que borrar todos los directorios antiguos del 2013.
Se pudo evidenciar que hay un demasiados de más de 30.000
directorios lo que excede la creación de directorios en el sistema
de archivos ext3. Pruebas:
[root@power55 consumo]# ls | wc -l
31998
16) monitor.sh
Nombre script: monitor.sh
Líneas: 122
Descripción: Este programa se encarga de reiniciar los servicios de Apache,
Imap, Dovecot, MySQL y Exim.

Nuevo nombre reiniciar-servicios.sh


Funciones / Programa completo
Métodos
Uso en crontab * * * * * root sh /root/powerhost/monitor.sh>/dev/null 2>&1
Variables reinicioapache - Comando de reinicio de Apache / httpd
utilizadas: reinicioimap- Comando de reinicio del servicio Imap
reiniciodovecot – Comando de reinicio del servicio Dovecot
reiniciomysql – Comando de reinicio MySQL
reinicioexim- Comando de reinicio de Exim
PGREP- Comando pgrep
HTTPD= - Comando Httpd
imap= Comando Imap
dovecot- Comando dovecot
mysql- Comando MySQL
exim – Comando de exim
TEMPFILE – Genera contenido temporal del archivo apache.txt
Uso esperado: El programa debería crear un archivo llamado apache.txt y enviar
un e-mail a los administradores de sistemas
operaciones@powerhost.cl

Resultado: "El servicio de apache fue reiniciado, igualmente se recomienda


verificar en el servidor
Observaciones: Este script no puede utilizarse en un servidor en producción o en
pleno funcionamiento sin antes notificar a los usuarios del servicio
de hosting compartido.
17) read.sh
Nombre script: read.sh
Líneas: 39
Descripción: Verificar los discos de respaldo con problemas
Nuevo nombre verificar-respaldos.sh
Funciones / 
Métodos
Uso en crontab 0 21 * * * root sh /root/powerhost/read.sh>/dev/null 2>&1
Variables DBS - guarda listado de losgs de dorecotorio
utilizadas: /usr/local/cpanel/logs/cpbackup/
Host – Nombre de la maquina
Asunto – Texto del mensaje de correo
TEMPFILE- archivo de plantilla
Uso esperado:
Resultado 1:

Resultado 2:

Resultado 3:

Observaciones: Se sustituyo /root/powerhost/.envios3 por


La siguiente línea:
/root/powerhost/.envios
18) security.sh
Nombre script: security.sh
Líneas: 46
Descripción: Este programa se encarga de verificar los archivos
modsec_audit.log
Nuevo nombre verificar-modsecurity.sh
Funciones / Programa completo
Métodos
Uso en crontab */5 * * * * root sh /root/powerhost/security.sh>/dev/null 2>&1
Variables DBS – Columna 23 del archivo modsec_audit.log
utilizadas: DBS1 – Columna 25 del archivo modsec_audit.log
DBS2 – Columna 29 del archivo modsec_audit.log
Host – Hostname
SUBJECT – Asunto del correo a enviar
TEMPFILE – Variable de archive temporal
Uso esperado: El programa debería crear un archivo llamado mosecurity.txt y
enviar un e-mail a los administradores de sistemas
operaciones@powerhost.cl

Resultado: No funciona

Observaciones: Este script se incompleto incompleto ya que filtrar los Stopwatch


que comienzan por 65000*
19) security2.sh
Nombre script: Security2.sh
Líneas: 46
Descripción: Este programa se encarga de verificar los archivos
modsec_audit.log
Funciones / Programa completo
Métodos
Uso en crontab No
Variables DBS – Columna 23 del archivo modsec_audit.log
utilizadas: Host – Hostname
SUBJECT – Asunto del correo a enviar
TEMPFILE – Variable de archive temporal
Uso esperado: El programa debería crear un archivo llamado mosecurity.txt y
enviar un e-mail a los administradores de sistemas
operaciones@powerhost.cl

Resultado: No funciona

Observaciones: Este script se incompleto incompleto ya que filtrar los Stopwatch


que comienzan por 65000*
20) Serverinfo.pm
Nombre script: hora.sh
Líneas: 582
Descripción:
Funciones / 
Métodos
Uso en crontab
Variables
utilizadas:
Uso esperado:
Resultado 1:

Resultado 2:

Resultado 3:

Observaciones: Se sustituyo /root/powerhost/.envios3 por


La siguiente línea:
/root/powerhost/.envios
21) config.sh
Nombre script: config.sh
Líneas: 582
Descripción:
Nuevo nombre
Funciones / 
Métodos
Uso en crontab
Variables
utilizadas:
Uso esperado:
Resultado 1:

Resultado 2:

Resultado 3:

Observaciones: Se sustituyo /root/powerhost/.envios3 por


La siguiente línea:
/root/powerhost/.envios
22) mejor.sh
Nombre script: mejor.sh
Líneas: 284
Descripción: Este programa se encarga de verificar los archivos de extensión .pl,
sh y gcc fueron ejecutados o encontrados en la carpeta /tmp.
Nuevo nombre verificar-scripts.sh
Funciones / Programa completo
Métodos
Uso en crontab * * * * * root sh /root/powerhost/mejor.sh
Variables ROOTBADSCRIPTS – Variable de archive badperlscripts
utilizadas: EMAILLOG - Variable de archive emailperlscriptlog
LOAD - Carga actual del sistema /proc/loadavg
HOST – Nombre de la maquina
TIME - Resultado de la variable date
Kernel – Versión del kernel
ADMINEMAILS- Correo de administradores
Uso esperado: El programa debería crear un archivo llamado emailperlscriptlog.txt
y enviar un e-mail a los administradores de sistemas
operaciones@powerhost.cl

Resultado: Este script para detectar cualquier archivo extraño que indique
una intrusión, Debería mostrar los siguientes mensajes:
"Los archivos fueron detectados a las
"La carga actual del servidor es:
"Version del kernel: $kernel "
"Uptime de la maquina: "
"Usuarios conectado a la maquina: "
"Procesos perl funcionando actualmente en el servidor:"
"Procesos sh funcionando actualmente en el servidor:"
"Procesos gcc funcionando actualmente en el servidor:"

Observaciones: Este script no puede utilizarse en un servidor en producción o en


pleno funcionamiento sin antes notificar a los usuarios del servicio
de hosting compartido.
23) semanal.sh
Nombre semanal.sh
script:
Líneas: 36
Descripció Este programa se encarga de generar un reporte semanal de los archivos. php
n: de apariencia sospechosa dentro del servidor.
Nuevo revisar-php.sh
nombre
Funciones Programa completo
/
Métodos
Uso en 0 22 * * 5 root sh /root/powerhost/semanal.sh>/dev/null 2>&1
crontab
Variables envío – Variable de archive envio-semanal.txt
utilizadas: DBS – Listas de archivos encontrados en el sistema

mcUso El programa debería crear un archivo llamado envio-semanal.txt y enviar un e-


esperado: mail a los administradores de sistemas operaciones@powerhost.cl

Resultado Los siguientes archivos fueron detectados:


:
/home/agustina/public_html/gymvipbody/vendor/zendframework/zendxml/te
sts/ZendXmlTest/MultibyteTest.php
/home/ajax/public_html/openflex/chat/track.php
/home/ajax/public_html/openflex/chat/_lib/functions.global.inc.php
/home/ajax/public_html/openflex/chat/chat.php
/home/ajax/public_html/openflex/chat/_definitions/definitions.inc.php
/home/ajax/public_html/openflex/chat/extern.php

Observaci La duración de ejecución del script puede demorar si el filesystem es muy


ones: grande por lo que se recomienda ejecutarlo en horas de la medianoche.
24) bloqueo.sh
Nombre script: bloqueo.sh
Líneas: 11
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos server_bloqueo

Nuevo nombre bloquear-direcciones-ip.sh


Funciones / Programa Completo
Métodos
Uso en crontab */2 * * * * root sh /root/powerhost/bloqueo.sh>/dev/null 2>&1
Variables dbase – Variable para conexión de mysql y listar bloqueosq
utilizadas:
Uso esperado: El programa debería crear un archivo logbloqueo el cual sera leído
por un ciclo iterativo para insertar reglas INPUT y OUTPUT

Resultado: mysql> use server_bloqueo; select * from ip;


Database changed
Empty set (0.00 sec)

mysql>
Observaciones: Este script no genera una notificación por e-mail
25) ssh-protection.sh
Nombre script: ssh-protection.sh
Líneas: 406
Descripción: Este programa se encarga notificar las instrucciones sobre la edición
del archivo sshd_config y agregar los AllowUsers.

Funciones / Programa Completo


Métodos
Uso en crontab Si
Variables DBS
utilizadas: Host
Asunto
TEMPFILE1

Uso esperado: El programa debería crear un archivo

Resultado: No funciona

Observaciones: Este script no genera una notificacion

pwd
26) menu.sh
Nombre script: ssh-protection.sh
Líneas: 406
Descripción: Este programa se encarga notificar las instrucciones sobre la edición
del archivo sshd_config y agregar los AllowUsers.

Funciones / Programa Completo


Métodos
Uso en crontab Si
Variables DBS
utilizadas: Host
Asunto
TEMPFILE1

Uso esperado: El programa debería crear un archivo

Resultado: No funciona

Observaciones: Este script no genera una notificacion

pwd
27) compartido.sh
Nombre script: compartido.sh
Líneas: 371
Descripción: Este programa se encarga de enviar señales de encendido para
servidores compartidos con ether-wake y ping.

Funciones / Programa Completo


Métodos
Uso en crontab No
Variables Opción – opción de selección de menu
utilizadas:
Uso esperado: El programa debería mostrar un menú principal con 33 opciones de
servidores desde power49 hasta power88.

Resultado: Men▒
----
1. Encender power49.powerhost.cl.
2. Encender power50.powerhost.cl.
3. Encender power51.powerhost.cl.
4. Encender power52.powerhost.cl.
5. Encender power53.powerhost.cl.
6. Encender power54.powerhost.cl.
7. Encender power56.powerhost.cl.
8. Encender power57.powerhost.cl.
9. Encender power59.powerhost.cl.
10. Encender power60.powerhost.cl.
11. Encender power61.powerhost.cl.
12. Encender power62.powerhost.cl.
13. Encender power63.powerhost.cl.
14. Encender power64.powerhost.cl.
15. Encender power65.powerhost.cl.
16. Encender power66.powerhost.cl.
17. Encender power70.powerhost.cl.
18. Encender power71.powerhost.cl.
19. Encender power73.powerhost.cl.
20. Encender power74.powerhost.cl.
21. Encender power76.powerhost.cl.
27) compartido.sh
22. Encender power77.powerhost.cl.
23. Encender power78.powerhost.cl.
24. Encender power79.powerhost.cl.
25. Encender power80.powerhost.cl.
26. Encender power81.powerhost.cl.
27. Encender power82.powerhost.cl.
28. Encender power83.powerhost.cl.
29. Encender power85.powerhost.cl.
30. Encender power86.powerhost.cl. No soporta wake on lan
31. Encender power87.powerhost.cl.
32. Encender power88.powerhost.cl.
33. Encender backups.powerhost.cl.
0. Salir.

Elige una opci▒n:


Observaciones: Este script no debería utilizase si el servidor ya esta encendido.
28) suspendidas.sh
Nombre suspendidas.sh
script:
Líneas: 30
Descripción Este programa se encarga de verificar los dominios suspendidos en
: CPanel.
Nuevo verificar-suspendidas.sh
nombre
Funciones / Programa completo
Métodos
Uso en 0 22 * * 5 root sh /root/powerhost/suspendidas.sh>/dev/null 2>&1
crontab
Variables DBS – Busqueda de dominios en /var/cpanel/suspended
utilizadas: Host – nombre de hostname
Asunto – Asunto del email
TEMPFILE – almacena el archivo llamado cuentas-suspendidas.txt
Uso El programa debería crear un archivo llamado cuentas-suspendidas.txt y
esperado: enviar un e-mail a los administradores de sistemas
operaciones@powerhost.cl

Resultado: [root@power55 powerhost]# cat logs-scripts-powerhost/cuentas-


suspendidas.txt
************************************************************
*****************
Los siguientes usuarios llevan mas de 10 dias suspendidos:
montague
transcep
b2bchile

Observacio Se sustituyó la línea de código:


nes: mail -s "$Asunto" $(/bin/cat -- /root/powerhost/.info) < $TEMPFILE
Por la siguiente:
mail -s "$Asunto" $(/bin/cat -- /root/powerhost/.envios) < $TEMPFILE
29) backup.sh
Nombre script: bloqueo.sh
Líneas: 11
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos server_bloqueo

Nuevo nombre bloquear-direcciones-ip.sh


Funciones / Programa Completo
Métodos
Uso en crontab */2 * * * * root sh /root/powerhost/bloqueo.sh>/dev/null 2>&1
Variables dbase – Variable para conexión de mysql y listar bloqueosq
utilizadas:
Uso esperado: El programa debería crear un archivo logbloqueo el cual sera leído
por un ciclo iterativo para insertar reglas INPUT y OUTPUT

Resultado: mysql> use server_bloqueo; select * from ip;


Database changed
Empty set (0.00 sec)

mysql>
Observaciones: Este script no genera una notificación por e-mail
30) ip.sh
Nombre script: ip.sh
Líneas: 11
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos del servidor power77.powerhost.cl utilizando el CSF.

Nuevo nombre ip.sh (Obsoleto)


Funciones / Programa Completo
Métodos
Uso en crontab */3 * * * * root sh /root/powerhost/ip.sh>/dev/null 2>&1
Variables dbase – Variable para conexión de mysql y listar bloqueosq
utilizadas:
Uso esperado: El programa debería conectarse a la base de datos MySQL listando
las IP y luego aplicando un CSF por cada IP listada.

Resultado: dbase=`mysql -hpower77.powerhost.cl -userver_fire2 -


pQvxwdXJdB9[V -e"use server_fire; select * from ip ;"`
for data in $dbase ;
do
/usr/sbin/csf -a $data
done
Observaciones: Este script no genera una notificación por e-mail
31) blacklist.sh
Nombre script: blacklist.sh
Líneas: 11
Descripción: Este programa se encarga bloquear las IP que se encuentran en la
base de datos server_bloqueo

Nuevo nombre lista-negra.sh


Funciones / Programa Completo
Métodos
Uso en crontab 0 21 * * * root sh /root/powerhost/blacklist.sh>/dev/null 2>&1
Variables dbase – Variable para conexión de mysql y listar bloqueosq
utilizadas:
Uso esperado: El programa debería crear un archivo logbloqueo el cual sera leído
por un ciclo iterativo para insertar reglas INPUT y OUTPUT

Resultado: #!/bin/bash
#Powerhost.cl
rm -rf /root/powerhost/ipbloqueadas.sh
wget -q -O /root/powerhost/ipbloqueadas.sh
http://www.powerhost.cl/javier/new/ipbloqueadas.txt
chmod +x /root/powerhost/ipbloqueadas.sh
sh /root/powerhost/ipbloqueadas.sh
rm -rf /root/ipbloqueadas.sh
Observaciones: Este script no genera una notificación por e-mail
32) lista.sh
Nombre script: lista.sh
Líneas: 39
Descripción: Este programa se encarga de capturar el espacio /home, las
cuentas, dominios suspendidos a través de una conexión a MySQL.
Nuevo nombre lista-negra.sh
Funciones / Programa Completo
Métodos
Uso en crontab 0 21 * * * root sh /root/powerhost/blacklist.sh>/dev/null 2>&1
Variables dbase – Variable para conexión de mysql y listar bloqueosq
utilizadas:
Uso esperado: El programa debería crear un archivo logbloqueo el cual sera leído
por un ciclo iterativo para insertar reglas INPUT y OUTPUT

Resultado: #Aqui captura las cuentas en el servidor


cuentas=`ls /var/cpanel/users | wc -l`
suspendidas=`ls /var/cpanel/suspended| wc -l`
#Con esto se conecta al servidor mysql
HOST="power77.powerhost.cl "
USERB="esteban_lista"
PASS="NawOihk98"
BD="esteban_lista"
ARGS="-h $HOST -u $USERB -p$PASS -D $BD -s -e"

rm -rf /var/cpanel/suspended/*.lock
#aqui vacia la tabla antes de insertar datos
dbase=`mysql -h $HOST -u esteban_lista -pNawOihk98 -e"use
esteban_lista; TRUNCATE TABLE $base ;"`

#aqui inserta las cuentas del servidor y las cuentas suspendidas la


base de datos
mysql $ARGS "insert into $base ($base, suspendidas,uso,libre)
values ('$cuentas','$suspendidas','$uso','$libre')"
Observaciones: Este script no genera una notificación por e-mail

You might also like