Читаем Защита от хакеров корпоративных сетей полностью

#include

#include

#include

#include

#include

pcap_t *open_interface(char *name)

{

pcap_t *pd;

char ebuf[PCAP_ERRBUF_SIZE];

/* use pcap call to open interface in promiscuous mode */

d = pcap_open_live(name, 1600, 1, 100, ebuf);

f (!pd)

return NULL;

return pd;

}

int read_loop(pcap_t *pd)

{

const unsigned char *ptr;

int size, c;

struct pcap_pkthdr h;

struct ether_header *hdr;

while (1) {

/* read the next available packet using libpcap */

ptr = pcap_next(pd, &h);

if (h.caplen < sizeof(struct ether_header))

continue;

hdr = (struct ether_header *)ptr;

/* print out ethernet header */

for (c = 0; c < ETH_ALEN; c++)

printf(“%s%02x”,c == 0 ? “” : “:”,hdr-

>ether_shost[c]);

printf(“ > ”);

for (c = 0; c < ETH_ALEN; c++)

printf(“%s%02x”,c == 0 ? “” : “:”,hdr-

>ether_dhost[c]);

printf(“ type: %i\n”, hdr->ether_type);

}

}

int main(int argc, char **argv)

{

pcap_t *pd;

char *name = argv[1];

if (!argv[1]) {

fprintf(stderr, “Please specify an interface name\n”);

return -1;

}

pd = open_interface(name);

if (!pd) {

fprintf(stderr, “Unable to open interface\n”);

return -1;

}

if (read_loop(pd) < 0) {

fprintf(stderr, “Error reading packet\n”);

return -1;

}

return 0;

}

Windows

К сожалению, операционные системы семейства Windows не предоставляют функциональной возможности доступа к сети на канальном уровне. Мы должны приобрести и установить пакет драйвера стороннего производителя для получения доступа к данному уровню. До недавнего времени не существовало общедоступных драйверов, для которых не нужна лицензия. BPF-образный драйвер на данный момент уже написан и поддерживает BPF-механизм фильтрации в ядре. Также существует портация библиотеки libpcap, которая в сочетании с драйвером предоставляет интерфейс, такой же простой его UNIX, как аналог. Драйвер, портация libpcap, так же как и Windows-версия TCPDump, доступны на http://netgroup-serv.polito.it/windump.

<p>Защитные меры</p></span><span>

Итак, вы, наверное, думаете, что все потеряно и вы не можете ничего сделать для предотвращения прослушивания сетевого трафика вашей сети, правильно? Не все потеряно, вы убедитесь в этом в данном разделе.

Обеспечение шифрования

К счастью, для состояния сетевой безопасности шифрование (используемое должным образом) является «серебряной пулей», которая делает пакетные анализаторы бесполезными. Зашифрованная информация, полагая, что механизм шифрования является эффективным, разрушит все попытки нарушителя пассивно прослушивать вашу сеть.

Многие существующие сетевые протоколы имеют аналоги, которые полагаются на стойкие алгоритмы шифрования и всеобъемлющие механизмы, такие как IPSec, предоставляют это для всех протоколов. К сожалению, IPSec не используется широко в Интернете вне частных корпораций.

Secure Shell (SSH)

Secure Shell является криптографически стойкой заменой rlogin, rsh и rcp команд стандартного Telnet. Она состоит из клиента и сервера, которые используют криптографию с открытым ключом для обеспечения шифрования сессии. Secure Shell также предоставляет возможность ретрансляции произвольных портов через шифрованные соединения, являющиеся очень удобными для ретрансляции X11 Windows и других соединений.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже