kldunload ipl - spontaneous reboot

Marco van Tol marco at tols.org
Wed Dec 9 22:41:21 UTC 2009


Hi there,

I was toy'ing around with ipfilter while deciding which firewall package to
use, and ran into the following:

- Build some testing rules in /etc/ipf.conf
- boot the system with ipfilter_enable="YES", ipmon_enable="YES",
  ipmon_flags="-L security -Ds" in /etc/rc.conf
- Browse the web a bit, let pidgin start and authenticate with ICQ and MSN
- Browse email using mutt on an nfs mounted mailstore
- Check out the firewall statistics using for example "ipfstat -hio" and
  "ipfstat -t"
- Probably other stuff I forgot to mention

Extra info: I'm using sudo to do root things.

Then I decided it was time to "/etc/rc.d/ipmon stop", "/etc/rc.d/ipfilter
stop" and "kldunload ipl".

When I did the final "kldunload ipl" from an xterm inside Xorg, my system
spontaneously rebooted seconds later. 

The kernel did see the chance to flush "Dec  9 21:52:45 donald kernel: IP
Filter: v4.1.28 unloaded" to /var/log/messages through syslog(d).

No core was dumped, but I'm pretty sure that it never would, since I happen
to have the silly combination of dumpdev="/dev/ad4s1b" in /etc/rc.conf, but
also kern.coredump=0 in /etc/sysctl.conf.  At some point I got bored by
linux-firefox/linux-flash dumping core in my nfs mounted homedirectory and
fixed it with the syscontrol, but didn't bother to get rid of the rc.conf
entry.  That particular issue got fixed by the way, thank the gods for
freebsd native firefox in combination with linux-flashplayer10.  But I'm
sidetracking here.

I'd be willing to send my firewall rules to some freebsd security address
somewhere, but I don't consider it wise to include it in an email to a
public list.  Even though it ran on a test system behind a NAT gateway running
on my ADSL modem.
What I can share about it here is that it was a default open list in that
the rules for incoming and outgoing ended with the following for the sake of
diagnostics output/counters:
pass out log first quick on nfe0 proto tcp all
pass out log first quick on nfe0 proto udp all
pass out log first quick on nfe0 proto icmp all
pass out log first quick on nfe0 all
pass in log first quick on nfe0 all

I'm including my current rc.conf, pciconf -lv output, kernel config and
uname -a output assuming that might be usefull in case anyone wants to look
at this.  I'm also willing to try to trigger it again while kern.coredump=1
if needed, hoping it wouldn't take to long. ;-)
You will see the ipfilter things taken out of the rc.conf, cause I booted
single-user and took it out for now, they used to be there however.

Other things that may be related is that I do load the days-ago released
nvidia kernel module, and also run powerd.

Anybody interested? :-)
For now I'll step away from ipfilter, but I may revisit it again later.

Thanks!

Marco van Tol

-- 
Micro$oft likes to discard vulnerabilities by `no standard client
would do this.'  No, and no `standard visitor' would apply a crowbar
to your patio door, either." - H. Peter Anvin in linux-kernel.
-------------- next part --------------
cpu		HAMMER
ident		DONALD

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

options 	SCHED_ULE		# ULE scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	SCTP			# Stream Control Transmission Protocol
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	NFSCLIENT		# Network Filesystem Client
options 	NFSLOCKD		# Network Lock Manager
options 	NTFS			# NT File System
options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_LABEL		# Provides labelization
options 	COMPAT_43TTY		# BSD 4.3 TTY compat (sgtty)
options 	COMPAT_IA32		# Compatible with i386 binaries
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
options 	KTRACE			# ktrace(1) support
options 	STACK			# stack(9) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	P1003_1B_SEMAPHORES	# POSIX-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
options 	AUDIT			# Security event auditing
options 	MAC			# TrustedBSD MAC Framework
options 	FLOWTABLE		# per-cpu routing cache

# Make an SMP-capable kernel by default
options 	SMP			# Symmetric MultiProcessor Kernel

# CPU frequency control
device		cpufreq

# Bus support.
device		acpi
device		pci

