Pongo un ejemplo:
Quiero copiar del servidor 199.199.199.199 la carpeta /home/backup/* y quiero copiar en mi ordenador en la carpeta /mnt/hd_externo_500
rsync -avt -P root@199.199.199.199:/home/backup/* /mnt/hd_externo_500/
Pongo un ejemplo:
Quiero copiar del servidor 199.199.199.199 la carpeta /home/backup/* y quiero copiar en mi ordenador en la carpeta /mnt/hd_externo_500
rsync -avt -P root@199.199.199.199:/home/backup/* /mnt/hd_externo_500/
Vamos a generar una clave publico/privada para acceder a un servidor sin estar metiendo constantemente la contraseña
Paso 1.
Genero la clave publica/privada
ssh-keygen -b 4096 -t rsa
Dale a enter cada vez que te aparezca un dialogo.
Lo copio al servidor que quiero acceder en un futuro sin pedir la contraseña sustituyte 199.199.199.199 por la ip de tu servidor.
ssh-copy-id root@199.199.199.199
Nos pedira la contraseña del servidor y cuando este validado ya agregado nuestra clave en el servidor.
Para instalar OpenVPN server con Interfaz web para administrar usuarios basta con ejecutar los siguientes comandos:
wget https://raw.githubusercontent.com/theonemule/simple-openvpn-server/master/openvpn.sh chmod +x openvpn.sh ./openvpn.sh --adminpassword=TestVPN25
Una vez instalado simplemente tenemos que entrar mediante ip mediante https
Estos comandos lo he sacado de la página https://clouding.io/kb/instalar-openvpn-en-ubuntu/ . Te aconsejo visitarla ya que solo he puesto lo básico para instalar el VPN.
Una vez instalado el servidor OpenVPN he querido poder entrar al panel de control a través del subdominio vpn.informaticosmurcia.es para poder acceder de una forma sencilla y fácil de recordar.
Bueno antes de nada saber que el script de arriba instala el servidor web lighttpd para poder realizar la administración del servidor VPN. Yo de forma particular utilizo en mi servidor de pruebas el servidor web nginx.
Primero voy a mover los ficheros que el script de OpenVPN me ha generado en /var/www/ a una carpeta diferente para poder luego redirigir el trafico de la url vpn.informaticosmurcia.es a esa carpeta:
server.document-root = "/var/www/vpn.informaticosmurcia.es" server.port = 6969
Una vez cambiado reiniciamos el servicio lighttpd.
service lighttpd restart
nano /etc/nginx/sites-available/vpn.informaticosmurcia.es
Realizamos la configuración del fichero:
server {
listen 80;
server_name vpn.informaticosmurcia.es;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://127.0.0.1:6969/;
}
}
Lo que hace Nginx es que todo lo que provenga de la url vpn.informaticosmurcia.es lo vamos a rediriguir de forma tasparente a nuestro servidor lighttpd que esta en el puerto 6969 en nuestro servidor.
sudo ln -s /etc/nginx/sites-available/vpn.informaticosmurcia.es /etc/nginx/sites-enabled/vpn.informaticosmurcia.es
Y reiniciamos el servidor nginx
sudo service nginx restart
Una vez hecho ya podemos acceder de forma comoda a nuestro servidor OpenVPN a través de vpn.informaticosmurcia.es
:/etc/openvpn$ cat server.conf port 1194 proto udp dev tun sndbuf 0 rcvbuf 0 ca ca.crt cert server.crt key server.key dh dh.pem tls-auth ta.key 0 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 cipher AES-256-CBC user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3 crl-verify crl.pem
Edito: Me ha ocurrido que instalando el servidor VPN en una maquina virtual para hacer pruebas el cliente no podia navegar. La solución es la siguiente.
iptables -I FORWARD -i tun0 -o eth0 -s 10.7.0.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.7.0.0/24 -j MASQUERADE
tun0 es la interfaz que lan del servidor vpn
eth0 es la interfaz donde se va a redirigir el trafico hacia internet.
Para aumentar la seguridad de su web y evitar, por ejemplo, que resulte vulnerable a ataques maliciosos tipo «de fuerza bruta», usted puede crear archivos .htaccess y .htpasswd que le permitián establecer una contraseña de acceso a su Panel de control o Dashboard.
«/homepages/xx/xxxxxxxxx/htdocs/» es una dirección de ejemplo que usted debe substituir con la de su servidor, el nombre de la carpeta en que desee instalar el archivo y su nombre de usuario.
Para consultar la ruta de acceso a su servidor vaya su 1&1 Panel de control en Dominios>Administrar Dominios, y allí Seleccionar el dominio deseado y hacer clic en Información)
Para implementar los cambios efectuados, cargue los archivos en su carpeta /wp-admin, por ejemplo mediante un programa de FTP como Filezilla, en el que puede especificar que se trata de archivos de texto y transferirlos como ASCII, con el nombre de su servidor, su usuario y contraseña.
Una vez que estos archivos estén cargados en la carpeta /wp-admin, su página dispondrá de una capa extra de seguridad.
Script para ver todas las jaulas y el estado de cada una de ellas.
#!/bin/bash JAILS=`fail2ban-client status | grep "Jail list" | sed -E 's/^[^:]+:[ \t]+//' | sed 's/,//g'` for JAIL in $JAILS do fail2ban-client status $JAIL done
una vez que sabemos en que jaula esta la ip que queremos quitarle el ban usamos el siguiente comando:
sudo fail2ban-client set NOMBREJAULA unbanip xxx.xxx.xxx
He querido conocer como se pasa de una página de http a hhtps y buscando he descubierto Let’s Encrypt y con la herramienta Certbot pasar de http a hhtps de forma fácil y automática.
En este caso no quiero poner un tutorial aquí ya que en la página Certbot está muy bien explicado según el sistema operativo que tengas y el servidor web que tengas instalado.
Para comparar carpetas puedes utilizar el comando diff. A pesar de que el objetivo del comando es comparar archivos línea por línea, lo podemos utilizar para comparar el contenido de 2 carpetas.
El comando diff devuelve las diferencias entre dos archivos. Las diferencias aparecerán con el simbolo ‘< ‘o ‘>’.
< Indica el primer archivo (argumento de la izquierda)
> Indica el segundo archivo (argumento de la derecha)
Para utilizarlo basta ejecutar el siguiente comando
diff -ru carpeta1 carpeta2
Apenas descubrí que puedes especificar el parámetro -q para que no compare el contenido de los archivos
diff -ruq carpeta1 carpeta2
Tambien podemos utilizar el comando rsync para comparar carpetas. Esto tiene la ventaja de que puedes hacerlo con carpetas remotas, mediante ssh.
Para comparar una carpeta remota basta agregar el parámetro –dry-run o en su forma abreviada -n de la siguiente forma
rsync -avn /home/cirovladimir cirovladimir@192.168.0.3:/home/cirovladimir
vi es un editor de texto elemental que conviene conocer porque a veces es el único a nuestro alcance.
Para aclararse con vi, tienes que tener en cuenta que vi puede encontrarse en dos estados o modos:
Cuando entras en vi, está en modo de comandos. Para pasar al modo de edición puedes pulsar i (insertar), a (añadir), o (añadir una línea). Para pasar al modo de comandos, puedes pulsar Escape o Suprimir.
| comando | descripción |
|---|---|
| i | insertar antes del cursor |
| a | añadir detrás del cursor |
| o | añadir una línea en blanco |
| x | borrar un carácter |
| j | borrar el final de línea (une dos líneas) |
| dd | borra la línea completa |
| u | deshacer la última edición |
| :q | salir |
| :q! | salir sin guardar |
| :w | guardar |
| :wq | guardar y salir |
| :set nu | muestra números de línea |
| :set nonu | oculta números de línea |
| :n copy m | copia la línea n detrás de la línea m |
| :n1, n2 copy m | copia desde la línea n1 hasta la línea n2 detrás de la línea m |
Para llevar un control de los cambios que se realizan en el código fuente al desarrollar una aplicación, se suelen usar sistemas de control de versiones. Estos sistemas pueden ser usados por varios usuarios/desarrolladores al mismo tiempo, ya que éstos se conectan a un servidor central donde se guarda el repositorio que contiene el código fuente original y los cambios que se van haciendo, junto con todos los datos necesarios para conocer quien, cómo y porqué alguno de los usuarios ha realizado un cambio. De este modo el desarrollo de la aplicación es mucho más ordenado y sobretodo sencillo porque estos programas permiten volver a una versión anterior y así poder deshacer los errores que pueden aparecer en el avance de la programación.
Sigue leyendo Subversion, instalación, configuración y uso en Debian
Este comando lo he utilizado mucho durante las tareas de debugging.
El comando tail, muestra las últimas líneas de uno o más archivos de texto.
tail imprimirá por defecto a la salida estándar las últimas diez líneas de sus datos de entrada. Tanto las unidades de impresión (líneas, bloques, bytes) como su número pueden alterarse con opciones
Sigue leyendo Shell de linux – Comando tail