Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

miércoles, 9 de mayo de 2018

¿Cuánta swap/área de intercambio necesito?

 
 
 


¿Que el la swap o área de intercambio?

Es una zona del disco que nos sirve para almacenar procesos de la memoria física que son poco usados y por lo tanto almacenables en el espacio de intercambio para así liberar a la memoria física.

¿Necesitamos área de intercambio?

La respuesta rápida es sí. Aunque tenemos actualmente una gran capacidad de memoria de almacenamiento sigue siendo recomendable la implementación de un área de intercambio para liberar a la memoria física de procesos que están siendo poco usados o proteger la misma memoria de una sobrecarga.

¿Cuanta swap o área de intercambio tengo que asignar?

La eterna pregunta más compleja de lo que parece, si a lo que a servidores nos referimos la administración de memoria en linux es muy compleja ya que nos encontramos con dos problemas que implican al intercambio como son el sobrepasar la memoria existente y la segunda los procesos inactivos. En cuanto al primer problema es obvio pero con respecto al segundo problema es complejo de ajustar ya que hay, estudiar, comprender, predecir el uso de de recursos y una vez conocidos los mismos ajustar las características o el servicio que se vaya a dar.




Ahora bien en general con muchas partes a debatir podríamos generar una tabla con muchos matices tal que así para que podáis haceros una idea pero todo es orientativo debido a todas las variables anteriormente mencionadas.



RAM
Swap(Sin hibernación)
 Swap(Con hibernación)
 256MB
 256MB
 512MB
 512MB
 512MB
 1GB
 1GB
 1GB
 2GB
 2GB
 1GB
 3GB
 3GB
 2GB
 5GB
 4GB
 2GB
 6GB
 6GB
 2GB
 8GB
 8GB
 3GB
 11GB
 12GB
 3GB
 15GB
 16GB
 4GB
 20GB
 24GB
 5GB
 29GB
 32GB
 6GB
 38GB
 64GB
 8GB
 72GB
 128GB
 11GB
 139GB



martes, 31 de mayo de 2016

Analizando vunerabilidades web: Uniscan








Son muchas las veces que nos piden que analicemos paginas webs en busca de vulnerabilidades o que hagamos uso de estas para contemplarlas como una de las opciones de puerta de acceso en los test de intrusión. Para ello hay muchas herramientas las cuales hablaremos más adelante, hoy vamos a echar un vistazo a uniscan.

Uniscan no es más que un escáner de búsqueda de vulnerabilidades que viene implementado en Kali Linux, pero que también podemos descargar en este enlace de sourceforge. Una vez tenemos acceso al mismo ya sea descargado o implementado en Kali Linux, lo primero que haremos es empaparnos de las opciones que nos da mediante la orden "uniscan -h".





Una vez ya estemos documentados haremos uso de los ejemplos en concreto el primero. Y mediante la orden "uniscan -u http://www.webaescanear.com -qweds" iniciaremos el escaneo de dicha web. Una vez esto acabe que llevará un tiempo variable dependiendo del tamaño de la web se generará un documento ".html" en el que se detallará un informe del análisis. Este fichero se encuentra en el directorio "report" de la aplicación, que en el caso de Kali Linux en "/usr/share/uniscan/report/" como se muestra en la imagen.




Ahora abriremos el fichero de la con un navegador y comprobaremos lo encontrado, que en nuestro ejemplo es nada.






Como vemos en el ejemplo vemos los análisis que realiza y que no se encuentra nada, en el caso de este ejemplo el análisis tardar una 1:20 para realizar el análisis completo. Como dato que este reporte haya salido sin encontrarse ninguna vulnerabilidad no quiere decir que no podamos encontrar de otras maneras.





jueves, 10 de marzo de 2016

Ncat: Abriendo puertos a la escucha e iniciar un chat.









Como mencionamos anteriormente, veríamos ejemplos sobre Netcat para ver lo que nos ofrece y en esta entrada en el blog comenzamos con ello. Lo primero antes de nada es decir el entorno que usaremos en adelante para las pruebas y ejemplos que no será mas que dos máquinas cliente/servidor con S.O. derivados de Debian, pero también usaremos entornos Windows para estos ejemplos.

Hoy vamos a ver como podemos dejar a la escucha un puerto abierto para recibir conexiones o por ejemplo iniciar un chat entre ellos. Lo primero es ver la sintáxis de ncat. 

