• Hola Guest, mantener este sitio cuesta dinero.

    Sin vuestra ayuda mensual, no podemos seguir.

    Si quieres colaborar, puedes hacerlo aquí: https://www.lonasdigital.com/donaciones/

    Si necesitas invitación al foro, solicítala 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:


Code:
apt-get install autotools-dev


Code:
apt-get install automake


Code:
apt-get install autoconf


Code:
apt-get install libtoolize


Code:
apt-get install build-essential


Code:
apt-get install g++


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


Code:
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:




Code:
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:




Code:
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:




Code:
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:


Code:
sudo make




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


I) y luego para terminar:




Code:
sudo make install




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




y eso es todo:




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

Similar threads

K
Replies
84
Views
4K
Javilonas
Javilonas
P
Replies
0
Views
614
ptergrand
P
anatulfo
Replies
6
Views
3K
Arduramix
Arduramix
Back
Top