{"id":15881402,"url":"https://github.com/kalloc/ulogd","last_synced_at":"2025-06-15T11:04:14.751Z","repository":{"id":1270358,"uuid":"1209513","full_name":"kalloc/ulogd","owner":"kalloc","description":"fork ulogd","archived":false,"fork":false,"pushed_at":"2011-09-11T19:07:34.000Z","size":500,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T20:13:22.579Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kalloc.png","metadata":{"files":{"readme":"README","changelog":"Changes","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-12-30T21:29:43.000Z","updated_at":"2014-12-25T05:31:14.000Z","dependencies_parsed_at":"2022-08-16T12:50:37.533Z","dependency_job_id":null,"html_url":"https://github.com/kalloc/ulogd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalloc%2Fulogd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalloc%2Fulogd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalloc%2Fulogd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalloc%2Fulogd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kalloc","download_url":"https://codeload.github.com/kalloc/ulogd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246760967,"owners_count":20829394,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T03:41:32.304Z","updated_at":"2025-04-02T05:26:23.498Z","avatar_url":"https://github.com/kalloc.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Userspace logging facility for iptables / linux 2.4\n$Id: README,v 1.7 2002/04/16 12:44:41 laforge Exp $\n\nProject Homepage: http://www.gnumonks.org/projects/ulogd\nMailinglist: http://lists.gnumonks.org/mailman/listinfo/ulogd/\n\nThis is just a short README, pleaes see the more extensive documentation\nin the doc/ subdirectory.\n\n===\u003e IDEA\n\nThis packages is intended for passing packets from the kernel to userspace \nto do some logging there. It should work like that:\n\n- Register a target called ULOG with iptables\n- if the target is hit: \n\t- send the packet out using netlink multicast facility\n\t- return NF_CONTINUE immediately\n\nNew with ipt_ULOG 0.8 we can accumulate packets in userspace and send\nthem in small batches (1-50) to userspace. This reduces the amount of\nexpensive context switches.\n\nMore than one logging daemon may listen to the netlink multicast address.\n\n===\u003e CONTENTS\n\n= Ulog library (libipulog.a)\nJust a little library like libipq.a which provides a convenient way to \nwrite userspace logging daemons. The functions provided are described \nin the source code, a small demo program (ulog_test) is also included.\n\n= ulogd daemon (ulogd) \nA sophisticated logging daemon which uses libipulog. The daemon provides \nan easy to use plugin interface to write additional packet interpreters and\noutput targets. Example plugins (interpreter: ip, tcp, icmp output: simple\nlogging to a file) are included.\n\n= documentation (doc)\nA quite verbose documentation of this package and it's configuration exists,\nplease actually make use of it and read it :)\n\n===\u003e USAGE\n\nThe kernel part of the userspace logging facility (ipt_ULOG.o) is included\nin kernels \u003e= 2.4.18-pre8.  If you are running older kernel versions, you MUST\ninstall the ulog-patch from netfilter patch-o-matic FIRST !!\n\nPlease go to the netfilter homepage (http://www.netfilter.org/)\nand download the latest iptables package.  There is a system called\npatch-o-matic, which manages recent netfilter development, which has\nnot been included in the stock kernel yet.\n\nJust apply the ulog-patch from patch-o-matic (there is some documentation\nincluded in the iptables package how to use patch-o-matic).\n\nNext you have to enable the kernel config option CONFIG_IP_NF_TARGET_ULOG in\nthe netfilter subsection of the network options. \n\nThen recompile the kernel or just recompile the netfilter modules using 'make\nmodules SUBDIRS=net/ipv4/netfilter'.  Next step is installing the module using\n'make modules_install'\n\nIt is also a good idea to recompile and re-install the iptables package,\nif you don't already have libipt_ULOG.so in /usr/local/lib/iptables or\n/usr/lib/iptables\n\nNow You are ready to go. You may now insert logging rules to every chain.\nTo see the full syntax, type 'iptables -j ULOG -h'\n\n===\u003e EXAMPLES\n\nAt first a simple example, which passes every outgoing packet to the \nuserspace logging, using netlink multicast group 3.\n\niptables -A OUTPUT -j ULOG --ulog-nlgroup 3\n\nA more advanced one, passing all incoming tcp packets with destination \nport 80 to the userspace logging daemon listening on netlink multicast \ngroup 32. All packets get tagged with the ulog prefix \"inp\"\n\niptables -A INPUT -j ULOG -p tcp --dport 80 --ulog-nlgroup 32 --ulog-prefix inp\n\nSince version 0.2,  I added another parameter (--ulog-cprange). \nUsing this parameter You are able to specify how much octets of the \npacket should be copied from the kernel to userspace. \nSetting --ulog-cprange to 0 does always copy the whole packet. Default is 0\n\n===\u003e COPYRIGHT + CREDITS\n\nThe code is (C) 2000-2003 by Harald Welte \u003claforge@gnumonks.org\u003e\n\nThanks also to the valuable Contributions of Daniel Stone, Alexander\nJanssen and Michael Stolovitzsky.\n\nCredits to Rusty Russel, James Morris, Marc Boucher and all the other \nnetfilter hackers. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalloc%2Fulogd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkalloc%2Fulogd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalloc%2Fulogd/lists"}