nc [-options] hostname port[s] [ports]
nc -l -p port [-options] [hostname] [port]

Ahora procederemos abrir el puerto que quedará a la escucha para el cliente mediante la orden "nc -l -p 8080" donde -l es listen(a la escucha) -p es el puerto en el que se quedará a la escucha y abierto( 8080). Una vez ejecutado ahora desde el cliente lanzaremos el comando para conectarnos al puerto en concreto "nc [ip del destino] 8080". Ahora en la siguiente imagen (a la izquierda el cliente y a la derecha el servidor) vemos como hemos entablado la conexión e iniciamos la conversación entre ambos. Como dato estas conversaciones van en texto en blanco sin ningún tipo de cifrado.




Es un primer ejemplo sencillo para que veamos la facilidad y potencial de Netcat.



martes, 8 de marzo de 2016

Virtualbox: Mover, copiar, clonar, exportar e importar máquinas virtuales.







Muchas veces al trabajar con máquinas virtuales necesitamos mover la ruta de nuestra máquina virtual o clonarla. Puesto que no es tan sencillo con copiarla directamente y es uno de los primeros errores que cometemos en la virtualización, para poder mover el sistema a otro destino, para ello utilizaremos el comando "vboxmanage clonevdi". Por ejemplo sería "vboxmanage clonevdi [ruta del disco a clonar] [ruta del destino del disco clonado]". También como muestra la segunda imagen en windows podemos hacer uso de la misma utilidad siempre tenemos la información sobre el comando en la web de virtualbox.








Una vez clonado nos dirigimos a las opciones del disco de la máquina virtual y enlazamos con el nuestro par que al iniciar la máquina tengamos ya asignada la nueva ruta.





También otra opción que tenemos que nos es para copiarlas o clonarlas si no para exportar e importar es utilizar la utilidad de exportar e importar de la utilidad de discos.






viernes, 26 de febrero de 2016

Ncat: ¿Que es netcat?








Hoy y en adelante vamos a ver detenidamente que es y ejemplos sobre netcat. En las siguientes entradas veremos ejemplos prácticos en los que veremos y pondremos en práctica esta herramienta básica para cualquier IT.

Ncat tiene ya muchos años pero es una de las primeras herramientas que usé cuando me pidieron que iniciara un chat entre dos máquinas mediante un terminal y de las que sigo usando, Netcat nos permite abrir puertos sencillamente y asociar una shell a este. Después de esto nos permite jugar con esto de múltiples maneras transferencia de ficheros, chats, usarlo para que nos de la hora del mismo servidor, mensajes.

Antes de nada como siempre tendremos que leer algo de ncat en wikipedia por ejemplo:
Netcat es una herramienta de red que permite a través de intérprete de comandos y con una sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos). Fue originalmente desarrollada por Hobbit en 1996 y liberada bajo una licencia de software libre permisiva (no copyleft, similar a BSD, MIT) para UNIX. Posteriormente fue portada aWindows y Mac OS X entre otras plataformas. Existen muchos forks de esta herramienta que añaden características nuevas como GNU Netcat o Cryptcat.
Una vez tenemos una idea clara de lo que es netcat y que es lo que nos ofrece acabaremos mirando un pequeño vistazo como siempre al manual de netcat mediante "man netcat".





En siguientes entradas veremos más en profundidad casos prácticos en los que veremos lo que netcat nos ofrece y podemos hacer con él.

miércoles, 24 de febrero de 2016

Atop, monitorizando la carga en nuestro servidor Linux.






Hoy vamos a hablar de un monitor de sistema el cual nos es más que permitirá monitorizar el sistema, crear logs del mismo con reportes de actividad de los procesos de nuestro servidor Linux y el cual es básico para centralizar todos las cargas de trabajo de nuestro servidor.. 

Atop es un monitor interactivo que nos permite ver los usos de los recursos de todos los procesos, ver la utilización de los discos,adaptadores de red, cpu, memoria y un largo etcétera de posibilidades. Para instalarlo como nosotros hacemos uso de debian nos basta con "sudo aptitude atop" si tenemos otra distribución variaría. Una vez instalado lo iniciamos mediante "sudo atop".




