Agcapa

programador web

Categoría: Linux (página 1 de 5)

Aumentar la swap en GNU/Linux

En algunas ocasiones es necesario que nuestro GNU/Linux tenga mas swap, ya sea porque tiene mas aplicaciones o lo que fuese, entonces lo que podemos hacer es aumentar el tamaño de la swap, antes de empezar comprobamos cuanto de swap tenemos con el siguiente comando:

# grep SwapTotal /proc/meminfo
SwapTotal:     2096440 kB

Ahora empezemos a asiganrle mas swap, para ello creamos un archivo con el comnado dd, dicho archivo actuara como swap, claro seria recomendable tener una particion, pero bueno asumimos que ya no tenemos mas particiones.

# dd if=/dev/zero of=/mnt/swap_extra bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2,1 GB) copied, 25,3026 seconds, 84,9 MB/s

Donde:

  • count -> define el tamaño del fichero
  • bs -> define el tamaño del bloque

Hemos creado un archivo de 2GB dentro del directorio /mnt, ahora modificamos los permisos

# chmod 600 /mnt/swap_extra

Formateamos el fichero swap_extra para que actue como swap

# mkswap /mnt/swap_extra
Configurando espacio de intercambio versión 1, tamaño = 2147479 kB

Ahora solo nos queda activarlo

# swapon /mnt/swap_extra

SI quisiremoas desactivarlo simplemente ejecutamos

# swapoff /mnt/swap_extra

Ahora debemos editar el fstab para que cuando la maquina se inicie carge la swap adicional, para ello agregamos  al final del archivo lo siguiente:

/mnt/swap_extra         none                    swap    sw              0 0

Con esto ya tenemos 2GB mas de swap … y lo verificamos con el comando

siguiente

# grep SwapTotal /proc/meminfo
SwapTotal:     4193584 kB

Linux: Listar procesos por % cpu o uso de memoria

Con estas dos secuencias de comandos podréis ver de un modo rápido y sencillo los procesos ordenados por uso (%) de CPU y memoria. Por supuesto no es necesario (ni práctico) escribir el comando completo en la shell cada vez que lo queráis ejecutar, os recomiendo crear un alias específico para cada uno de ellos.

Listar procesos por % cpu, veréis que eliminamos aquellos que usan 0.0 de CPU con sed (sed ‘/^ 0.0 /d):

ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'

Ejemplo:

$ ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'
%CPU CPU  NI S     TIME COMMAND
0.2   -   0 S 00:00:24 metacity
0.2   -   0 S 00:00:00 /usr/bin/python /usr/bin/terminator
0.2   -   0 S 00:00:28 gnome-screensaver
0.2   -   0 S 00:00:31 gnome-panel
4.6   -   0 S 00:08:23 /usr/bin/pulseaudio --start
7.4   -   0 S 00:13:24 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
7.5   -   0 S 00:04:31 rhythmbox
14.4   -   0 S 00:08:50 /usr/lib/firefox-3.5.4/firefox-3.5

Listar procesos por uso de memoria (en KB):

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS

Ejemplo (reducido):

$ ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS
23964 gnome-panel
26168 nautilus
26256 /usr/bin/python /usr/bin/terminator
58340 /usr/X11R6/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
58728 rhythmbox
128736 /usr/lib/firefox-3.5.4/firefox-3.5

Archivos de configuración y registros de servicios de Parallels Plesk para Linux

APLICABLE A:

  • Plesk for Linux/Unix

Notas de la versión

En este artículo se proporciona información relacionada con los servicios con los que interactúa Parallels Plesk. A continuación se muestran las ubicaciones de los archivos de registro y la configuración de estos servicios, lo que puede resultar útil para la resolución de incidencias.

Consulte la versión previa de este artículo:

  • 122458 Archivos de configuración y registros de servicios de Parallels Plesk para Linux (Plesk 11.5)

Servicios

Panel de control

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log y /var/log/sw-cp-server/sw-engine.log
    • Registro de accesos: /usr/local/psa/admin/logs/httpsd_access_log
    • Registro de Plesk: /usr/local/psa/admin/logs/panel.log
  • Servicios
    • Detener: /etc/init.d/psa stop
    • Iniciar: /etc/init.d/psa start
    • Reiniciar: /etc/init.d/psa restart
  • Configuración
    • Configuración PHP: /usr/local/psa/admin/conf/php.ini
    • Configuración de Plesk: /usr/local/psa/admin/conf/panel.ini
    • Configuración del servidor web: /etc/sw-cp-server/conf.d/plesk.conf

Web Presence Builder

  • Registros
    • Registro de errores: /usr/local/psa/admin/logs/sitebuilder.log
    • Registros de instalación o actualización: /usr/local/sb/tmp/
  • Ningún control del servicio (operando mediante el servicio sw-cp-server)
  • Configuración
    • /usr/local/sb/config
    • /etc/sw-cp-server/conf.d/plesk.conf
    • /usr/local/psa/admin/conf/php.ini

SSO

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log
    • Registro de SSO: /var/log/sso/sso.log
  • Servicios
    • Ningún control del servicio (opera mediante el servicio sw-cp-server)
    • Configuración de gestión: /usr/local/psa/bin/sso
  • Configuración
    • /etc/sso/sso_config.ini
    • /etc/sw-cp-server/conf.d/sso.inc

Administrador de backups

  • Registros
    • Registros de backup: /usr/local/psa/PMM/logs/backup-<datetime>
    • Registro de restauraciones: /usr/local/psa/PMM/logs/restore-<datetime>
  • La funcionalidad es controlada por el servicio de panel de control de Plesk
  • Configuración
    • /etc/psa/psa.conf

Administrador de migraciones

  • Registros
    • /usr/local/psa/PMM/logs/migration-<datetime>
  • La funcionalidad es controlada por el servicio de panel de control de Plesk.

Administrador de Health Monitor (control de estado del servidor)

  • Registros
    • /usr/local/psa/admin/logs/health-alarm.log
  • Servicios
    • Detener: /etc/init.d/sw-collectd stop
    • Iniciar: /etc/init.d/sw-collectd start
    • Reiniciar: /etc/init.d/sw-collectd restart
  • Configuración
    • /usr/local/psa/admin/conf/health-config.xml
    • /usr/local/psa/var/custom-health-config.xml
    • /etc/sw-collectd/collectd.conf

Daemon de notificaciones de Health Monitor

  • Registros
    • /usr/local/psa/admin/logs/health-alarm.log
  • Servicios
    • Detener: /etc/init.d/psa-health-monitor-notificationd stop
    • Iniciar: /etc/init.d/psa-health-monitor-notificationd start
    • Reiniciar: /etc/init.d/psa-health-monitor-notificationd restart
  • Configuración
    • /usr/local/psa/admin/conf/health-config.xml
    • /usr/local/psa/var/custom-health-config.xml