# Floppy drives
device		fdc

# ATA and ATAPI devices
device		ata
device		atadisk		# ATA disk drives
device		ataraid		# ATA RAID drives
device		atapicd		# ATAPI CDROM drives
device		atapifd		# ATAPI floppy drives
options 	ATA_STATIC_ID	# Static device numbering

# SCSI peripherals
device		scbus		# SCSI bus (required for SCSI)
device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)
device		ses		# SCSI Environmental Services (and SAF-TE)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		kbdmux		# keyboard multiplexer

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc

device		agp		# support several AGP chipsets

# Serial (COM) ports
device		uart		# Generic UART driver

# Parallel port
device		ppc
device		ppbus		# Parallel port bus (required)
device		lpt		# Printer
device		ppi		# Parallel port interface device

# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
device		nfe		# nVidia nForce MCP on-board Ethernet

# Pseudo devices.
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		pty		# BSD-style compatibility pseudo ttys
device		md		# Memory "disks"
device		firmware	# firmware assist module

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device		bpf		# Berkeley packet filter

# USB support
device		ohci		# OHCI PCI->USB interface
device		ehci		# EHCI PCI->USB interface (USB 2.0)
device		usb		# USB Bus (required)
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
device		ums		# Mouse

# FireWire support
device		firewire	# FireWire bus code
device		dcons		# Dumb console driver
device		dcons_crom	# Configuration ROM for dcons

#
# marco at tols.org
#
device		smbus		# Bus support, required for smb below.
device		nfsmb		# NVIDIA nForce2/3/4 MCP SMBus 2.0 Controller
device		smb

device		sound
device		snd_ich

options 	COMPAT_LINUX32	# Enable Linux ABI emulation
options 	LINPROCFS	# Enable the linux-like proc filesystem support
options 	LINSYSFS	# Enable the linux-like sys filesystem support

# Direct Rendering modules for 3D acceleration.
device		drm

# amdtemp: on-die sensor on AMD K8/K10/K11 CPUs
device		amdtemp
-------------- next part --------------
none0 at pci0:0:0:0:	class=0x058000 card=0x50001458 chip=0x005e10de rev=0xa3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 Memory Controller'
    class      = memory
isab0 at pci0:0:1:0:	class=0x060100 card=0x0c111458 chip=0x005010de rev=0xa3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCI to ISA Bridge'
    class      = bridge
    subclass   = PCI-ISA
nfsmb0 at pci0:0:1:1:	class=0x0c0500 card=0x0c111458 chip=0x005210de rev=0xa2 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 SMBus'
    class      = serial bus
    subclass   = SMBus
ohci0 at pci0:0:2:0:	class=0x0c0310 card=0x50041458 chip=0x005a10de rev=0xa2 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 USB Controller'
    class      = serial bus
    subclass   = USB
ehci0 at pci0:0:2:1:	class=0x0c0320 card=0x50041458 chip=0x005b10de rev=0xa3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 USB 2.0 Controller'
    class      = serial bus
    subclass   = USB
pcm0 at pci0:0:4:0:	class=0x040100 card=0xae011458 chip=0x005910de rev=0xa2 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'Realtek AC'97 Audio (Realtek ALC850)'
    class      = multimedia
    subclass   = audio
atapci0 at pci0:0:6:0:	class=0x01018a card=0x50021458 chip=0x005310de rev=0xf2 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 Parallel ATA Controller'
    class      = mass storage
    subclass   = ATA
atapci1 at pci0:0:7:0:	class=0x010185 card=0xb0031458 chip=0x005410de rev=0xf3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'CK804 SATA/RAID Controller (CK804)'
    class      = mass storage
    subclass   = ATA
atapci2 at pci0:0:8:0:	class=0x010185 card=0xb0031458 chip=0x005510de rev=0xf3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'CK804 SATA/RAID Controller (CK804)'
    class      = mass storage
    subclass   = ATA
pcib1 at pci0:0:9:0:	class=0x060401 card=0x00000000 chip=0x005c10de rev=0xa2 hdr=0x01
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCI Bridge'
    class      = bridge
    subclass   = PCI-PCI
