LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Monitis ofrece la posibilidad de controlar casi cualquier operación en
el servidor. Usando simples herramientas de Linux y scripts es capaz de
controlar cada vez que un usuario inicia sesión en el servidor y
captura de información, incluido la dirección de host nombre de
usuario, y el servicio de inicio de sesión. El uso de scripts
pam_script y bash, que son capaces de transmitir información a un
monitor personalizado con esta información.
La primera cosa que usted necesita para crear este monitor es la clave de API Monitis y clave secreta. La clave de API es un código alfanumérico que le permite acceder a la API Monitis url y transmitir o recibir datos sobre sus servicios Monitis. La clave secreta es un código alfanumérico que le permite firmar digitalmente la información para garantizar que sólo se puede transmitir datos a su cuenta Monitis. Su clave de API puede ser revelada a algunas personas, pero la clave secreta debe ser mantenida en secreto y no se debe compartir ni transmitir. Para obtener su clave de API Monitis y clave secreta, acceda a su cuenta y de la barra de menú superior, vaya a Herramientas y luego entonces API-> API Key, se mostrará tanto la clave de la API y su clave secreta. Ahora vamos a probar el acceso a la API. Usted debe ser capaz de conectarse y obtener un token de autenticación:
En el comando anterior se debe reemplazar [API Key] y [Clave secreta] con su clave de API y la clave secreta. Estamos utilizando curl con el fin de conectarse a http://www.monitis.com y acceder a la API para obtener un token de autenticación. El valor de retorno es JSON y devuelve algo similar a:
Cuando el código alfanumérico que será su token de autenticación. Usted puede utilizar su token de autenticación a validar con la API más tarde. Sin embargo, el envío de su clave secreta no es muy seguro, los demás podrían obtener su clave secreta de esta manera. El método más seguro de autenticación es el envío de sus datos mediante POST y GET en lugar de utilizar un RFC Base64 2104-compatible con la firma HMAC para firmar los datos enviados. La firma se envía en el parámetro de control de los datos POST. Para calcular la suma de comprobación que deben seguir estas reglas:
ordenar todos los parámetros en orden alfabético por el nombre (sin el parámetro de control)
concat todos los nombres de los parámetros y valores de esta manera: name1value1name2value2 ...
crear Base64 RFC 2104-compatible con la firma HMAC con clave secreta
La regla final se puede calcular usando openssl:
Con el fin de crear un monitor, usted debe enviar una petición POST a la API. Esta petición POST debe contener varios parámetros: la acción, el nombre, resultsParams, y la etiqueta (ver especificaciones en http://monitis.com/api/api.html#addCustomMonitor ). Vamos a utilizar las siguientes especificaciones para los parametros:
action=addMonitor
name=Login Monitor
resultsParam=user_login:Login Name:logins:3;host:Host Address:hostaddress:3;srv:Service:service:3
tag=loginMonitor
Hay otro tipo de información necesaria para comunicarse con la API:
apikey=[API Key]
timestamp=[Current UTC time]
version=2
Con el fin de crear nuestro nuevo monitor llamado "Monitor de sesión" que utilizaría estos datos, más una suma de comprobación para http://monitis.com/customMonitorApi que es el monitor personalizado url API. Aquí un simple script que lo hará:
-----------Inicio Scripts-----------
Guarde el script en un archivo llamado monitis_create_monitor.sh, asegúrese de no cambiar el orden de las variables en el cálculo de suma de comprobación, ya que deben estar en orden alfabético. Asegúrese de hacer este fichero ejecutable:
Ahora ejecute:
La salida debe ser similar a esta:
Esto nos muestra que el monitor se ha creado correctamente y que el id de la pantalla resultante es 305. Si usted va a su cuenta Monitis ahora, usted podrá tener acceso a este monitor. Desde el menú principal, vaya a continuación, en Administrar Monitores -> Monitores y Custom Monitors. Aquí usted debe encontrar el monitor de inicio de sesión. Haga clic en la casilla de verificación junto al título y haga clic en Agregar a la ventana. Una ventana se abrirá a continuación el cuadro de diálogo Custom Monitors. Cierre el cuadro de diálogo de Monitores y verá el nuevo monitor allí. Sin embargo, no se le ha enviado algo.
El siguiente script enviar los datos al monitor de su encargo:
-----------Inicio Scripts-----------
-----------Fin de Scripts-----------
PAM ofrece muchas opciones y módulos, que se utiliza un módulo llamado
pam_script ya está instalado, pero no configurado. Hay tres archivos asociados con pam_script,
-----------Inicio Scripts-----------
-----------Fin de Scripts-----------
Este script
Ahora tenemos que configurar PAM para utilizar el módulo de pam_script. Dependiendo de su sistema esto puede variar, pero hay que editar el archivo
Aquí le estamos diciendo módulo que se ejecute como root y exponer la variable rhost, que contendrá la información del host remoto que utilizamos en la secuencia anterior con la variable $PAM_RHOST
API de acceso
La primera cosa que usted necesita para crear este monitor es la clave de API Monitis y clave secreta. La clave de API es un código alfanumérico que le permite acceder a la API Monitis url y transmitir o recibir datos sobre sus servicios Monitis. La clave secreta es un código alfanumérico que le permite firmar digitalmente la información para garantizar que sólo se puede transmitir datos a su cuenta Monitis. Su clave de API puede ser revelada a algunas personas, pero la clave secreta debe ser mantenida en secreto y no se debe compartir ni transmitir. Para obtener su clave de API Monitis y clave secreta, acceda a su cuenta y de la barra de menú superior, vaya a Herramientas y luego entonces API-> API Key, se mostrará tanto la clave de la API y su clave secreta. Ahora vamos a probar el acceso a la API. Usted debe ser capaz de conectarse y obtener un token de autenticación:
curl 'http://www.monitis.com/api?action=authToken&apikey=[API
Key]&secretkey=[Secret Key]&version=2'
En el comando anterior se debe reemplazar [API Key] y [Clave secreta] con su clave de API y la clave secreta. Estamos utilizando curl con el fin de conectarse a http://www.monitis.com y acceder a la API para obtener un token de autenticación. El valor de retorno es JSON y devuelve algo similar a:
{"authToken":"3TVQN32TIP1DN71OB4GOML1D7N"}
Cuando el código alfanumérico que será su token de autenticación. Usted puede utilizar su token de autenticación a validar con la API más tarde. Sin embargo, el envío de su clave secreta no es muy seguro, los demás podrían obtener su clave secreta de esta manera. El método más seguro de autenticación es el envío de sus datos mediante POST y GET en lugar de utilizar un RFC Base64 2104-compatible con la firma HMAC para firmar los datos enviados. La firma se envía en el parámetro de control de los datos POST. Para calcular la suma de comprobación que deben seguir estas reglas:
ordenar todos los parámetros en orden alfabético por el nombre (sin el parámetro de control)
concat todos los nombres de los parámetros y valores de esta manera: name1value1name2value2 ...
crear Base64 RFC 2104-compatible con la firma HMAC con clave secreta
La regla final se puede calcular usando openssl:
echo -en “name1value1name2value2” | openssl dgst -sha1 -hmac
[Secret Key] -binary | openssl enc -base64
Creación de un monitor personalizado
Con el fin de crear un monitor, usted debe enviar una petición POST a la API. Esta petición POST debe contener varios parámetros: la acción, el nombre, resultsParams, y la etiqueta (ver especificaciones en http://monitis.com/api/api.html#addCustomMonitor ). Vamos a utilizar las siguientes especificaciones para los parametros:
action=addMonitor
name=Login Monitor
resultsParam=user_login:Login Name:logins:3;host:Host Address:hostaddress:3;srv:Service:service:3
tag=loginMonitor
Hay otro tipo de información necesaria para comunicarse con la API:
apikey=[API Key]
timestamp=[Current UTC time]
version=2
Con el fin de crear nuestro nuevo monitor llamado "Monitor de sesión" que utilizaría estos datos, más una suma de comprobación para http://monitis.com/customMonitorApi que es el monitor personalizado url API. Aquí un simple script que lo hará:
-----------Inicio Scripts-----------
#!/bin/bash
# create a Custom Monitor for Monitis
# Be sure to modify the API Key and Secret Key
ACTION="addMonitor"
APIKEY="[API Key]"
NAME="login monitor"
RESULTPARAMS="user_login:Login Name:logins:3;host:Host
Address:hostaddress:3;srv:Service:service:3"
TAG="loginMonitor"
TIMESTAMP=`date -u +"%F %T"`
VERSION="2"
SECRETKEY="[Secret Key]"
URL="http://monitis.com/customMonitorApi"
# Create Checksum
CHECKSUM_STR="action"$ACTION"apikey"$APIKEY"name"$NAME"resultParams"$RESULTPARAMS"tag"$
TAG"timestamp"$TIMESTAMP"version"$VERSION
CHECKSUM=$(echo -en $CHECKSUM_STR | openssl dgst -sha1 -hmac $SECRETKEY
-binary | openssl enc -base64 )
# Post Data to API
POSTDATA="--data-urlencode "action="$ACTION"" --data-urlencode
"apikey="$APIKEY"" --data-urlencode "name="$NAME"" --data-urlencode
"resultParams="$RESULTPARAMS"" --data-urlencode "tag="$TAG""
--data-urlencode "timestamp=$TIMESTAMP" --data-urlencode
"version="$VERSION"" --data-urlencode "checksum="$CHECKSUM"""
eval "curl ${POSTDATA} $URL"
-----------Fin Scripts-----------Guarde el script en un archivo llamado monitis_create_monitor.sh, asegúrese de no cambiar el orden de las variables en el cálculo de suma de comprobación, ya que deben estar en orden alfabético. Asegúrese de hacer este fichero ejecutable:
chmod 755 monitis_create_monitor.sh
Ahora ejecute:
./monitis_create_monitor.sh
La salida debe ser similar a esta:
{"status":"ok","data":305}
Esto nos muestra que el monitor se ha creado correctamente y que el id de la pantalla resultante es 305. Si usted va a su cuenta Monitis ahora, usted podrá tener acceso a este monitor. Desde el menú principal, vaya a continuación, en Administrar Monitores -> Monitores y Custom Monitors. Aquí usted debe encontrar el monitor de inicio de sesión. Haga clic en la casilla de verificación junto al título y haga clic en Agregar a la ventana. Una ventana se abrirá a continuación el cuadro de diálogo Custom Monitors. Cierre el cuadro de diálogo de Monitores y verá el nuevo monitor allí. Sin embargo, no se le ha enviado algo.
El envío de datos al monitor personalizado
Con el fin de enviar información a su monitor de encargo, usted debe proporcionar la acción, monitorId, checktime, y los resultados (ver especificaciones en http://monitis.com/api/api.html#addCustomMonitorResult ). La acción es addResult, el monitorId es el id que fue devuelto a nosotros en el ejemplo anterior (si se le olvidó la ID, no te preocupes vuelvalo a hacer), el checktime es la fecha y hora de los datos de los resultados, y los resultados es una cadena de los parámetros y los valores en este formato: name1value1; name2value2El siguiente script enviar los datos al monitor de su encargo:
-----------Inicio Scripts-----------
# add result to Custom Monitor for Monitis
#!/bin/bash
usage()
{
cat << EOF
usage: $0 options
This script will add results to a Custom Monitis Monitor.
OPTIONS:
-h Show this message
-a api key
-s secret key
-m monitor tag
-i monitor id
-t timestamp (defaults to utc now)
-r results name:value[;name2:value2...]
EOF
}
APIKEY=
VERSION="2"
SECRETKEY=
URL="http://monitis.com/customMonitorApi"
OUTPUT="xml"
MONITOR=
ID=
CHECKTIME=`date -u +"%s"000`
TIMESTAMP=`date -u +"%F %T"`
RESULTS=
SESSIONACTION=
while getopts "ha:s:m:i:t:r:s:" OPTION
do
case $OPTION in
h)
usage
exit 1
;;
a)
APIKEY=$OPTARG
;;
s)
SECRETKEY=$OPTARG
;;
m)
MONITOR=$OPTARG
;;
i)
ID=$OPTARG
;;
t)
CHECKTIME=$OPTARG
;;
r)
RESULTS=$OPTARG
;;
esac
done
if [[ -z $APIKEY ]] || [[ -z $SECRETKEY ]] || [[ -z $MONITOR$ID ]] ||
[[ -z $RESULTS ]] || [[ -z $CHECKTIME ]]
then
usage
exit 1
fi
# Get id of monitor if not provided
if [[ -z $ID ]]
then
XMLID=$(curl -s
"$URL?apikey=$APIKEY&output=$OUTPUT&version=$VERSION&action=getMonitors&tag=$MONITOR"
| xpath -q -e /monitors/monitor/id)
ID=${XMLID//[^0-9]/}
fi
# Add monitor result
ACTION="addResult"
# Create Checksum
CHECKSUM_STR="action"$ACTION"apikey"$APIKEY"checktime"$CHECKTIME"monitorId"$ID"results"$
RESULTS"timestamp"$TIMESTAMP"version"$VERSION
CHECKSUM=$(echo -en $CHECKSUM_STR | openssl dgst -sha1 -hmac $SECRETKEY
-binary | openssl enc -base64 )
# Post Data to API
POSTDATA="--data-urlencode "action="$ACTION"" --data-urlencode
"apikey="$APIKEY"" --data-urlencode "checktime="$CHECKTIME""
--data-urlencode "monitorId="$ID"" --data-urlencode
"results="$RESULTS"" --data-urlencode "timestamp=$TIMESTAMP"
--data-urlencode "version="$VERSION"" --data-urlencode
"checksum="$CHECKSUM"""
eval "curl ${POSTDATA} $URL"
-----------Fin de Scripts-----------
Captura de información en Inicio de sesión
Ahora que tenemos un script para enviar los datos al monitor personalizado, es necesario contar con datos para enviar. Este script podría ejecutarse desde.bashrc
o en /etc/bashrc
-. Ya que funcionan bien, si supiéramos que no hay ningún usuario que
pudiera eliminar sus .bashrc.
Puesto que no podemos
garantizar que vayamos a utilizar PAM (Pluggable Authentication Module)
para controlar cómo y cuándo enviar la información al monitor
personalizado. Ya que ningún usuario sin acceso root será capaz de
alterar PAM, esta es una manera segura de garantizar la información de
acceso. También desde sshd, SFTP, FTP, y la mayoría de otros programas
utilizan PAM para la autenticación, este controlará todos los accesos
al servidor, no sólo los inicios de sesión de shell.PAM ofrece muchas opciones y módulos, que se utiliza un módulo llamado
pam_script
.
pam_script
le permite ejecutar un script en el inicio de
sesión, cerrar la sesión, y/o autorizaciones. Usted debe descargar e
instalar pam_script
primero:wget 'http://freshmeat.net/urls/47ddad89e38001dbe0dc50424e36987b'
-O libpam-script.tar.gz
tar -xzvf libpam-script.tar.gz
cd libpam-script-x.x.x #x.x.x is the version that you just download,
apparent from tar output
make
sudo cp pam_script.so /lib/security/
sudo chown root:root /lib/security/pam_script.so
sudo chmod 755 /lib/security/pam_script.so
pam_script ya está instalado, pero no configurado. Hay tres archivos asociados con pam_script,
/etc/security/onsessionopen
el
fichero /etc/security/onsessionclose
y /etc/security/onauth
Los dos primeros archivos de trabajo en una sesión y el último será el
trabajo para una autenticación exitosa. Dado que queremos controlar
auths, vamos a crear el archivo onauth:-----------Inicio Scripts-----------
#!/bin/sh
# onauth for Monitis Custom Login Monitor
USER=$1
SERVICE=$2
HOST=$PAM_RHOST
/etc/security/monitis_add_data.sh -m loginMonitor -r
"user_login:$USER;host:$HOST;srv:$SERVICE"
-----------Fin de Scripts-----------
Este script
monitis_add_data.sh
, será necesario moverlo
a /etc/security
y hacer el script ejecutable y onauth por
root y se propietario de root:sudo mv monitis_add_data.sh /etc/security
sudo chmod 700 /etc/security/monitis_add_data.sh
sudo chown root:root /etc/security/monitis_add_data.sh
sudo chmod 700 /etc/security/onauth
sudo chown root:root /etc/security/onauth
Ahora tenemos que configurar PAM para utilizar el módulo de pam_script. Dependiendo de su sistema esto puede variar, pero hay que editar el archivo
/etc/pam.d/common-auth
o algo similar en el
sistema. Usted debe agregar la siguiente línea:# require the scripts to run at auth
auth required pam_script.so runas=root expose=rhost
Aquí le estamos diciendo módulo que se ejecute como root y exponer la variable rhost, que contendrá la información del host remoto que utilizamos en la secuencia anterior con la variable $PAM_RHOST
Prueba del monitor
Ahora tenemos una configuración que registra todos los nombres de usuario, hosts remotos, y el servicio se registra en nuestro Custom Monitor. Inténtelo, SSH a tu máquina varias veces. Usted verá los valores aparecen en su cuenta del Custom Monitor.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros