The sc_filterpolicy utility provides the ability to connect to a running scamper(1) instance and use that
instance to test systems for congruent filtering policy. The utility tests each system specified in the
input file by probing for application reachability with ICMP, UDP, and TCP probes, using both IPv4 and
IPv6 where applicable. Each system in the input file should have multiple IP addresses specified; the
driver probes each IP address on each system one at a time to avoid causing the remote system to rate-
limit responses. sc_filterpolicy obtains speed by probing systems in parallel, though it may appear to
operate slowly because no progress is reported until all addresses belonging to a device have been tested
one at a time.
The applications supported by sc_filterpolicy to test filtering policy are:
-ICMP: test responsiveness to ICMP echo request packets. We classify the IP address as responsive to
ICMP echo requests if it sends an ICMP echo reply.
-NetBIOS: test responsiveness to TCP SYN packets sent to port 139 (the NetBIOS port). We classify
the IP address as responsive if it sends a SYN/ACK.
-MSSQL: test responsiveness to TCP SYN packets sent to port 1433 (the Microsoft SQL server default
port). We classify the IP address as responsive if it sends a SYN/ACK.
-FTP: test responsiveness to TCP SYN packets sent to port 21 (the default port for FTP control
connections). We classify the IP address as responsive if it sends a SYN/ACK.
-SSH: test responsiveness to TCP SYN packets sent to port 22 (the default port for SSH). We classify
the IP address as responsive if it sends a SYN/ACK.
-Telnet: test responsiveness to TCP SYN packets sent to port 23 (the default port for telnet). We
classify the IP address as responsive if it sends a SYN/ACK.
-MySQL: test responsiveness to TCP SYN packets sent to port 3306 (the default port for MySQL). We
classify the IP address as responsive if it sends a SYN/ACK.
-RDP: test responsiveness to TCP SYN packets sent to port 3389 (the default port for RDP). We
classify the IP address as responsive if it sends a SYN/ACK.
-HTTPS: test responsiveness to TCP SYN packets sent to port 443 (the default port for HTTPS). We
classify the IP address as responsive if it sends a SYN/ACK.
-SMB: test responsiveness to TCP SYN packets sent to port 445 (the default port for SMB). We
classify the IP address as responsive if it sends a SYN/ACK.
-HTTP: test responsiveness to TCP SYN packets sent to port 80 (the default port for HTTP). We
classify the IP address as responsive if it sends a SYN/ACK.
-BGP: test responsiveness to TCP SYN packets sent to port 179 (the default port for BGP). We
classify the IP address as responsive if it sends a SYN/ACK.
-NTP: test responsiveness to UDP packets sent to port 123 (the default port for NTP) with an NTP
version request payload. We classify the IP address as responsive if it sends a UDP response.
-DNS: test responsiveness to UDP packets sent to port 53 (the default port for DNS) with a query for
www.google.com. We classify the IP address as responsive if it sends a UDP response.
-SNMP: test responsiveness to UDP packets sent to port 161 (the default port for SNMP) with a get for
sysDescr via the public community using the SNMPv2c protocol. We classify the IP address as
responsive if it sends a UDP response.
-VNC: test responsiveness to TCP SYN packets sent to port 5900 (the default port for VNC). We
classify the IP address as responsive if it sends a SYN/ACK.
The options supported by sc_filterpolicy are as follows:
-? prints a list of command line options and a synopsis of each.
-ainput-file
specifies the name of the input file which consists of a sequence of systems to test. See the
examples section for input-file formatting examples.
-D with this option set, sc_filterpolicy will detach and become a daemon.
-llog-file
specifies the name of a file to log progress output from sc_filterpolicy generated at run time.
-ooutput-file
specifies the name of the file to be written. The output file will use the warts(5) format.
-Ooptions
allows the behavior of sc_filterpolicy to be further tailored. The current choices for this
option are:
-impatient: order the systems found in the input-file so that those with the most addresses
are probed first, so that probing will complete as fast as possible.
-incongruent: only report systems which are inferred to have an incongruent filtering policy.
-trace: probe the addresses found in the input-file using traceroute, rather than ping.
-tuples: signals that the input-file is formatted as tuples, rather than rows. See the
examples section for more information.
-pscamper-port
specifies the port on the local host where scamper(1) is accepting control socket connections.
-rdata-file
specifies the name of a previously collected filter policy data file, in warts(5) format, to read
and analyse.
-tprobe-class
specifies the class of probes to send for each IP address in the input file. The current choices
for this option are:
-router: test ICMP, SSH, Telnet, HTTPS, HTTP, BGP, NTP, DNS, and SNMP.
-server: test ICMP, FTP, SSH, Telnet, MySQL, RDP, HTTPS, SMB, HTTP, NTP, DNS, and SNMP.
-all: test ICMP, NetBIOS, MSSQL, FTP, SSH, Telnet, MySQL, RDP, HTTPS, SMB, VNC, HTTP, BGP,
NTP, DNS, and SNMP.
-Ttest
specifies adjustments to the test schedule from the supported application types. Prefacing an
application with + causes the application type to be added to the test schedule, and prefacing an
application with - causes the application type to be removed from the test schedule.
-Uscamper-unix
specifies the unix domain socket on the local host where scamper(1) is accepting control socket
connections.