| |
| IP Filter has been mostly tested under IRIX 6.2 and 6.5. |
| Under IRIX 5.3, it has been successfully compiled and linked in the kernel, |
| but not tested. |
| |
| To compile it under IRIX 6.2, you may need to uncomment (and join the |
| lines) with "-D_STANDALONE" in the Makefiles in the IRIX directory. |
| |
| To build a kernel with the IP filter and install it on your system, |
| follow these steps: |
| |
| 1. edit the top-level Makefile to |
| a) comment-out the IPFLKM definition. |
| This means changing the line reading: |
| IPFLKM=-DIPFILTER_LKM |
| to |
| #IPFLKM=-DIPFILTER_LKM |
| b) select the system's compiler (cc) |
| This means changing the line reading: |
| CC=gcc |
| to |
| CC=cc |
| |
| 1. do "make irix" (Warning: GNU make is not supported, so if it has |
| been installed on your system, verify your path and/or do "which make" |
| to guarantee that IRIX's /sbin/make has precedence) |
| |
| 2. do "make install-irix" as root |
| (a new kernel will be automatically built) |
| |
| 3. determine the filtering rules and place them in /etc/ipf.conf |
| and /etc/ipnat.conf |
| |
| 4. do "init 6" as root to reboot with the new kernel |
| |
| After restarting, the filter should be active and behaving according to |
| the rules loaded from /etc/ipf.conf and /etc/ipfnat.conf. |
| |
| These files can be changed at any time, and reloaded using the |
| following command sequence: |
| |
| # sh /etc/init.d/ipf stop; sh /etc/init.d/ipf start |
| |
| |
| To remove the IP Filter from your kernel, follow these steps: |
| |
| 1. Delete the /var/sysgen/boot/ipfilter.o file |
| |
| # rm /var/sysgen/boot/ipfilter.o |
| |
| 2. If SGI's ipfilter.o had been previously installed, restore it |
| back to its original location |
| |
| # mv /var/sysgen/boot/ipfilter.o.DIST /var/sysgen/boot/ipfilter.o |
| |
| 3. Build a new kernel |
| |
| # /etc/autoconfig |
| |
| 4. Delete the /etc/rc2.d/S33ipf symbolic link |
| |
| # rm /etc/rc2.d/S33ipf |
| |
| 5. Reboot |
| |
| # init 6 |
| |
| |
| ADDITIONAL NOTES: |
| |
| - The IP filter uses the same kernel interface to the IP driver as |
| SGI's ipfilter. In fact, it is installed in place of SGI's |
| /var/sysgen/boot/ipfilter.o module, after renaming it (if installed) |
| to /var/sysgen/boot/ipfilter.o.DIST. You should ensure that SGI's |
| ipfilterd daemon is not running simultaneously, since this package uses |
| the same major device number. |
| |
| - We have not tested IP Filter on a multiprocessor machine yet. |
| SGI prescribes that kernel code be built on such systems with |
| -D_MP_NETLOCKS -DMP. Therefore, these flags should probably be |
| uncommented on the DFLAGS line of IRIX/Makefile if your machine |
| has more than one processor. |
| |
| - It is also possible to build IP Filter as a dynamically loadable |
| kernel module (by retaining the IPFLKM=-DIPFILTER_LKM definition in the |
| top-level Makefile), but this is not recommended other than for testing |
| and debugging purposes, because the only possible method for dynamic |
| attachment to the IP stack (instruction patching) is highly dependent |
| on the processor architecture. The code provided has only been tested |
| with IP22 CPU boards and can sometime cause panics during loading due |
| to a potential race condition. |
| |
| CREDITS: |
| |
| IP Filter was ported to IRIX by Marc Boucher <marc@CAM.ORG> |
| |
| Marc Boucher wishes to thank the |
| ICARI Institute (http://www.icari.qc.ca) |
| and |
| Aurelio Cascio <aurelio@toonboom.com> |
| for their financial support and testing facilities, respectively. |
| |