Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
if(write(f,buf,strlen(buf)) < 0) return (-1);
close(f);
return (0);
}
Функция fill_log
Эта функция, кроме дескриптора log-файла, принимает IP-адрес пакета, который был заблокирован (u_long addr), и идентификатор выполненного действия (int action). Функция очень простая, и необходимости в комментариях я не вижу.
int fill_log(int f, int action, u_long addr)
{
char buf[BSIZE];
time_t fill_t;
bzero(buf,BSIZE);
time(&fill_t);
if(action==0) {
sprintf(buf,"Packet from %s was rejected at %s",inet_ntoa(addr), ctime(&fill_t));
if (write(f,buf,strlen(buf)) < 0)
return (-1);
return (0);
}
}
Makefile
Для сборки исполняемого модуля создадим Makefile следующего содержания:
CC = gcc
name = daemon
DAEMON = sfc.o sf_daemon.o sf_log.o
$(name): $(DAEMON)
$(CC) -g -o $(name) $(DAEMON)
sfc.o: sfc.c
$(CC) -c sfc.c
sf_daemon.o: sf_daemon.c
$(CC) -c sf_daemon.c
sf_log.o: sf_log.c
$(CC) -c sf_log.c
clean:
rm -f *.o
Здесь все должно быть вам знакомо. Ключ «-g» при успешной сборке можно будет заменить на «-s».
Запуск и остановка выполнения процесса-демона
После сборки в текущем каталоге появится исполняемый файл daemon. Для его запуска наберите команду:
./daemon start
Перед запуском процесса-демона необходимо загрузить модуль ядра.
После запуска демона в текущем каталоге появится файл daemon.pid. Не удаляйте этот файл! В нем хранится идентификатор процесса-демона для возможности его корректной остановки. Для остановки выполнения процесса-демона введите команду:
./daemon stop
Файл daemon.pid автоматически удаляется.
Информация о времени запуска и останова процесса-демона, а также о заблокированных пакетах будет зафиксирована в файле /var/log/daemon.
При подготовке статьи были использованы исходные
тексты и документация брандмауэра SINUS (