Como vemos en la imagen se nos despliega la interfaz de terminal con todos los procesos y recursos monitorizados. Ahora vamos a dar un repaso los acrónimos que se nos muestran:

PRC: Este línea contiene el total de tiempo consumido de la CPU por el sistema (sys), el usuario (user), el total de los procesos presentes en este momento (proc), el total de número de entradas en ese momento(run), dormidos interrumpibles(tslpi), dormidos ininterrumpibles(tslpu), el número de procesos zombies(zombie), numero de llamadas clonadas del sistema(clones) y el numero de procesos finalizado durante el intervalo de resfresco (exit).

CPU: Esta línea contiene el porcentage de tiempo de CPU que usa en modo kernnel por todos los procesos (sys), en modo usuario (user) por todos los procesos activos (incluidos los procesos iniciados con un valor mas largo de cero), el manejo de las interrupciones(irq), también el porcentaje de tiempo de CPU no usada mientras no hay procesos esperando entrar o salir de disco(idle), tambien mientras un proceos espera a entrar o salir (wait), en casos de multiprocesador hay una línea adicional por cada uno de los procesador individuales.

CPL: Esta línea contiene la información sobre la carga de CPU, el numero de entradas que son permitidas para iniciarse en la CPU o también la espera de entrada/salida del disco, el número de cambios de contexto (csw), el número de servicios interrupidos(intr) y el numero de CPUs disponibles.

MEM: Esta línea contiene información relatada al consumo de memoria, como el total de la cantidad de la memoria física(tot), la cantidad de memoria libre(free), la cantidad de memoria uso cache(cache), la cantidad  memoria usada por el sistema de ficheros metadatos (buff) y la cantidad memoria usada por el kernel malloc's(slab).

SWP: Esta línea contiene la cantidad total de swap en el disco (tot), y la cantidad del espacio libre(feee), la convinación de la memoria virtual.

DSK: Esta línea contiene información sobre la utilización del disco, el porcentaje de tiempo que la unidad esta esperando respuesta (busy), el numero de solicitudes de lectura(read), el número de peticiones de lectura emitidas(write), el número de KiBytes por lectura(KiB/r), el número de KiBytes por escritura(KiB/w), el número de MiBytes por segundo de rendimiento por lecturas (MBr/s), el número de MiBytes por segundo de rendimiento por escritura(MBw/s), la media de espera (avq), la media de numero de milisegundos necesarios por una búsqueda(avio) por búsqueda, latencia y transferencia de datos.

NET: Esta es la información realatada a la utilización de red (TCP/IP), una de estas líneas muestra la actividad de la capa de transporte(TCP y UDP), una línea es la capa IP y una linea por cada interfaz activa.

Esta información del sistema está acompañada por la información del nivel de proceso, información que indica detalles relacionados con los procesos de utilización de los recursos que cambian durante el ultimo intervalo de tiempo( 10 segundos por defecto).

Un importante punto a mencionar son los colores usados por atop (rojo, cian y otros) para indicar el nivel critico del consumo de recursos, como ejemplo un uso excesivo o crítico se indicaría con color rojo.

En cuánto a los comandos interactivos, se puede controlar la salida de información desde el teclado. Por ejemplo, escribiendo m par amostrar la memoria usada, d para ver el uso de la memoria. n para ver la información relacionada al red, v para mostrar las características de los procesos, c la línea de comandos de los procesos, etc... En la siguiente imagen vemos un ejemplo de la opción v.




En definitiva Atop es una herramienta muy util que nos provee de un bucle de actualización de la información sobre la carga de trabajo de nuestro servidor y sus recursos. Como siempre podemos ver más exaustivamente los comandos de configuración en 'man atop'.

miércoles, 3 de febrero de 2016

SCP: Copiando de manera segura.








Anteriormente en las entradas sobre ssh SCP  o secure copy no es mas que un medio para transferencia de ficheros entre host usando el protocolo SSH ( secure shell). Con ello podremos realizar nuestras copias de manera segura.

Ahora vamos a ver las diferentes maneras de usarlo:

· De local a remoto:

scp archivolocal usuario@ipdelservidor:/ruta/destino/del/archivodestino

· De remoto a local:

scp usuario@ipdelservidor:/ruta/archivoremoto /ruta/para/el/nuevo/archivo

· De remoto a remoto:

