There are three key documents available on http://FreeNAC.net/en/community, the User's, Technical Guide and Installation Guide. FreeNAC administrators will need to read all three. Each is divided into several subpages, if you wish to see it all on one page, click the "Printer-friendly version" link below.
This Users Guide presents the NAC User Interface, explaninghow to change configuration, monitor and troubleshoot..
Once NAC has been installed, configured, tuned and is running smoothly, what are the usual tasks to be done?
What happens when an “unknown” connects to the network?
How do you notice an ‘unknown’? You get an email alert, or a support call from the affected user. An automated email alert looks like this:
Explanation: A new device has been connected to the network (port 2/40 switch sw0303), but not authorised.
What needs to be done to grant access?
The following pages describe the Tabs in the Windows user interface.
See also the Windows GUI installation page for information on getting the GUI operational.
Please see the Windows GUI Installation chapter of the FreeNAC Installation Guide (http://FreeNAC.net/en/installguide).
After starting the Windows GUI (vmps.exe) and pressing on 'connect', the user's name and permissions are shown in the title bar.
The initial tab show is either the Overview or Welcome tab, depend on the version.
In the title bar one sees the name of the use logged on, the organisation short name (INO above) and the rights that user has (read-only, edit, or administtrator)
The overview tab contains a list of end-devices on the network.
Key fields are noted in blue.
In blue below is the crucial information: mac address, the status (which must be active if a device is allowed access) and the vlan assigned.
The red box is information about when the end-device was last seen, and where.
All other fields are informational, and thus an option. You need to decide what is best for your environment. We come back to the Edit Tab in more detail later
There are several optional modules (nmap, static inventory, patch cables, McAfee Anti-virus), if these are not enabled in your environment, they will be disabled or invisible.
Device expiry: With v2.2, one can set an expiry date for devices in NAC. This may be useful in limiting how long external visitors have access.
When an expired device is detected, its is set to the "killed" state, and an email alert is sent. In the killed state the device is blocked, but no alerts are sent.
Status: Is this system enabled, not yet authorised, not actively managed by NAC, or to be explicitly denied?
DNS forward/reverse lookups are used to verify naming consistency. The 'copy' button write the DNS name as the system name.
The Nmap scanning module can detection operating system version and open ports. It can scan one device immediately (on demand), or automatically scan (via cron) the list of IP addresses in the NAC database on a scheduled basis.
If the McAfee EPO module is enabled, the operating system of end devices, as reported by McAfee, and the current Anti-Virus status, can be displayed.
Beside the Anti-Virus tab, we also see an “inventory” tab above. This provides access to static inventory data, if an interface to your In-House inventory management has been created.
A trace of key changes made within the GUI is available, allowing historical changes to be attributed.
The Cabling screen is design to allow complete documentation of cabling rooms, not just LAN cables, but telephone, point to point etc.
In the blue box is a switch a port referenced by a specific cable. The other fields are:
The reporting tab allows some standard reports to be generated, and these can optionally be exported to excel. The reporting interface is very flexible with sorting & filtering allowing custom reports to be generated.

In the above example, the “Unused Systems” report was run.
Note that if you let the mouse hover over the button of each report it tells you what the report does, e.g. “Devices not seen in over 30 days”.
All reports are presented in a generic grid
Server-side vents are viewed in the 'server log' tab
When adding a new switch, the key fields to complete are the name and IP address.

Control of switch activity is set in the scan and 'vlan for switch' fields. The first enables or disables passive SNMP scanning, the second sets a Vlan to be assigned to all Known End-Devices that connect to that switch (if this feature is enabled in the policy).
Some fields are automatically queried by FreeNAC and cannot be changed manually, such as the last monitored time, up/down status and hardware/software version.
The following fields are for documenting & alerting purposes:

Each Switches has ports. On a port basis, the basic fields are:

Certain values can also be programmed onto switches:

Advanced administration is group together in several sub-tabs within the "Administration" tab (version 2.2 RC2 and later). This tab is only visible to Administration (users with nac_rights=99), and not read-only or write users.
There are several tabs:
To get running initially,
Optionally, for better documentation and device tracking, the Location, DeviceTabs and OperatingSystems tabs should be examines.
The config table contains a list of settings on the server, that can be changed via this GUI. Do not make changes here, unless you understand the consequences.
Each entry has a type, name, value, comment (explaining what the variable is) and a date indicating when it was last changed.
Some key entries are listed below:
To do: references to documentation where all of these options are described!
Users can be created locally with NAC, but are usually synchronised via an external Enterprise data source such as Active Directory.
The Key fields are the
A new field 'Gui Vlan Rights' was introduced in v3. This restricts the Vlans which the GUI users can select from in the Edit tab. This improves ease of use (a specific user can be shown only the vlans relevant to him/her) and security (if there are sensitive vlans that should not be visible to all). The field contains a comma separated list of vlan indices (not vlan numbers).
This field can only be changed if you have Administrator rights.
The Comment field is not synchronised with Directories, so its information stored locally only on the user stored in NAC.
The Manual Directory Sync is used for forcing a single user synchronisation, for advanced administration only.
The queries on the right provide a list of NAC configured administrators, those who can make changes, and the list of users with read-only access.
Fields:
The “VLAN exception” table is a feature allowing location dependant VLANs i.e. when VLAN naming is not consistent across switches, or not all VLANs are available on all switches. The also the Technical Guide chapter .
sw101 OfficeLAN LAN1
sw101 PrinterLAN LAN1
The documentation of where Users and Devices depending on buildings being defined, and then a list of locations or offices defined within that building. When locations have been defined, they are available in drop down lists on the Edit, Switch, Users and PatchCable tabs.
On some sites the Buildings and Locations are automatically synchronised from Enterprise sources.
The device type tables are just categories that you would find useful in for organisation for the end devices. They are used in the Edit Tab.
Four lookup tables are used to define the list of operating system options presented in the ‘Edit Tab’. These lookup are visible under the 'administration' tab.
These values are purely documentary in nature and are not automatically detected.
This section covers troubleshooting of problems in FreeNAC.
Syslog is the most important source of info of what is going on. First try "log" and "logv" commands, which tail all of syslog, and vmps related entries.
Are any MAC being constantly denied access?
Are any switches having problems contacting the vmps servers? They may often send
empty vmps packets (sort of like vmps pings):
tail -f /var/log/messages | egrep "MACNOTRECONFIRMED|000000000000"
egrep "MACNOTRECONFIRMED|000000000000" /var/log/messages
Watch the key stuff: what is allowed or not:
tail -f /var/log/messages | egrep "DENY|ALLOW"
Watch a summary of key events (V3):
tail -f /var/log/messages | egrep "Note"
Watch the logic of decisions:
tail -f /var/log/messages | egrep "vmpsd_external|postconnect"
Watch all relevant events
tail -f /var/log/messages | grep vmpsd
Are syslog messages arriving from the Switches in /var/log/messages? Lets find out what other systems are sending messages to this syslog.
egrep -v `uname -n` /var/log/messages |awk '{print $4}'| sort| uniq -c |sort Show a list of device MACs and the vlans attributed to them recently
tail -1000 /var/log/messages | egrep "DENY|ALLOW" | awk '{print $6, $7, $9}'| sort -uChecking SQL:
pgrep -l mysqld
31419 mysqld_safe
31460 mysqld
Vmps daemon
pgrep -l vmpsd
31478 vmpsd
31479 vmpsd_external
Lastseen daemon (master only)
pgrep -l vmps_lastseen
27616 vmps_lastseen
In an urgency, if you suspect vmps to be "hung", the easier thing may be simply to reboot the server, which shutsdown all daemons and restarts them:
reboot
Or restart specific daemons. If you restart mysql, make sure to restart them all:
/etc/init.d/mysql restart
/etc/init.d/vmps restart
/etc/init.d/vmps_lastseen restart
On starting vmps, there are no syslog messages and it is not in the list of running processes:
/etc/init.d/vmps start
Try and start vmps from the command line:
/opt/nac/bin/vmpsd -e /opt/nac/bin/vmpsd_external.php -l 0x0204
If you have more than one network interface (check with 'ifconfig -a'), add the '-a A.B.C.D' parameter
/opt/nac/bin/vmpsd -e /opt/nac/bin/vmpsd_external.php -l 0x0204 -a 10.10.10.10
Start without the error flags and watch syslog
/opt/nac/bin/vmpsd -e /opt/nac/bin/vmpsd_external.php
Start the vmpsd external script with some dummy input, to show PHP or include errors:
echo test | /opt/nac/bin/vmpsd_external.php
To see of VMPS requests are really coming from switches:
tcpdump -n port 1589 [sniff vmps requests]
Trace requests from one switch:
tcpdump -i eth1 host MYSWITCH and not port telnet
Note: use '-i' when you have several interfaces.
Example on Solaris (you may have snoop, not tcpdump)
snoop –d qfe0 port 1589
Check that the DB is running
mysql opennac
mysql>
// On the master, show the last 5 devices seen on the network
// (This proves that the 'vmps_lastseen' daemon is working)
select name,mac,LastSeen,LastVlan,r_ip from systems WHERE LastSeen IS NOT NULL ORDER BY LastSeen DESC LIMIT 5;
+---------+----------------+---------------------+-----------------+--------------+
| name | mac | LastSeen | LastVlan | r_ip |
+---------+----------------+---------------------+-----------------+--------------+
| u147769 | 0014.2240.fe38 | 2006-06-17 09:05:01 | tbw-drucker/cli | 10.12.59.227 |
| u147869 | 0014.2240.8caa | 2006-06-17 08:56:03 | tbw-drucker/cli | 10.12.59.23 |
| u147814 | 0014.2240.e7bb | 2006-06-17 08:52:41 | tbw-drucker/cli | 10.12.59.144 |
| u147862 | 0014.2240.ccbe | 2006-06-17 08:50:12 | tbw-drucker/cli | 10.12.59.217 |
| u147775 | 0014.2240.f749 | 2006-06-17 08:48:07 | tbw-drucker/cli | 10.12.59.131 |
+---------+----------------+---------------------+-----------------+--------------+
// Show recent server activity
select * from vmpslog ORDER BY datetime DESC LIMIT 100;
// Show server activity for a specific mac:
select * from vmpslog where what like '%000b.dbdc.d6f5%' limit 10;
// Show recent GUI changes / activity
select who,host,datetime,what from history ORDER BY datetime DESC LIMIT 100;
// Show GUI changes for a specif MAC:
select * from history where what like '%000b.dbdc.d6f5%' limit 10;
// If Hub Checking is enabled ($detect_hub=true in config.inc),
// look at the last 5 authentications. Works on Master or slave.
select * from vmpsauth ORDER BY AuthLast DESC LIMIT 5;
+----------------+---------------------+----------+-------------+------------+----------+
| mac | AuthLast | AuthPort | AuthSw | vlan_group | AuthVlan |
+----------------+---------------------+----------+-------------+------------+----------+
| 000b.dbdd.0d62 | 2006-06-08 19:04:18 | 2/11 | 10.12.56.33 | NULL | 100 |
| 0014.2240.e322 | 2006-06-08 19:29:18 | 2/32 | 10.12.56.23 | NULL | 106 |
| 0014.2240.8699 | 2006-06-08 19:29:18 | 2/24 | 10.12.56.23 | NULL | 106 |
| 0008.749d.ad72 | 2006-06-08 19:29:31 | 2/6 | 10.12.56.39 | NULL | 100 |
| 0014.222b.4410 | 2006-06-08 21:29:40 | 2/23 | 10.12.56.43 | NULL | 106 |
+----------------+---------------------+----------+-------------+------------+----------+
5 rows in set (0.00 sec)
Listen only on localhost, to test:
./vmpsd -d -p 10000 -e decide -l 0x0804 -a 127.0.0.1
Sending test VMPS requests yourself: The tool vqpcli.pl can be used to send test VMPS requests to a designated server, and thus test the server answer if did receive a real quest from a switch.
vqpcli.pl -v domain1 -s 192.168.245.19 -w 10.0.0.1 -i 2/4 -m 0010.0000.0000
Vlan: defaultvlan
MAC Address: 001000000000
Status: ALLOW
Explanation:
- send a request from the ctcs VTP domain, to the VMPS server 192.168.245.19 and request authorisation for mac 0010.a49f.30e3 on port 2/4 of switch 10.0.0.1 .
- the VMPS server allows access and attributes the “defaultvlan”
vqpcli.pl [-s=server -v=VTP domain, -w=Switch -i=Port -m=Mac -c=Last Vlan]
./vqpcli.pl -s 192.168.245.40 -v VTP_DOM -w 193.5.222.1 -i 'Fa0/17' -m '0800.20b0.cb95' -c VLAN1
./vqpcli.pl -s 127.0.0.1 -v VTP_DOM -w 193.5.222.1 -i 'Fa0/17' -m '0800.20b0.cb95' -c VLAN1
Summary of radius logs:
tail -500 /usr/local/var/log/radius/radius.log|egrep "User-Name|Exec-Program output|NAS-|Calling-Station-Id|check_mac"
tail /usr/local/var/log/radius/radius.log
tail -1000 /usr/local/var/log/radius/radius.log
Sniff radius requests (to verify radius/switch connectivity)
tcpdump -i eth0 -n host 10.0.0.1 (IP=Access Point)
Watch Samba logs, if there are problems authenticating in the domain:
tail /opt/samba/var/log.nmbd
tail /opt/samba/var/log.smbd
tail /opt/samba/var/log.winbindd
tail /opt/samba/var/log.wb-DOMAINANME
The following are some example for advanced troubleshooting on the server command line.
The Install Guide contains an overview of how FreeNAC ineracts with the switches, and how the various toolsa re configure.
A quick example of some configuration commands on Cisco is below.
Please refer to the FreeNAC Technical Guide (http://freenac.net/en/techguide) for more complete examples.
The web interface is not as rich as the primary Windows interface, a brief overview is given here. If offers easy access to information but only allows a few fields to be edited.
It is useful in situations where the Windows GUI is not installed, or to quickly troubleshoot. The WebGUI was rewritten in V3.0.2, these screen shots are from the previous version.
See also the WebGUI Install Guide.
The interface allow search of specific devices, and changing of Vlans (if authorized). The search syntax is directly taken from MySQL (e.g. search "srv%" for all hosts beginning by "srv")
From the general view, you can see available details about each hosts (here shown with Microsoft WSUS information)
The 'hub finder' makes a list of switch ports where more than one device was seen in the last days, indicating probably a hub or unmanaged switch or a PC with Virtual Machines.
This GUI maps switch port usage in the last 24 hours. We see one device on port 2/13, it is connected via cable X04.012 in room 4.16, here the PC 'murderdrool' is attached and this PC is assigned to the Use ‘ALLGAE’. We also see a printer on port 2/24.
If Nac is installed into your core network, it can affect the availability of critical workstations and servers. You may wish to have a way of deactivating NAC, in case of severe network problems (e.g. during the night, outside of support hours). This does not mean that NAC is unreliable, but planning for disaster is important.
This feature is describe in the Technical Guide.