Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Вопрос про Firewall

Ответить
Настройки темы
Вопрос про Firewall

Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот какая штука. Решил я написать простой пример firewall, и тут же столкнулся с главной проблемой. А как же я буду улавливать трафик. Скажем я хочу следить за трафиком на 139 порту (NetBios). Но если я попытаюсь создать на нем сокет, то возникнет ошибка, поскольку этот порт уже занят другим сервисом. Но как-то ведь народ делает firewall'ы. Может кто знает?

Отправлено: 19:25, 03-07-2004

 

Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот статейка,хотя она про сниферы. Но,имхо,там принцип один и тот же.

-------
Все, что хорошо начинается, кончается плохо. Все, что начинается плохо, кончается еще хуже.


Отправлено: 21:22, 03-07-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


Надыбал (давненько уже) в сети. Очень простенький пример. Под линукс, но принцип тот же. Вообще подобных "сорсов" в сети - море.
Код: Выделить весь код
 
// cниффер пишет на stdout всё, что захватывает 
#include <sys/socket.h> 
#include <netinet/in.h> 
#include <net/if.h> 
#include <unistd.h> 
#include <signal.h> 
#include <stdio.h> 
#include <string.h> 
#include <sys/ioctl.h> 
 
static volatile int done; 
void handler(int signum) 
{ 
       done = 1; 
} 
int main(int argc, char **argv) 
{ 
       char buff[0x10000]; 
       struct ifreq ifr; 
       int s, n; 
       if (argc < 2) 
       { 
              fprintf(stderr, "Usage: %s <interface>\n", argv[0]); 
              return 1; 
       } 
       s = socket(PF_INET, SOCK_PACKET, htons(0x0003)); 
       if (s == -1) 
       { 
              perror("socket"); 
              return 1; 
       } 
       strcpy(ifr.ifr_name, argv[1]); 
       if (ioctl(s, SIOCGIFFLAGS, &ifr) < 0) 
       { 
              perror("ioctl(SIOCGIFFLAGS)"); 
              return 1; 
       } 
       ifr.ifr_flags |= IFF_PROMISC; // установка 
                                      // режима перехвата 
                                      // на сетевой карте. 
 
       if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0) 
       { 
              perror("ioctl(SIOCGIFFLAGS)"); 
              return 1; 
       } 
       signal(SIGINT, handler); 
        puts("starting capturing:\n"); 
       fflush(stdout); 
       for (done = 0; !done; ) 
       { 
              n = read(s, buff, sizeof(buff)); 
                //cчитываем 
                //траффик в буфер 
              if ( n!=-1 ) write(STDOUT_FILENO, buff, n); 
       } 
 
       ifr.ifr_flags &= ~IFF_PROMISC; 
       if (ioctl(s, SIOCSIFFLAGS, &ifr) < 0) 
       { 
              perror("ioctl(SIOCGIFFLAGS)"); 
              return 1; 
       } 
 
       close(s); 
        printf("Finished\n"); 
        return 0; 
}

Отправлено: 10:44, 05-07-2004 | #3


Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


hasherfrog
Спасибо. Гляну. На порту 0х03 уже находится сокет, будет ли работать? Хотя ладно сам проверю.
BrutalBit
А чем они отличаются?

Отправлено: 18:21, 05-07-2004 | #4


Пользователь


Сообщения: 95
Благодарности: 0

Профиль | Отправить PM | Цитировать


Сниффер - это такая прога, которая перехватывает весь траффик.Они используются для перехвата всякой инфы(паролей) и для диагностики сети.
Firewall - это программа фильтрующая все вхлдящие/исходящие данные, и пропускающая только разрешенные.И там и там нужно перехватывать траффик,но тока firewall должен его еще и фильтровать.

-------
Все, что хорошо начинается, кончается плохо. Все, что начинается плохо, кончается еще хуже.


Отправлено: 22:47, 05-07-2004 | #5


Новый участник


Сообщения: 39
Благодарности: 0

Профиль | Отправить PM | Цитировать


Хорошо, но это все эти примеры для Linux. Мне они конечно и нужны для этой ОС.  Но...  как же быть с windows?

Отправлено: 19:10, 12-07-2004 | #6


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


VBMUSTDIE
Практически всё точно так же. Единственное, на что стоит обратить нимание: версия winsock должная быть 2-й. В ранней версии плохо расписана работа с "сырыми" сокетами. Есть, конечно, ещё некоторые ньюансы.
По поводу файерволл - проверьте почту.

Добавлено:

VBMUSTDIE
Ваш адрес в e-mail, очевидно, некорректный. Письма возвращаются.

Отправлено: 09:43, 13-07-2004 | #7

mar mar вне форума

Аватара для mar

just mar


Moderator


Сообщения: 3904
Благодарности: 163

Профиль | Отправить PM | Цитировать


hasherfrog
а если пример firewall-а, то можно не только для  VBMUSTDIE

Отправлено: 22:15, 13-07-2004 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Вопрос про Firewall

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] карта 1600 про вопрос про S-Video GLOVER Видеокарты 2 01-12-2009 05:48
вопрос про память xxxPORNOMANxxx Материнские платы и память 9 24-05-2009 16:49
Вопрос про IP _Snake_ Хочу все знать 12 16-10-2006 11:03
Вопрос про значки kop4enyi Автоматическая установка Windows 2000/XP/2003 2 11-10-2006 06:07
Вопрос про RAID 0 arahnid Microsoft Windows 2000/XP 7 21-07-2005 10:32




 
Переход