05.02.2013 Aufrufe

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

Firewall Handbuch für LINUX 2.0 und 2.2 - zurück

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

*server_udp_port = ntohs(name.sin_port) ;<br />

if (dflg) fprintf(stderr, "port %d allocated\n", *server_udp_port) ;<br />

return 0 ;<br />

}<br />

/*<br />

* Each connection is handled by a separate process.<br />

*/<br />

void do_child(int newfd)<br />

{<br />

struct sockaddr name, namepeer ;<br />

struct sockaddr_in where ;<br />

struct sockaddr_in outudp ;<br />

struct sockaddr_in from; /* Sending host address */<br />

fd_set rfd ;<br />

int already_bind = 0 ;<br />

char buffer[4096] ;<br />

char zone[64] ;<br />

int pos = 0 ;<br />

int namelen , fromlen, i ;<br />

int fd_to_proxy ;<br />

int maxfd ;<br />

int lu , res ;<br />

int sockudp , sockcl ;<br />

int client_udp_port, server_udp_port ;<br />

namelen = sizeof(namepeer) ;<br />

i = getpeername(newfd, , ) ;<br />

/* This hack, is the TRANSPARENT PROXY magic :<br />

* We want to know wich destination the client want to connect<br />

*/<br />

namelen = sizeof(name) ;<br />

i = getsockname(newfd, , ) ;<br />

if (lflg || dflg) {<br />

time_t tnow ;<br />

struct tm *tm ;<br />

time() ;<br />

tm = localtime() ;<br />

fprintf(stderr, "%02d:%02d:%02d %d.%d.%d.%d:%d -><br />

%d.%d.%d.%d ",<br />

tm->tm_hour,<br />

tm->tm_min,<br />

tm->tm_sec,<br />

namepeer.sa_data[2] & 255,<br />

namepeer.sa_data[3] & 255,<br />

namepeer.sa_data[4] & 255,<br />

namepeer.sa_data[5] & 255,<br />

ntohs(((struct sockaddr_in *))->sin_port),<br />

name.sa_data[2] & 255,<br />

name.sa_data[3] & 255,<br />

name.sa_data[4] & 255,<br />

name.sa_data[5] & 255) ;<br />

}<br />

fd_to_proxy = serverconnect() ;<br />

if (fd_to_proxy == -1) exit(1) ;<br />

lu = read(newfd, buffer, sizeof(buffer)) ;<br />

if (dflg) {<br />

printf("From client : (%d)\n", lu) ;<br />

fflush(stdout) ;<br />

Erstellt von Doc Gonzo - http://kickme.to/plugins

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!