# $Id$ Quick ~~~~~ * YOU *NEED* ip_masq-v0.13 patch (over 2.1.90) to compile * _EDIT_ Makefile and point "KSRC" to kernel source tree * I tested it with glibc-devel environment (libc5 may compile also) * Do "make install", which installs /usr/sbin/ipmasqadm /usr/lib/ipmasqadm/portfw.so /usr/lib/ipmasqadm/autofw.so * Use ipmasqadm tool: # ipmasqadm portfw *AS you were using* #ipportfw (see README.portfw) # ipmasqadm autofw *AS you were using* #ipautofw (see README.autofw) Details: ~~~~~~~~ * ipmasqadm tool - "General" masq module control (just a dynamic wrapper :) - now we have ELF dynamic modules under /usr/lib/ipmasqadm/: portfw.so, autofw.so INSTEAD of ip_portfw and ip_autofw tools. Essentially the .so modules are the same ip_xxxxfw tools, just touched for dynamic loading. - Ej: BEFORE: ip_portfw -A -t x.x.x.x/xx -R y.y.y.y/yy NOW: ipmasqadm portfw -A -t x.x.x.x/xx -R y.y.y.y/yy ~~~~~~ -> actually /usr/lib/ipmasqadm/portfw.so - API calls BEFORE NOW # ip_portfw # ipmasqadm portfw | [ip_portfw.c] | [ipmasqadm.c,portfw.c] | | setsockopt() setsockopt() | IP_PORTFW_ADD | IP_FW_MASQ_ADD, "portfw" | (struct ip_portfw_edits *) | (struct ip_fw_masqctl *) USER | | ....... | ............................. | .......................... | [ip_sockglue.c] | [ip_sockglue.c] KERN | | | | ip_portfw_ctl() ip_masq_mod_ctl() + [ip_portfw.c] | [ip_masq_mod.c] | | . . . . . . . . . . . . . . . . . . . . | . . . . . . . . . . . . . . KERN[mod] ip_port_fw_ctl() | [ip_masq_portfw.c] [same for IP_AUTOFW] -- Juanjo Nov 1997