nfe0 at pci0:0:10:0:	class=0x068000 card=0xe0001458 chip=0x005710de rev=0xa3 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'NVidia Network Bus Enumerator Description du priphriquenVIDIA nForce4 SLI (CK8-04) - LAN Controll (nForce4 Ultra)'
    class      = bridge
pcib2 at pci0:0:11:0:	class=0x060400 card=0x00000000 chip=0x005d10de rev=0xa3 hdr=0x01
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCIe Bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib3 at pci0:0:12:0:	class=0x060400 card=0x00000000 chip=0x005d10de rev=0xa3 hdr=0x01
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCIe Bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib4 at pci0:0:13:0:	class=0x060400 card=0x00000000 chip=0x005d10de rev=0xa3 hdr=0x01
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCIe Bridge'
    class      = bridge
    subclass   = PCI-PCI
pcib5 at pci0:0:14:0:	class=0x060400 card=0x00000000 chip=0x005d10de rev=0xa3 hdr=0x01
    vendor     = 'Nvidia Corp'
    device     = 'nForce4 PCIe Bridge'
    class      = bridge
    subclass   = PCI-PCI
hostb0 at pci0:0:24:0:	class=0x060000 card=0x00000000 chip=0x11001022 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices (AMD)'
    device     = 'Athlon64/Opteron/Sempron (K8 Family) HyperTransport Technology Configuration'
    class      = bridge
    subclass   = HOST-PCI
hostb1 at pci0:0:24:1:	class=0x060000 card=0x00000000 chip=0x11011022 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices (AMD)'
    device     = 'Athlon64/Opteron/Sempron (K8 Family) Address Map'
    class      = bridge
    subclass   = HOST-PCI
hostb2 at pci0:0:24:2:	class=0x060000 card=0x00000000 chip=0x11021022 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices (AMD)'
    device     = 'Athlon64/Opteron/Sempron (K8 Family) DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
hostb3 at pci0:0:24:3:	class=0x060000 card=0x00000000 chip=0x11031022 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices (AMD)'
    device     = 'Athlon64/Opteron/Sempron (K8 Family) Miscellaneous Control'
    class      = bridge
    subclass   = HOST-PCI
fwohci0 at pci0:1:10:0:	class=0x0c0010 card=0x10001458 chip=0x8025104c rev=0x01 hdr=0x00
    vendor     = 'Texas Instruments (TI)'
    device     = '1394b OHCI-Lynx IEEE 1394 Host Controller (TSB82AA2)'
    class      = serial bus
    subclass   = FireWire
vgapci0 at pci0:5:0:0:	class=0x030000 card=0x21801682 chip=0x009110de rev=0xa1 hdr=0x00
    vendor     = 'Nvidia Corp'
    device     = 'GeForce 7800 GTX (G70)'
    class      = display
    subclass   = VGA
-------------- next part --------------
FreeBSD donald.home.tols.org 8.0-STABLE FreeBSD 8.0-STABLE #2: Sat Dec  5 02:31:09 CET 2009     root at donald.home.tols.org:/usr/obj/usr/src/sys/DONALD  amd64
-------------- next part --------------
# -- sysinstall generated deltas -- # Mon Sep 22 14:34:31 2008
# Created: Mon Sep 22 14:34:31 2008
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
anacron_enable="YES"
background_fsck="NO"
cupsd_enable="YES"
dbus_enable="YES"
dumpdev="/dev/ad4s1b"
fsck_y_enable="YES"
hald_enable="YES"
hostname="donald.home.tols.org"
linux_enable="YES"
ntpd_enable="YES"
ntpd_sync_on_start="YES"
powerd_enable="YES"
smartd_enable="YES"
smartd_flags="-l local0"
sshd_enable="YES"
syslogd_flags="-ss"

# Interface settings
# Synchronus dhcp, otherwise ntpd and nfs mounts fail
ifconfig_nfe0="syncdhcp"

# NFS Settings
nfs_client_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"


More information about the freebsd-stable mailing list