MySQL

  • Registros
    • /var/log/mysqld.log
  • Servicios
    • Detener: /etc/init.d/mysqld stop
    • Iniciar: /etc/init.d/mysqld start
    • Reiniciar: /etc/init.d/mysqld restart
  • Configuración
    • /etc/my.cnf
    • /etc/mysql/my.cnf (Debian/Ubuntu)

PostgreSQL

  • Registros
    • /var/lib/pgsql/pgstartup.log
  • Servicios
    • Detener: /etc/init.d/postgresql stop
    • Iniciar: /etc/init.d/postgresql start
    • Reiniciar: /etc/init.d/postgresql restart
  • Configuración
    • /var/lib/pgsql/data/postgresql.conf

Apache

  • Registros
    • Registros de errores y acceso global: /var/log/httpd/
    • Registros de dominio: /var/www/vhosts/<domain>/logs
  • Servicios
    • Detener: /etc/init.d/httpd stop
    • Iniciar: /etc/init.d/httpd start
    • Reiniciar: /etc/init.d/httpd restart
  • Configuración
    • /etc/httpd/conf/httpd.conf
    • /etc/httpd/conf.d/zz010_psa_httpd.conf (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)
  • NOTA: En SuSE, Debian y Ubuntu, el servicio se denomina “apache2”. La ruta a estos registros es /var/log/apache2 y la ruta a sus archivos de configuración es /etc/apache2.

NGINX

  • Registros
    • Registro de errores: /var/log/nginx/error.log
    • Registro de accesos: /var/log/nginx/access.log
    • Registros de dominio: /var/www/vhosts/<domain>/logs/proxy_access*_log
  • Servicios
    • Detener: /etc/init.d/nginx stop
    • Iniciar: /etc/init.d/nginx start
    • Reiniciar: /etc/init.d/nginx restart
    • NOTA: Para desactivar nginx, vaya a "Herramientas y configuración > Administración de servicios" y detenga nginx desde allí.
  • Configuración
    • /etc/nginx/nginx.conf
    • /etc/nginx/conf.d/zz010_psa_nginx.conf (incluye los archivos de configuración generados con la configuración del servidor y del resto de hosts virtuales)

