• Hola Invitado, nos gustaría recordarte que mantener este sitio en línea conlleva unos gastos mensuales y anuales.

    Sin vuestra ayuda mensual no es posible seguir en pie, no hay mucho más que contar.

    Si quieres colaborar para que sea posible por lo menos seguir en pie como comunidad, puedes hacerlo mediante alguno de los métodos disponibles en esta página: https://www.lonasdigital.com/donaciones/

    Recuerda que si necesitas invitación para acceder al foro, puedes solicitarla en nuestro Grupo de Telegram


compilar socat en entorno ubuntu para ubuntu 12.04

††LUCIFER††

Bueno os dejo como crearnos nuestra version socat con ubuntu...


Aunque podemos instalar socat poniendo en terminal:


apt-get install socat


Pero en caso que queramos compilar la ultima version de socat por nosotros mismos, haremos los pasos siguientes:


A) Instalamos las librerias necesarias para que nos funcione ./configure, para ellos:


Código:
apt-get install autotools-dev


Código:
apt-get install automake


Código:
apt-get install autoconf


Código:
apt-get install libtoolize


Código:
apt-get install build-essential


Código:
apt-get install g++


B) Instalamos librerias tcp-wrappers necesarias, para ello:


Código:
apt-get install libwrap0-dev




C) Nos descargamos la ultima version socat de su pagina oficial:


Index of /socat/download




D) descomprimimos los archivos por ejemplo en /usr/local/bin/


E) En caso que nos hallamos descargado la ultima version pues en terminal ponemos:


cd /usr/local/bin/socat-2.0.0-b5


F) A continuacion en terminal ponemos sudo ./configure




http://**********.us/a/img826/135/soca1.png




G) Como este pograma lleva el protocolo SSLv2 que esta obsoleto por muchos problemas de seguridad esta eliminado de ubuntu ultimas versiones,por lo tanto si ahora usaramos make, daria error en ese protocolo ya que esta eliminado de ubuntu, por lo tanto vamos a eliminarlo nosotros antes de seguir compilando:


g.1) abrimos el archivo sslcls.c de la carpeta /usr/local/bin/socat-2.0.0-b5


y eliminamos esto:




Código:
SSL_METHOD *sycSSLv2_client_method(void) {
 SSL_METHOD *result;
 Debug("SSLv2_client_method()");
 result = SSLv2_client_method();
 Debug1("SSLv2_client_method() -> %p", result);
 return result;
}


SSL_METHOD *sycSSLv2_server_method(void) {
 SSL_METHOD *result;
 Debug("SSLv2_server_method()");
 result = SSLv2_server_method();
 Debug1("SSLv2_server_method() -> %p", result);
 return result;
}




g.2) Abrimos el archivo xio-openssl.c de la carpeta /usr/local/bin/socat-2.0.0-b5 y buscamos esta parte:




Código:
if (!server) {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv2") || !strcasecmp(me_str, "SSL2")) {
 method = sycSSLv2_client_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_client_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_client_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_client_method()/*!*/;
 }
 } else {
 method = sycSSLv23_client_method()/*!*/;
 }
 } else /* server */ {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv2") || !strcasecmp(me_str, "SSL2")) {
 method = sycSSLv2_server_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_server_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_server_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_server_method()/*!*/;
 }
 } else {
 method = sycSSLv23_server_method()/*!*/;
 }
 }


y la ponemos por ejemplo de esta manera:




Código:
if (!server) {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_client_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_client_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_client_method()/*!*/;
 }
 } else {
 method = sycSSLv23_client_method()/*!*/;
 }
 } else /* server */ {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_server_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_server_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_server_method()/*!*/;
 }
 } else {
 method = sycSSLv23_server_method()/*!*/;
 }
 }




H) Bueno pues ya podemos continuar, ahora en consola terminal ponemos:


Código:
sudo make




http://**********.us/a/img688/3074/soca2.png


I) y luego para terminar:




Código:
sudo make install




http://**********.us/a/img269/769/soca3.png




y eso es todo:




http://**********.us/a/img405/6017/soca4.png
 

Temas similares

G
Respuestas
7
Visitas
1K
paco-50
P
K
Respuestas
84
Visitas
4K
Javilonas
Javilonas
P
Respuestas
0
Visitas
592
ptergrand
P
anatulfo
Respuestas
6
Visitas
3K
Arduramix
Arduramix
Atrás
Arriba