scp usuario@ipdelservidor1:/ruta/en/servidor1/archivo1usuario2@ipdelservidor2:/ruta/en/servidor2

· Para la copia recursiva de directorios usaremos -r como en los dos siguientes ejemplos:

scp -r archivolocal usuario@ipdelservidor:/ruta/destino/del/archivodestino

scp -r usuario@ipdelservidor:/ruta/archivoremoto /ruta/para/el/nuevo/archivo

Mediante scp podremos hacer copias seguras, compartir esos certificados de manera segura añadiendo la capa de seguridad que nos proporciona ssh. 






viernes, 11 de diciembre de 2015

Vim tricks: ¿Como forzamos lenguaje en Vim?






Anteriormente hemos hablado del editor de texto vim, en esta entrada os vamos ha dar un pequeño truco para resaltar el texto según la sintaxis con la que trabajamos. Para forzar la sintaxis de vim a sql, php u otros lenguajes nos bastará con escribir lo siguiente:

Si queremos por ejemplo forzar sintaxis a sql en la primera imagen se ve el texto sin el forzado mientras que en la segunda se ve claramente como fuerza el lenguaje a sql:

:set syntax=sql

· Sin forzado:





· Con forzado:






En definitiva el ejemplo sería:

:set syntax=lenguajeconelqueestemostrabajando



Como veis con esta pequeña orden podremos resaltar el lenguaje en el que estemos trabajando, siempre tenéis más información en esta wiki de vim y habrá más entradas como estas sobre Vim.




miércoles, 2 de diciembre de 2015

GPG (GnuPG): Cifrado simétrico sobre Linux







Hoy en día el cifrado de las comunicaciones en el ámbito empresarial es de vital importancia ya que cualquiera con pocos conocimientos podría estar a la escucha de nuestras comunicaciones y estar leyendo o captando todas nuestras comunicaciones. El cifrado GPG nos permitirá que aunque se capten estas comunicaciones solo el destinatario o alguien con la clave ( cifrado simétrico) pueda mostrar el contenido de las comunicaciones en definitiva es un poner una capa más de seguridad en nuestras comunicaciones que muchas veces contienen información sensible ( datos bancarios, identidades, etc..).

GPG o GnuPG es un herramienta de cifrado con soporte simétrico y asimétrico que viene a ser un reemplazo a PGP. Lo usos que le podemos dar GPG son mediante el terminal o aplicaciones gráficas pero también es aplicable para cifrar emails mediante pluggins en navegadores y gestores de correo. GPG viene implementado en múltiples sistemas como OpenBSD, GNU/Linux, etc.


Su funcionamiento es sencillo:



GPG cifra los mensajes usando pares de claves individuales asimétricas generadas por los usuarios. Las claves públicas pueden ser compartidas con otros usuarios de muchas maneras, un ejemplo de ello es depositándolas en los servidores de claves. Siempre deben ser compartidas cuidadosamente para prevenir falsas identidades por la corrupción de las claves públicas. También es posible añadir una firma digital criptográfica a un mensaje, de esta manera la totalidad del mensaje y el remitente pueden ser verificados en caso de que se desconfíe de una correspondencia en particular.
GnuPG también soporta algoritmos de cifrado simétricos, por ejemplo CASTS.
GPG no usa algoritmos de software que están restringidos por patentes, entre estos se encuentra el algoritmo de cifrado IDEA que está presente en PGP casi desde sus inicios. En su lugar usa una serie de algoritmos no patentados como ElGamalCAST5Triple DES (3DES), AES y Blowfish. También es posible usar IDEA en GPG descargando un plugin extra, sin embargo este puede requerir una licencia para usuarios de algunos países en donde esté patentada IDEA.
GPG es un software de cifrado híbrido que usa una combinación convencional de criptografía de claves simétricas para la rapidez y criptografía de claves públicas para el fácil compartimiento de claves seguras, típicamente usando recipientes de claves públicas para cifrar una clave de sesión que es usada una vez. Este modo de operación es parte del estándar OpenPGP y ha sido parte del PGP desde su primera versión.



Y después de un poco de teoría una practica simple de cifrado simétrico con GPG sobre Kali Linux, como dato importante los datos cifrados simetricamente son atacables mediante fuerza bruta, conviene introducir una contraseña alfanumérica robusta.

Lo primero que haremos es crear el fichero con su texto y comprobamos que se puede leer el texto creado mediante la orden cat:

echo "texto cifrado" > texto_cifrado.txt
cat texto_cifrado.txt

Ahora procedemos a hacer un cifrado simétrico nos pedirá que le asignemos una única contraseña y se nos genera un txt que sera texto_cifrado.txt.gpg y comprobamos que no se puede leer como antes medienate la orden cat:

gpg -c texto_cifrado.txt
cat texto_cifrado.txt.gpg

Por último desciframos el mensaje cifrado simétricamente mediante la contraseña anteriormente asignada:

gpg -d texto_cifrado.txt.gpg 

Como dato final hacemos lo mismo con una contraseña mal puesta y comprobamos que no se descifra. En la siguiente imagen esta descrito todo el proceso.





Como dato final las claves simétricas tienen dos problemas la retransmisión de las claves entre el emisor y receptor. Para solucionar esto se puede organizar sistemas de distribución seguros de claves simétricas. Por otro lado es muy importante la robustez de la contraseña ya que los ataques de fuerza bruta han evolucionado forma increíble usando sistemas de Cloud Computing para descifrar las claves en menos tiempo.


lunes, 30 de noviembre de 2015

Unir varios documentos PDF en uno solo con Linux & PDFtk







Hace unos días un cliente me pidió una serie de documentos en pdf, antes de mandarlos me pidió que si podría unirlos todos en un solo documento para facilitarle el trabajo ya que el no sabía como podría hacer esto. Para hacer esto utilizé PDFtk, una herramienta para trabajar con documentos PDF.  

Como nos indica su man PDFtk puede hacer muchas más cosas:


DESCRIPTION
       If PDF is electronic paper, then pdftk is an electronic staple-remover, hole-punch, binder, secret-decoder-ring, and X-Ray-glasses.  Pdftk is a simple tool for doing everyday things with PDF documents.  Use it to:
       * Merge PDF Documents or Collate PDF Page Scans
       * Split PDF Pages into a New Document
       * Rotate PDF Documents or Pages
       * Decrypt Input as Necessary (Password Required)
       * Encrypt Output as Desired
       * Fill PDF Forms with X/FDF Data and/or Flatten Forms
       * Generate FDF Data Stencils from PDF Forms
       * Apply a Background Watermark or a Foreground Stamp
       * Report PDF Metrics, Bookmarks and Metadata
       * Add/Update PDF Bookmarks or Metadata
       * Attach Files to PDF Pages or the PDF Document
       * Unpack PDF Attachments
       * Burst a PDF Document into Single Pages
       * Uncompress and Re-Compress Page Streams
       * Repair Corrupted PDF (Where Possible)


A continuación os voy a explicar en dos sencillos pasos como instalar y como juntar dos documentos con esta herramienta :

Instalación:

sudo apt-get install pdftk

Una vez instalado el proceso para unir dos documentos PDF es sencillo con este pequeño ejemplo:

pdftk documento1.pdf documento2.pdf cat output documentosjuntos.pdf



martes, 24 de noviembre de 2015

Buscando direcciones email: theharverster





Muchas veces como IT tenemos que obtener direcciones email de dominios en los que estamos evaluando la seguridad y la fuga de información. Una parte importante de estas evaluaciones es la llamada information gathering (recopilación de información) que es la que nos va permitir montar el proceso de explotación y la búsqueda de vulnerabilidades. Para la búsqueda de direcciones email tenemos TheHarvester el cual nos permite buscar información sobre un dominio.

Para hacer uso de él usaremos Kali, una plataforma de auditoria y seguridad informática.

Abriremos el terminal y ejecutaremos "theharvester" si nos mostrará las opciones, la explicación de las mismas.





Ahora ejecutaremos un ejemplo para buscar emails sobre un dominio aleatorio.





Como vemos se nos mostrarán las dirección y los propios servidores. Este programa para obtener emails, subdominios, host, nombres de empleados, puertos abiertos desde recursos públicos, nos facilitará nuestro trabajo en este apartado de obtención de información.



martes, 17 de noviembre de 2015

Securizando nuestras conexiones: Instalando y configurarando OpenVPN









Como IT una parte importante es la seguridad y esta hay que tomársela bastante en serio y para el ámbito empresarial más aún. En el mundo empresarial son muchas las ocasiones en que sus empleados trabajan en remoto fuera de la intranet, ya sea por trabajo a pie de calle, porque  su estructura empresarial no está centralizada en un lugar concreto en definitiva, a la hora de trabajar con sus sistemas y redes se tienen que vale de conexiones remotas que no son ni seguras ni estables y es aquí donde entra VPN.

Una VPN o red privada virtual nos permite tener una conexión estable, segura, fiable e incluso más rápida que otro tipo de conexiones remotas. Este tipo de conexión nos permite trabajar  a través de la WAN como si estuviéramos en la propia LAN y esto lo permite creando un túnel de conexión desde nuestro cliente hasta la red interna permitiendo trabajar al cliente remoto de una manera local y segura.





Para poner en práctica todo esto nos vamos a valer de un servidor Debian  y de OpenVPN. Antes de empezar la instalación recomiendo que visitéis los enlaces puestos a lo largo de la entrada y que os empapéis bien de los conocimientos previos, también es recomendable la web de OpenVPN que está en perfecto inglés como se ha de esperar. Vuelvo a repetir OpenVPN no es una instalación sencilla, requiere de conocimientos previos para poder llevar a cabo su correcta instalación, configuración y puesta en marcha.

1.- Instalación: Actualizamos el sistema e instalamos OpenVPN.

sudo apt-get update
sudo apt-get install openvpn

2.- Configuración: Comenzamos con la configuración de ficheros y generación de certificados necesarios.

Copiamos ficheros:

cp –r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa

Nos movemos al directorio easy-rsa:

cd /etc/openvpn/easy-rsa

Editamos el fichero vars:

vim /etc/openvpn/easy-rsa/vars

Dejamos esta línea así:

export KEY_SIZE=2048

Ponemos los valores siguientes:

export KEY_COUNTRY="ES"
export KEY_PROVINCE="SE"
export KEY_CITY="Seville"
export KEY_ORG="TEST"
export KEY_EMAIL="mail.mydomain"
export KEY_EMAIL="mail@host.domain
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234

Generamos los certificados dentro del directorio easy-rsa, esto puede variar en el tiempo de exportación en función del tamaño del key:

source ./vars
./clean-all

./build-ca

Generamos el certificado del server:

./build-key-server saw

Ahora generamos el certificado del cliente:

./build-key

Generamos la clave HMAC:

openvpn --genkey --secret ta.key
cp ta.key keys

cp -r easy-rsa/keys/ .

Modificamos la configuración VPN para poner el servidor en funcionamiento:

vim /etc/openvpn/server.conf

Dejamos el archivo como aparece a continuación:

port 1194
proto tcp
dev tun

#Nuevos certificados
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/saw.crt
key /etc/openvpn/keys/saw.key
dh /etc/openvpn/keys/dh2048.pem
tls-auth /etc/openvpn/keys/ta.key 0

#rangos de direcciones
server 192.168.1.50 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"

#DNS 
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

client-to-client
keepalive 10 120

cipher AES-256-CBC # Triple-DES
comp-lzo

max-clients 5

user nobody
group nogroup
tcp-nodelay
persist-key
persist-tun

log /var/log/openvpn.log
status /var/log/openvpn-status.log

verb 3
mute 20
#client-config-dir ccd

Habilitamos el bit de forwarding:

echo 1 > /proc/sys/net/ipv4/ip_forward

Eliminamos decomentamos la linea "net.ipv4.ip_forward=1"en el fichero "/etc/sysctl.conf":

vim /etc/syscrl.conf

Cargamos el módulo tun:

modprobe tun

Después de esto habilitamos el servicio y lo arrancamos:

/etc/init.d/openvpn start

Añadimos la siguiente línea de comando para iptables:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s "192.168.88.0/24" -j ACCEPT
iptables -A FORWARD -j REJECT

iptables -t nat -A POSTROUTING -s "192.168.1.0/24" -j MASQUERADE

Finalmente guardar las reglas:

iptables-save


Finalmente vuelvo a recordar que para montar un servidor de este tipo debemos de tener unos conocimientos previos, esta guía es una mera muestra de como montarlo. Para llevarlo a acabo se deben tener conocimientos preestablecidos sobre redes, sistemas operativos, VPN y OpenVPN.