Tomcat

  • Registros
    • /var/log/tomcat5/*
  • Servicios
    • Detener: /etc/init.d/tomcat5 stop
    • Iniciar: /etc/init.d/tomcat5 start
    • Reiniciar: /etc/init.d/tomcat5 restart
  • Configuración
    • /etc/tomcat5/server.xml

FTP

  • Registros
    • /usr/local/psa/var/log/xferlog
    • /var/log/secure
  • Ningún control de servicios (opera mediante el servicio xinetd)
  • Configuración
    • /etc/xinetd.d/ftp_psa
    • /etc/proftpd.conf
    • /etc/proftpd.include

xinetd

  • Registros
    • /var/log/messages
  • Servicios
    • Detener: /etc/init.d/xinetd stop
    • Iniciar: /etc/init.d/xinetd start
    • Reiniciar: /etc/init.d/xinetd restart
  • Configuración
    • /etc/xinetd.conf
    • /etc/xinetd.d/* (se ignoran los archivos que contengan "." en el nombre)

BIND

  • Registros
    • /var/log/messages
  • Servicios
    • Detener: /etc/init.d/named stop
    • Iniciar: /etc/init.d/named start
    • Reiniciar: /etc/init.d/named restart
  • Configuración
    • /etc/named.conf
  • NOTA: En Debian y Ubuntu, el servicio se denomina "bind9."

Courier-IMAP

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/courier-imap stop
    • Iniciar: /etc/init.d/courier-imap start
    • Reiniciar: /etc/init.d/courier-imap restart
  • Configuración
    • /etc/courier-imap/imapd
    • /etc/courier-imap/imapd-ssl
    • /etc/courier-imap/pop3d
    • /etc/courier-imap/pop3d-ssl

Postfix

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/postfix stop
    • Iniciar: /etc/init.d/postfix start
    • Reiniciar: /etc/init.d/postfix restart
  • Configuración
    • /etc/postfix/master.cf
    • /etc/postfix/main.cf

Qmail

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/qmail stop
    • Iniciar: /etc/init.d/qmail start
    • Reiniciar: /etc/init.d/qmail restart
  • Configuración
    • Archivos de control en /var/qmail/control/
    • /etc/xinetd.d/smtp_psa
    • /etc/xinetd.d/smtps_psa
    • /etc/xinetd.d/submission_psa

Horde

  • Registros
    • Registro de errores: /var/log/psa-horde/psa-horde.log
  • Ningún control de servicios (opera mediante el servidor web Apache)
  • Configuración
    • /etc/psa-webmail/horde/horde.conf
    • /etc/psa-webmail/horde/horde/conf.php

Roundcube

  • Registros
    • Registro de errores: /var/log/plesk-roundcube/errors
  • Ningún control de servicios (opera mediante el servidor web Apache)
  • Configuración
    • /etc/psa-webmail/roundcube/*

Mailman

  • Registros
    • /var/log/mailman/*
  • Servicios
    • Detener: /etc/init.d/mailman stop
    • Iniciar: /etc/init.d/mailman start
    • Reiniciar: /etc/init.d/mailman restart
  • Configuración
    • /etc/httpd/conf.d/mailman.conf
    • /usr/lib/mailman/Mailman/mm_cfg.py
    • /etc/mailman/sitelist.cfg

SpamAssassin

  • Registros
    • /usr/local/psa/var/log/maillog
  • Servicios
    • Detener: /etc/init.d/spamassassin stop
    • Iniciar: /etc/init.d/spamassassin start
    • Reiniciar: /etc/init.d/spamassassin restart
  • Configuración
    • /etc/spamassassin/local.cf
    • /var/qmail/mailnames/<domain>/<mailbox>/.spamassassin/user_prefs

Parallels Premium Antivirus

  • Registros:
    • /usr/local/psa/var/log/maillog
    • /var/drweb/log/*
  • Control de servicios:
    • Detener: /etc/init.d/drwebd stop
    • Iniciar: /etc/init.d/drwebd start
    • Reiniciar: /etc/init.d/drwebd restart
  • Configuración:
    • /etc/drweb/*

Kaspersky antivirus

  • Registros:
    • /usr/local/psa/var/log/maillog
  • Control de servicios:
    • Detener: /etc/init.d/kavehost stop
    • Iniciar: /etc/init.d/kavehost start
    • Reiniciar: /etc/init.d/kavehost restart
  • Configuración:
    • /opt/kav/sdk8l3/etc/kav-handler.cfg
    • /etc/kavehost.xml

phpMyAdmin

  • Registros:
    • Registro de errores: /var/log/sw-cp-server/error_log
  • Ningún control del servicio (operando mediante el servicio sw-cp-server).
  • Configuración:
    • /usr/local/psa/admin/htdocs/domains/databases/phpMyAdmin/libraries/config.default.php

phpPGAdmin

  • Registros
    • Registro de errores: /var/log/sw-cp-server/error_log
  • Ningún control del servicio (operando mediante el servicio sw-cp-server).
  • Configuración:
    • /usr/local/psa/admin/htdocs/domains/databases/phpPgAdmin/conf/config.inc.php

Logrotate

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /usr/local/psa/etc/logrotate.conf
    • /usr/local/psa/etc/logrotate.d/*

Webalizer

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /srv/www/vhosts/system/<domain>/conf/webalizer.conf

AWstats

  • Ningún control de servicios. Ejecutado por la tarea diaria de mantenimiento: /etc/cron.daily/50plesk-daily
  • Configuración
    • /usr/local/psa/etc/awstats/awstats.<domain>-*.conf

Watchdog (monit)

  • Registros:
    • /usr/local/psa/var/modules/watchdog/log/wdcollect.log
    • /usr/local/psa/var/modules/watchdog/log/monit.log
  • Control de servicios:
    • Detener: /usr/local/psa/admin/bin/modules/watchdog/wd --stop
    • Iniciar: /usr/local/psa/admin/bin/modules/watchdog/wd --start
    • Reiniciar: /usr/local/psa/admin/bin/modules/watchdog/wd --restart
  • Configuración:
    • /usr/local/psa/etc/modules/watchdog/monitrc
    • /usr/local/psa/etc/modules/watchdog/wdcollect.inc.php

Watchdog (rkhunter)

  • Registros:
    • /var/log/rkhunter.log
  • Control de servicios:
    • Iniciar: /usr/local/psa/admin/bin/modules/watchdog/rkhunter
  • Configuración:
    • /usr/local/psa/etc/modules/watchdog/rkhunter.conf

Firewall de Plesk

  • Control de servicios:
    • Detener: /etc/init.d/psa-firewall stop
    • Iniciar: /etc/init.d/psa-firewall start
    • Reiniciar: /etc/init.d/psa-firewall restart
  • Configuración:
    • /usr/local/psa/var/modules/firewall/firewall-active.sh
    • /usr/local/psa/var/modules/firewall/firewall-emergency.sh
    • /usr/local/psa/var/modules/firewall/firewall-new.sh

Firewall de Plesk (Redireccionamiento de IP)

  • Control de servicios:
    • Detener: /etc/init.d/psa-firewall-forward stop
    • Iniciar: /etc/init.d/psa-firewall-forward start
    • Reiniciar: /etc/init.d/psa-firewall-forward restart
  • Configuración:
    • /usr/local/psa/var/modules/firewall/ip_forward.active
    • /usr/local/psa/var/modules/firewall/ip_forward.saved

Prohibición de direcciones IP (Fail2Ban)

  • Control de servicios:
    • Detener: /etc/init.d/fail2ban stop
    • Iniciar: /etc/init.d/fail2ban start
    • Reiniciar: /etc/init.d/fail2ban restart
  • Configuración: grupo de reglas IPTables, predeterminadas:-
    • iptables -N fail2ban-plesk-login
    • iptables -A fail2ban-plesk-login -j RETURN
    • iptables -A INPUT -p tcp -m multiport --dports 8880,8443 -j fail2ban-plesk-login

Varnish Nagios Performance Plugin

Varnish is a web application accelerator and sits in front of your web server. It speeds up your application by caching some, if not all of the content meaning it reduces the load on your web server and can reduce the load on you backend as less lookups will be needed by the frontend.

As varnish is the first thing users hit it is imperative it is working properly and you have statistics on how it is performing. This plugin can give you a better insight into how affectively varnish is running and tell you if its having problems.

You can download the latest version here:
check_varnish-v1.0.tar

Install

To use this plugin you need to have varnishstat installed which is installed by default when you install varnish.

Perl is also required for this plugin. If you don’t have Perl installed you can install in by running the command below

1 sudo apt-get install perl
2
3 or
4
5 sudo yum install perl

Now you can download the file above and extract it:

Now you should have a file “check_varnish.pl” make sure that it has execute permissions:

1 chmod u+x check_varnish.pl

You now need to copy this file to your nagios plugins folder. You should consult your nagios config to find out where this is. Mine was ‘/usr/lib/nagios/plugin’

1 mv check_varnish.pl /usr/lib/nagios/plugins/.

How To

check_varnish.pl – Monitor and report on varnish usage

check_varnish.pl [-c|–cache] [-b|–bin <varnishstatbinary>] [-d|–backend <total|ratio>] [-s|–stats <varnish statfield>]  [-t|–technique <lt|gt>] [-w|–warning <number>] [-c|–critical <number>] [-h|–help]

DESCRIPTION

This script will report on various varnish stats including: varnish cache hit ratio backend error count (Total or Ratio) Any other counter in varnishstat If no counters are required the script will ensure the varnish binary is running

OPTIONS

-a –cache – this will make the script output cache_hit ratio perfdata

-b –bin <varnishstat> – to specify a different location of the default varnishstat binary location. Default is ‘/usr/bin/varnishstat’

-d –backend <all|success|unhealthy|busy|fail|reuse|toolate|recycle|retry> – specify script to output backend data you can output ratio, total or both

-h –help – output this message

-w –warning <number> – specify the warning threshold. Required for cache and backend checks

-c –critical <number> – specify the critical threshold. Required for cache and backend checks

-s –stats <varnishstat field> – specify a comma separated list of all the stats you wish to check Critical and Warning can be specified and all values will be compared to these values.

-t –technique <lt|gt> – when specifying stats you can also specify what technique you wish to use to compare the values to the thresholds. specify lt for less than and gt for greater than. Default is gt

EXAMPLES

Check varnish is running

./check_varnish.pl

Check varnish Cache Hit Ratio and warn if ratio is below 0.8

./check_varnish.pl -a -w 0.8 -c 0.6

Check varnish Backends

./check_varnish.pl -d all

Check varnish client requests and drops

./check_varnish.pl -s client_drop,client_req

Nagios Set Up

Once you have run the command in the CLI and all is working you can add the command:

1 define command {
2 command_name                    check_varnish
3 command_line                    $USER1$/check_varnish.pl $ARG1$
4 register                        1
5 }

$USER1$ is your variable pointing to your nagios plugins folder and $ARG1$ are any command line arguments you specify in the service.

1 define service {
2 host_name                       localhost
3 service_description             Varnish
4 check_command                   check_varnish!--cache -w 0.6 -c 0.4
5 register                        1
6 }

The service above will give a warning if the hit ratio goes below 0.6 and critical if the ratio goes below 0.4

NRPE

The below is a line that can be used in the NRPE configuration for remote monitoring:

1 command[check_varnish_cache_hit]=/usr/lib/nagios/plugins/check_varnish.pl --cache -w 0.6 -c 0.4

The NRPE service could look like this:

1 define service {
2 host_name                  varnishserver
3 service_description             Varnish Cache Hit Ratio
4 check_command                   check_nrpe!check_varnish_cache_hit
5 register                        1
6 }

Cómo encontrar y reemplazar texto en varios archivos desde el terminal

En el siguiente ejemplo, usaremos sed para reemplazar todas las ocurrencias de la palabra “mongo” por la palabra “aurelio” en todos los archivos que tengan la extensión .txt y que se encuentren en la carpeta /home/usuario/micarpeta/.

find /home/usuario/micarpeta/ -name *.txt -exec sed -i "s/mongo/aurelio/g" {} ;

o
sed -i 's/Pepe/Jose/g' *.txt

script para cuando la memoria esta saturada

se genera un fichero, ejemplo memoria.sh y se le da permisos de escritura 755, luego generamos el crond para que lo haga cada minuto y cuando lo revisa resetea el apache, bajando la memoria

#!/bin/sh

DATE=`date ‘+%d%m%Y_%H%M%S’`
CONSUMO=`ps aux |grep Apache |awk ‘{SUM+=$4}END {print SUM}’`
UMBRAL=80
FLAG=/tmp/control_memoria.lock
if [[ -f $FLAG ]];then
logger -p ERROR  “[Monitor de Memoria Apache] Hay Otro proceso de monitor ejecutandose”
exit 0
fi

touch $FLAG

if [[  $CONSUMO -gt $UMBRAL ]];then

logger -p ERROR  “[Monitor de Memoria Apache] el consumo es superior a ${UMBRAL}% $CONSUMO”
/etc/init.d/httpd stop 2>/dev/null  |logger
sleep 15
/etc/init.d/httpd start 2>/dev/null  |logger
else

logger -p INFO “[Monitor de Memoria Apache] el consumo es inferior al ${UMBRAL}% $CONSUMO”
if [[ $CONSUMO -eq 0 ]];then
logger -p INFO “[Monitor de Memoria Apache] El consumo es igual a 0”
/etc/init.d/httpd stop 2>/dev/null  |logger
sleep 15
/etc/init.d/httpd start 2>/dev/null  |logger
fi
fi

rm $FLAG

Generar un CSR en SHA-1 o SHA-2

El certificado expedido depende del tipo de codificación asociada con la CSR.

De forma predeterminada, OpenSSL genera CSRs en SHA1, por lo que si usted desea conseguir un certificado SHA2, tendrás que añadir la opción -sha256 o -sha512 al comando openssl, tal como se describe a continuación.

Solicitud de certificado SHA-1

Para generar una CSR SHA-1 con OpenSSL, utilice el siguiente comando:

openssl req -nodes -newkey rsa:2048 -sha1 -keyout miservidor.key -out servidor.csr

Solicitud de certificado SHA-2

Para generar una CSR SHA2:

openssl req -nodes -newkey rsa:2048 -sha256 -keyout miservidor.key -out servidor.csr

Esta orden creará 2 ficheros: uno público de tipo .csr y uno privado de tipo .key, el cual convendrá mantener a buen recaudo.

Country Name (2 letter code) [AU]: ES
State or Province Name (full name) [Some-State]: .
Locality Name (eg, city) []: Barcelona
Organization Name (eg, company) [Internet Widgits Pty Ltd]: MiSociedad
Organizational Unit Name (eg, section) []: TIC
Common Name (eg, YOUR name) []: subdominio.dominio.tld
Email Address []:
A challenge password []: 
An optional company name []:

Los campos Email Address, optional company name y challenge password son facultativos.

subdominio.dominio.tld indica la dirección que quiere proteger.

La mejor manera de configurar su certificado para proteger el dominio con y sin las www (ej: ejemplo.com y www.ejemplo.com) es generar la CSR con sólo el dominio y no con el sub-dominio www. Al generar el CSR con sólo el dominio, el www está incluido implícitamente.

Se le solicitará el contenido del fichero CSR generado para la creación de su certificado.

Debe entrar en la ventana de administración de Gandi y ejecutar en su servidor:

cat miservidor.csr

copiar la salida del comando anterior, para después pegarla en la ventana de administración de Gandi.

En el caso de ser un certificado multi-direcciones (Wildcard), debe introducir en Common Name : *.dominio.tld
Atención: Un certificado multi-direcciones (Wildcard) protegerá todos los sub-dominios de segundo nivel, pero no será válido para los sub-dominios de nivel superior. El certificado SSL será válido para segundo.dominio.tld y cualquier otro sub-dominio distinto de ‘segundo’. Pero no será válido para tercero.segundo.dominio.tld

Cómo agregar una ruta estática a la tabla de enrutamiento

Cómo agregar una ruta estática a la tabla de enrutamiento

  1. Visualice el estado actual de la tabla de enrutamiento.

    Utilice su cuenta de usuario habitual para ejecutar el siguiente comando netstat:

    % netstat -rn
    

    Obtendrá un resultado similar al siguiente:

    Routing Table: IPv4
      Destination           Gateway           Flags  Ref   Use   Interface
    -------------------- -------------------- ----- ----- ------ ---------
    192.168.5.125        192.168.5.10          U      1   5879   ipge0
    224.0.0.0            198.168.5.10          U      1  0       ipge0
    default              192.168.5.10          UG     1  91908
    127.0.0.1            127.0.0.1             UH     1  811302   lo0
  2. Asuma el rol de administrador principal, o conviértase en superusuario.

    La función de administrador principal incluye el perfil de administrador principal. Para crear el rol y asignarlo a un usuario, consulte el Capítulo 2, Working With the Solaris Management Console (Tasks) de System Administration Guide: Basic Administration.

  3. (Opcional) Vacíe las entradas existentes en la tabla de enrutamiento.
    # route flush
    
  4. Agregue una ruta que persista tras el reinicio del sistema.
    # route -p add -net network-address -gateway gateway-address
    
    -p
    Crea una ruta que debe persistir tras el reinicio del sistema. Si desea que la ruta sea válida sólo para la sesión actual, no utilice la opción -p.

    add
    Indica que está a punto de agregar la siguiente ruta.

    -net dirección_red
    Especifica que la ruta se dirige a la red con la dirección de dirección_red.

    -gateway dirección_portal
    Indica que el sistema de portal para la ruta especificada tiene la dirección IP dirección_portal.


Ejemplo 5–5 Cómo agregar una ruta estática a la tabla de enrutamiento

El siguiente ejemplo muestra cómo agregar una ruta estática a un sistema. El sistema es el enrutador 2, el enrutador predeterminado para la red 172.20.1.0 que se muestra en la Figura 5–3. En el Ejemplo 5–4, el enrutador 2 está configurado para el enrutamiento dinámico. Para actuar como enrutador predeterminado para los hosts de la red 172.20.1.0, el enrutador 2 necesita además una ruta estática al enrutador de límite del SA, 10.0.5.150 .

Para ver la tabla de enrutamiento del enrutador 2, debe configurar lo siguiente:

# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

La tabla de enrutamiento indica las dos rutas que conoce el enrutador 2. La ruta predeterminada utiliza la interfaz 172.20.1.10 del enrutador 2 como portal. La segunda ruta, 10.0.5.0, fue descubierta por el daemon in.routed que se ejecuta en el enrutador 2. El portal de esta ruta es el enrutador 1, con la dirección IP 10.0.5.20.

Para agregar una segunda ruta a la red 10.0.5.0, que tiene su portal como enrutador de límite, debe configurar lo siguiente:

# route -p add -net 10.0.5.0/24 -gateway 10.0.5.150/24
add net 10.0.5.0: gateway 10.0.5.150

Ahora la tabla de enrutamiento cuenta con una ruta para el enrutador de límite, que tiene la dirección IP 10.0.5.150/24.

# netstat -rn
Routing Table: IPv4
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
default              172.20.1.10          UG        1    249 ce0
224.0.0.0            172.20.1.10          U         1      0 ce0
10.0.5.0             10.0.5.20            U         1     78 bge0
10.0.5.0             10.0.5.150           U         1    375 bge0
127.0.0.1            127.0.0.1            UH        1     57 lo0

Comandos para visudo

Archivo /etc/sudoers

El archivo /etc/sudoers se edita con visudo, herramienta que a través de vi permite realizar cambios y verificar sintaxis y errores. Si se intenta modificar directamente /etc/sudoers, éste tendrá permisos de sólo lectura.

La sintaxis básica de una lista de control de acceso sería:

XXXX_Alias NOMBRELISTA = elemento1, elemento2, elemento3

La sintaxis básica de una regla de control de acceso sería:

[usuario, %grupo, NOMBRELISTA] [anfitrión] = (id de usuario a usar) programas

Se pueden definir Aliases y reglas. Los aliases permiten definir listas de programas, listas de usuarios, listas de anfitriones o bien listas de identidades de usuarios para ejecutar programas.

Cmnd_Alias.

Se utiliza para definir listas de programas a utilizar con sudo y/o excluir su ejecución con sudo. Ejemplo:

Cmnd_Alias PROGRAMAS4 = /sbin/service httpd reload, \
        /usr/bin/vim /etc/httpd/conf.d/variables.conf, \
        /usr/bin/vim /etc/php.ini

Lo anterior define una lista de programas que podrían utilizarse para hacer que el servicio httpd vuelva a leer su configuración, modificar los archivo /etc/httpd/conf.d/variables.conf y /etc/php.ini.

fulano ALL = PROGRAMAS4

Lo anterior define que el usuario fulano puede ejecutar los programas de la lista PROGRAMAS4 desde cualquier anfitrión.

También se pueden definir programas prohibidos junto con programas permitidos. Por ejemplo:

Cmnd_alias ALTACUENTAS = /usr/sbin/useradd, /usr/bin/passwd *, \
                            !/usr/bin/passwd root

fulano	ALL = (ALL) ALTACUENTAS

Lo anterior define que fulano puede ejecutar useradd con cualquier opción y argumentos y ejecutar passwd con cualquier argumento, pero tendrá prohibido ejecutar éste utilizando root como argumento, es decir tendrá prohibido cambiar la contraseña de root.

En el siguiente ejemplo, el usuario fulano podría utilizar virtualmente cualquier programa del sistema, excepto passwd con root como argumento y ejecutar bash, userdel, usermod y su.

Cmnd_alias PROHIBIDOS = !/bin/su, !/bin/bash, !/usr/sbin/usermod, \
    !/usr/sbin/userdel, !/usr/bin/passwd root

fulano	ALL = (ALL) ALL, PROHIBIDOS

User_Alias.

Se utiliza para definir listas de usuarios y/o grupos que podrán utilizar sudo y/o aquellos que tendrán prohibido utilizarlo. Ejemplo:

User_Alias WEBADMINS = fulano, mengano, zutano

Lo anterior define una lista denominada WEBADMINS, integrada por los usuarios fulano, mengano y zutano.

WEBADMINS ALL = /usr/bin/vim

La regla anterior define que los usuarios que conforman la lista WEBADMINS pueden ejecutar vim desde cualquier anfitrión.

También es posible definir grupos a los cuales pertenecen los usuarios del sistema. Ejemplo:

User_Alias ADMINS = %wheel, !pepe

Lo anterior define una lista denominada ADMINS, integrada por los usuarios que pertenezcan al grupo de sistema denominado wheel, excluyendo el usuario denominado pepe.

ADMINS ALL = /usr/bin/vim

La regla anterior define que los usuarios que conforman la lista ADMINS, es decir todos los miembros del grupo de sistena denominado wheel, excepto el usuario denominado pepe, pueden ejecutar vim desde cualquier anfitrión.

Host_Alias.

Se utiliza para definir listas de anfitriones desde los cuales se tendrá permitido utilizar sudo o bien desde los cuales se tendrá prohibido utilizarlo. Ejemplo:

Host_Alias WEBHOSTS = 192.168.70.25, \
            192.168.70.26, \
            192.168.70.23

Lo anterior define que la lista WEBHOSTS está integrada por las 3 direcciones IP listadas anteriormente. Si además se añade la siguiente regla:

WEBADMINS WEBHOSTS =  ADMINHTTPD

Lo anterior define que los usuarios de la lista WEBADMINS pueden utilizar los programas listados en ADMINHTTPD solamente si están conectados desde las direcciones IP listadas en WEBHOSTS.

Runas_Alias.

Se utiliza para definir listas de identidades permitias para utilizar sudo o bien aquellas que estarán prohibido utilizar. Ejemplo:

Si por ejemplo se quisiera que los usuarios de la lista WEBADMINS pudieran además ejecutar ls, rm, chmod, cp, mv, mkdir, touch y vim como el usuarios juan, pedro y hugo, se requiere definir una lista para estos programas y otra para los aliases de usuarios alternos y la regla correspondiente.

User_Alias WEBADMINS = fulano, mengano, zutano

Runas_Alias WEBUSERS1 = juan, pedro, hugo

Cmnd_Alias PROGRAMAS1 = /bin/ls, /bin/rm, /bin/chmod, \
        /bin/cp, /bin/mv, /bin/mkdir, /bin/touch, \
        /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

WEBADMINS WEBHOSTS = (WEBUSERS1) PROGRAMAS3

Lo anterior permite a los usuarios definidos en WEBADMINS ( es decir fulano, mengano y zutano), utilizar los programas definidos en PROGRAMAS1 (es decir podrán utilizar ls, rm, chmod, cp, mv, mkdir, touch, vim y passwd, pero para el este último estará prohibido cambiar la contraseña de root), identificándose como los usuarios definidos en la lista WEBUSERS1 (juan, pedro y hugo), sólo si sudo se ejecuta desde los anfitriones con las direcciones IP listadas en WEBHOSTS (192.168.70.25, 192.168.70.26, 192.168.70.23).

Al momento de establecer las reglas, es posible especificar el permiso de ejecución de ciertos programas con uno o más usuarios y el de otros programas con otros usuarios distintos.

User_Alias WEBADMINS = fulano, mengano, zutano

Runas_Alias WEBUSERS1 = juan, pedro, hugo

Runas_Alias WEBUSERS2 = mario, beto, paco

Cmnd_Alias PROGRAMAS1 = /bin/ls, /bin/rm, /bin/chmod, \
        /bin/cp, /bin/mv, /bin/mkdir, /bin/touch, \
        /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

Cmnd_Alias PROGRAMAS2 = /usr/bin/vim, /bin/cat, \
        /usr/bin/less

WEBADMINS WEBHOSTS = (WEBUSERS1) PROGRAMAS1 (WEBUSERS2) PROGRAMAS1

Lo anterior establece que los miembros de la lista WEBADMINS (fulano, mengano y zutano) pueden ejecutar desde lo anfitriones definidos en WEBHOSTS los programas definidos en la lista PROGRAMAS1, pero sólo adoptando las identidades de juan, pedro y hugo y los programas definidos en la lista PROGRAMAS2, pero sólo pueden ser ejecutados adoptando las identidades de mario, beto y paco.

Basado sobre el ejemplo anterior, estaría permitido ejecutar algo como lo siguiente:

sudo -u juan mkdir /home/juan/public_html/images

Pero estaría prohibido ejecutar lo siguiente, porque sólo se permite ejecutar /bin/cp con las identidades juan, pedro y hugo:

sudo -u mario cp -r /home/mario/public_html/images2/* \
    /home/mario/public_html/images2/

Candados de seguridad.

Algunos programas, como el caso de less, vi, vim y more, permiten ejecutar otros programas desde el intérprete de mandatos —lo que se conoce como Shell Escape o escape al intérprete de mandatos. En estos casos se puede utilizar NOEXEC para impedir que algunos programas permitan la ejecución de otros programas con privilegios. Ejemplo:

fulano ALL = (ALL) ALL \
    NOEXEC: /bin/vi, /usr/bin/less, /usr/bin/vim, /bin/more

Lo anterior permitiría al usuario fulano poder editar o visualizar con privilegios cualquier archivo del sistema ejecutando vim y more, pero deshabilita la posibilidad de poder ejecutar otros programas con privilegios desde el escape al intérprete de mandatos de vim.

Es importante señalar que sudo incluye varios candados de seguridad (predeterminados) que impiden se puedan realizar tareas peligrosas, como redirigir la salida estándar de la ejecución de un programa (STDOUT) hacia archivos fuera del directorio de inicio del usuario utilizado.

Si se define en el archivo /etc/sudoers que un usuario puede ejecutar con privilegios /usr/bin/vim, es decir algo como lo siguiente:

fulano ALL = (ALL) /bin/echo, \
    NOEXEC: /bin/vi, /usr/bin/vim, /bin/more, /usr/bin/less

Sudo permitirá que el usuario regular definido pueda ejecutar /usr/bin/vim de los siguientes modos:

sudo /usr/bin/vim
sudo vim

Pero se impedirá ejecutar vim del siguiente modo:

cd /usr/bin
sudo ./vim

Si, por ejemplo se define en el archivo /etc/sudoers que un usuario puede ejecutar con privilegios /bin/echo, es decir algo como lo siguiente:

fulano ALL = (ALL) /bin/echo, \
    NOEXEC: /bin/vi, /usr/bin/vim, /bin/more, /usr/bin/less

El usuario sólo podrá ejecutar echo de los siguientes modos, asumiendo que se trata del usuario fulano:

sudo /bin/echo "Hola" > /home/fulano/prueba.txt
sudo echo "Hola" > /home/fulano/prueba.txt

Sin embargo, sudo impedirá a los usuarios regulares redirigir la salida estándar hacia archivos fuera de sus propios directorios de inicio, como por ejemplo al ejecutar algo como lo siguiente:

sudo echo "Hola" > /etc/prueba.txt

Para poder realizar la operación anterior, se tendría que ejecutar:

sudo bash -c "echo 'Hola' > /etc/prueba.txt"

Para impedir lo anterior, habría que prohibir en el archivo /etc/sudoers el uso de /bin/bash, como se muestra en el siguiente ejemplo:

fulano ALL = (ALL) ALL, !/bin/su, !/bin/bash \
    !/usr/bin/sudo, !/usr/bin/visudo, \
    NOEXEC: /bin/vi, /usr/bin/vim, /bin/more, /usr/bin/less

Sudo permitirá realizar una tarea con privilegios sobre cualquier archivo dentro de cualquier directorio, aún si el usuario regular carece de permisos de acceso para ingresar a dicho directorio, siempre y cuando especifique la ruta exacta de dicho archivo. Ejemplo:

sudo chown named /var/named/dominio.zone

Sudo siempre impedirá ejecutar algo como lo siguiente cuando el usuario regular carece de permisos de acceso a un directorio o sub-directorio en particular:

sudo chown named /var/named/*.zone

Lo más recomendado.

Si se va a permitir la ejecución de todos los programas del sistema utilizando sudo, como mínimo prohíba el uso de /bin/bash, /bin/su, /usr/bin/sudo (para prevenir se pueda ejecutar «sudo sudo programa»), /usr/bin/passwd root y /usr/sbin/visudo y restrinja el uso de programas que permitan escape al intérprete de mandatos, como serían /usr/bin/less, /bin/more, /bin/vi y /usr/bin/vim. Ejemplo:

fulano ALL = (ALL) ALL, \
    !/bin/bash, !/bin/su, !/usr/sbin/visudo, !/usr/bin/passwd root, \
    !/usr/bin/sudo, \
    NOEXEC: /bin/more, /bin/vi, /usr/bin/less, /usr/bin/vim

De ser posible, evite definir ALL —todos los programas y aplicaciones del sistema— y sólo permita la ejecución de programas específicos. Puede definir todos los que quiera. Ejemplo:

fulano ALL = (ALL) /bin/cat, /bin/chgrp, /sbin/chkconfig, /bin/chmod, \
    /bin/chown, /sbin/depmod, /usr/sbin/edquota, /usr/sbin/groupadd, \
    /usr/bin/htpasswd, /sbin/ip, /usr/bin/openssl, /sbin/service, \
    /usr/bin/tail, /usr/sbin/useradd, /usr/bin/passwd [A-z]*, \
    !/usr/bin/passwd root, \
    NOEXEC: /bin/more, /bin/vi, /usr/bin/less, /usr/bin/vim

Evite utilizar nombres de usuario y, sobre todo, contraseñas predecibles o fáciles de adivinar.

Lo menos recomendado.

Si se quiere permitir a un usuario ejecutar con sudo prácticamente lo que sea, desde cualquier anfitrión, utilizando cualquier identidad de usuario del sistema y requiriendo ingresar la contraseña correspondiente al menos cada 5 minutos, se puede definir:

fulano ALL = (ALL) ALL

La configuración predeterminada en distribuciones basadas sobre Ubuntu™ Linux utiliza lo siguiente:

%wheel ALL = (ALL) ALL

Con lo anterior sólo los usuarios miembros del grupo wheel podrán hacer uso de sudo. Se recomienda cambiar esta configuración para hacerla un poco más restrictiva, como se muestra en los ejemplos citados algunos párrafos arriba.

Si se quiere permitir a un usuario ejecutar sudo lo lo que sea, desde cualquier anfitrión, utilizando cualquier identidad de usuario del sistema y sin necesidad de autenticar, se puede definir algo como lo siguiente:

fulano ALL = (ALL) NOPASSWD: ALL

Evite utilizar esta última configuración salvo que sea estrictamente necesario.

Uso de sudo.

Ejecute sudo con la opción -l (minúscula) como usuario regular para mostrar las opciones de variables de entorno permitidas y la lista de programas permitidos y prohibidos:

sudo -l

La salida puede ser algo similar a lo siguiente:

Matching Defaults entries for jbarrios on this host:
    requiretty, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE 
    INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME 
    LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME
    LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE
    LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User fulano may run the following commands on this host:
        (ALL) NOPASSWD: ALL, (ALL) !/sbin/fdisk, (ALL) NOEXEC: /usr/bin/vim,
    (ALL) /bin/more

Como root ejecute sudo con la opción -l (minúscula), la opción -U (mayúscula) y el nombre del usuario a consultar para listar los privilegios de un usuario en particular. Ejemplo:

sudo -l -U fulano

Ejecute sudo con la opción -L (mayúscula) para mostrar todas las opciones soportadas en el archivo /etc/sudores.

sudo -L

La salida —que será muy extensa— puede incluir algo similar a lo siguiente:

Available options in a sudoers ``Defaults'' line:

syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog priority to use when user authenticates
successfully
syslog_badpri: Syslog priority to use when user authenticates
unsuccessfully
long_otp_prompt: Put OTP prompt on its own line
ignore_dot: Ignore '.' in $PATH
mail_always: Always send mail when sudo is run
...
pwfeedback: Provide visual feedback at the password prompt when there
is user input
fast_glob: Use faster globbing that is less accurate but does not
access the filesystem
umask_override: The umask specified in sudoers will override the
user's, even if it is more permissive
log_input: Log user's input for the command being run
log_output: Log the output of the command being run
compress_io: Compress I/O logs using zlib
use_pty: Always run commands in a pseudo-tty

Para ejecutar cualquier programa con sudo, se utiliza la siguiente sintaxis.

sudo -[opciones] programa

Ejemplo:

sudo service cups restart

Se asumirá que el usuario y grupo utilizados para la identidad serán root si se omite especificar opciones u otros argumentos.

Para especificar que una operación se ejecute como un usuario en particular, ejecute sudo con la opción -u (minúscula) seguida del nombre del usuario a utilizar y el nombre del programa correspondiente como argumento. Ejemplo:

sudo -u zutano vim /home/zutano/datos.txt

Ejecute sudo con la opción -g seguida del nombre del grupo a utilizar y el programa correspondiente como argumento para especificar que una operación se ejecute como un miembro de un grupo en particular. Ejemplo:

sudo -g lp lpadmin -x EPL-5900

Ejecute sudo con la opción -b y el programa correspondiente como argumento para especificar que una operación se realice en segundo plano. Ejemplo:

sudo -b tar cpf /var/respaldos/respaldo-etc.tar /etc

Una vez que el usuario se ha autenticado, el usuario podrá utilizar nuevamente sudo sin necesidad de volver a autenticarse durante 5 minutos —salvo que se especifique lo contrario en el archivo /etc/sudoers. Si un usuario regular ejecuta sudo con la opción -v, éste podrá refrescar el periodo de tiempo sin necesidad de tener que ejecutar de nuevo algo con sudo —en cuyo caso contrario expirará dicha autenticación y será necesario volver a realizar ésta.

sudo -v

Se forzará que expire el periodo de tiempo si se ejecuta sudo con la opción -k (minúscula), obligando a ingresar nuevamente la contraseña la siguiente vez que ejecute sudo.

sudo -k

Lo anterior también permite ejecutar un programa y expirar el periodo de tiempo —estableciendo la fecha de último uso a la fecha y hora actual— de manera simultánea. La ejecución de lo anterior puede requerir ingresar la contraseña del usuario regular si el tiempo ya ha expirado. Por lo general se utiliza de este modo en operaciones donde se desea condicionar a que sean realizadas siempre por un ser humano y jamás por un programa automatizado. Ejemplo:

sudo -k service cups restart

Si el usuario ejecuta sudo con la opción -K (mayúscula), se forzará que expire el periodo de tiempo por completo (elimina toda referencia de tiempo), obligando a ingresar nuevamente la contraseña la siguiente vez que se ejecute sudo. A diferencia de la opción -k (minúscula), ésta sólo permite ser utilizada sin otros argumentos.

sudo -K

Uso de aliases.

BASH (Bourne-Again Shell) permite utilizar variables de entorno y aliases al iniciar la sesión. Un administrador responsable por lo general preferirá evitar utilizar la cuenta de root y en su lugar hará uso de una cuenta de usuario regular para ejecutar diversos programas a través de sudo, los cuales se pueden simplificar a través de aliases. Por ejemplo, si se quiere definir que se ejecute sudo cada vez que se invoque a chkconfig, se puede crear un alias que ejecute sudo con /sbin/chkconfig, como en el siguiente ejemplo:

alias chkconfig="sudo /sbin/chkconfig"

Lo anterior permitirá ejecutar chkconfig utilizando sudo, sin necesidad de teclear «sudo» en el intérprete de mandatos.

CentOS, Fedora y Red Hat Enterprise Linux.

Puede crear diversos aliases que pueden ser de utilidad en el archivo ~/.bashrc del usuario regular utilizado, los cuales permitirán ejecutar automáticamente diversos programas con sudo. Ejemplos:

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific aliases and functions

alias chgrp="sudo /bin/chgrp"
alias chkconfig="sudo /sbin/chkconfig"
alias chmod="sudo /bin/chmod"
alias chown="sudo /bin/chown"
alias depmod="sudo /sbin/depmod"
alias edquota="sudo /usr/sbin/edquota"
alias groupadd="sudo /usr/sbin/groupadd"
alias groupdel="sudo /usr/sbin/groupdel"
alias htpasswd="sudo /usr/bin/htpasswd"
alias ip="sudo /sbin/ip"
alias less="sudo /usr/bin/less"
alias openssl="sudo /usr/bin/openssl"
alias service="sudo /sbin/service"
alias system-config-firewall="sudo /usr/bin/system-config-firewall"
alias system-config-network-tui="sudo /usr/sbin/system-config-network-tui"
alias system-config-printer="sudo /usr/sbin/system-config-printer"
alias tail="sudo /usr/bin/tail"
alias useradd="sudo /usr/sbin/useradd"
alias userdel="sudo /usr/sbin/userdel"
alias vi="sudo /usr/bin/vim"
alias yum="sudo /usr/bin/yum"

Para que surtan efectos los cambios, hay que salir de la sesión y volver a ingresar con la misma cuenta de usuario en cuyo archivo ~/.bashrc se añadieron estos aliases.

En openSUSE™ y SUSE™ Linux Enterprise.

Puede crear diversos aliases que pueden ser de utilidad en el archivo ~/.aliases del usuario regular utilizado, los cuales permitirán utilizar automáticamente diversos programas con sudo. Ejemplos:

alias chgrp="sudo /bin/chgrp"
alias chkconfig="sudo /sbin/chkconfig"
alias chmod="sudo /bin/chmod"
alias chown="sudo /bin/chown"
alias depmod="sudo /sbin/depmod"
alias edquota="sudo /usr/sbin/edquota"
alias groupadd="sudo /usr/sbin/groupadd"
alias groupdel="sudo /usr/sbin/groupdel"
alias htpasswd="sudo /usr/bin/htpasswd"
alias insserv="sudo /sbin/insserv"
alias ip="sudo /sbin/ip"
alias less="sudo /usr/bin/less"
alias openssl="sudo /usr/bin/openssl"
alias service="sudo /sbin/service"
alias tail="sudo /usr/bin/tail"
alias useradd="sudo /usr/sbin/useradd"
alias userdel="sudo /usr/sbin/userdel"
alias vi="sudo /usr/bin/vim"
alias yast="sudo /usr/sbin/yast2"
alias zypper="sudo /usr/bin/zypper"

Para que surtan efectos los cambios, hay que salir de la sesión y volver a ingresar con la misma cuenta de usuario en cuyo archivo ~/.aliases se añadieron estos aliases.

Configura conexiones SSH sin password en solo 3 pasos

Hola,

Aquí verán el cómo conectarse a una PC remotamente por SSH tan solo introduciendo el password una primera vez, luego aunque reiniciemos ambos ordenadores, no se nos volverá a pedir el password.

Pero, primero veamos una breve explicación sobre qué es SSH:

SSH es un protocolo, un medio de comunicación entre dos ordenadores. Nos permite administrar un equipo de forma remota. Cuando accedamos por SSH a otro equipo, el comando que introduzcamos en esa terminal se ejecutará en el otro equipo, de esta forma lo administramos/controlamos.

Todo lo que se transmita por SSH, va encriptado y con una seguridad considerablemente buena.

Ahora, veremos como en solo tres pasos configuraremos PC#1 para que acceda a PC#2 sin introducir contraseña:

Tenemos la siguiente situación:

PC#1 -» Desea conectarse a PC#2, sin tener que escribir password cada vez que se intente conectar a esta otra PC.

PC#2 -» Tiene instalado el servidor SSH. Esta es a la que PC#1 se conectará, y lo hará sin introducir password. En esta PC hay un usuario llamado root.

Empecemos…

1. En PC#1 escribimos lo siguiente:

  • ssh-keygen -b 4096 -t rsa

Esto generará una llave pública. Para no enredarnos mucho con “llaves públicas y privadas”, lo explicaré de forma muy simple.

Supongamos que tienes dos llaves de tu casa en el bolsillo, una se la das a tu novia ya que viven juntos, y con la otra te quedas solo tú, no se la das a nadie. Bueno, esa llave que le diste a tu novia, le permitirá entrar a tu casa sin decírtelo, sin pedirte permiso no? eso es una llave pública, una “llave” que permite que una PC acceda a otra sin tener que pedirte permiso (o sea, sin poner usuario+password)

Cuando pongan ese comando, les aparecerá eso:

2. Simplemente presionemos [Enter], un segundo después volvemos a presionar [Enter], y un segundo después volvemos una vez más a presionar [Enter]. O sea, presionaríamos [Enter] un total de tres (3) veces, solo lo presionamos… no escribimos nada 🙂

Cuando hagamos esto, nos aparecerá algo muy similar a lo siguiente:

Listo, ya tenemos la llave pública… ahora falta dársela a quien queramos (como el ejemplo, dársela a nuestra novia jaja)

Lo que queremos es que PC#1 se conecte a PC#2, ya en PC#1 hicimos todo lo anterior, en PC#2 no hemos hecho nada. Bien, PC#2 tiene de dirección IP por ejemplo 10.10.0.5.

3. Ponemos en PC#1 lo siguiente:

  • ssh-copy-id root@10.10.0.5

Esto lo que hace es simplemente darle la llave pública de PC#1 a PC#2, o sea, le dá a PC#2 la llave pública de PC#1, mientras que PC#1 se queda con su llave privada, ya saben; esa llave que no se le dá a nadie. Es importante no equivocarse con el usuario, o sea, si el usuario “root” no existe en PC#2 nos dará error, es importante estar claro en qué usuario usaremos para esto, además de que ese usuario con que configuramos el acceso sin password, será el mismo con que deberemos acceder en el futuro. Una vez hecho esto nos debe quedar así:

En el paso anterior, deben poner el password del usuario en PC#2.

Y listo… ya está todo configurado 😀

Como bien nos aparece en la terminal, probemos si de veras todo funcionó 100% OK. Para probar, ponemos:

  • ssh root@10.10.0.5

Si desean acceder a otro ordenador también sin introducir password siempre (PC#3 por ejemplo), simplemente le damos nuestra llave pública y listo, o sea, una vez que hayamos hecho el paso #1 y #2 no lo tendremos que hacer nunca más. Si queremos acceder a PC#3 por ejemplo, que tiene por IP 10.10.99.156 tan solo ponemos:

  • ssh root@10.10.99.156

Hasta aquí el tutorial.

Explicar que, el nivel de seguridad cuando hablamos de SSH es realmente alto, la metáfora con que expliqué algunos pasos (la de darle la llave a nuestra novia) tal vez no sea la más adecuada jaja, ya que nuestra novia podría darle la llave a alguien más. Cuando hablamos de SSH, los principios de seguridad son fáciles de explicar, cuando intentamos acceder nuestro ordenador (PC#1) comprueba si en PC#2 hay una llave pública de nuestro ordenador (en este caso sí la hay, porque así lo configuramos), entonces, de haberla es simple, comprueba si esa llave pública es idénticamente igual a nuestra llave privada (esa que no le dimos a nadie). Si las llaves son idénticas nos deja acceder, de lo contrario y como medida de seguridad, no nos deja acceder remotamente al otro ordenador.

Así que ya saben… darle la llave de casa a nuestra novia no es lo más seguro, pero compartir llaves y acceder remotamente por SSH a otro ordenador, sí es seguro ^_^

Dudas o preguntas, quejas o sugerencias me las dejan saber.

Saludos a todos.

Antiguas entradas

© 2018 Agcapa

Tema por Anders NorenArriba ↑

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies