ARGUS(8)
π ARGUS(8) β the system manager's manual, but make it make sense π
okay bestie, gather round, because this is the audit record generation and utilization system and it is genuinely iconic. it's argus, it lives in section 8 of the system manager's manual, and i'm about to walk you through it like we're texting at 2am. no cap. π¦
β¨ NAME β¨
argus β audit record generation and utilization system. yes that's the whole name. it's giving main character energy from the jump. π
πΈ SYNOPSIS πΈ
argus [ options ] [ filter expression ]
that's it. that's the vibe. options in, filter expression optionally in, audited network flows out. slay. π
π COPYRIGHT π
Copyright (c) 2000-2024 QoSient, LLC All rights reserved.
(protect the intellectual property, periodt. β¨)
π¦ DESCRIPTION π¦
okay so. Argus is a data network transaction auditing tool β and the way that it categorizes and tracks network packets that match the libpcap filter expression into a protocol-specific network flow transaction model is honestly so satisfying. it reports on the transactions it discovers as periodic network flow data, which is perfect for historical and near real-time processing: forensics, trending, and alarm/alerting. literally all the good stuff. π₯
Designed to run as a daemon, argus reads packets directly from a network interface, classifies them into network transactions, and appends the resulting network flow data to a log file or an open socket connected to an argus client (such as ra(1)). she's connected, she's listening. π«Ά
Argus can also read packet information from tcpdump(1), snoop(1), NLANR's Moat Time Sequence Header, or Endaces ERF raw packet files. and yes, she can even be configured to append her transaction logs to stdout if that's the vibe you're going for.
Argus can provide address based access control for its socket connection facility using tcp_wrappers, and it can provide strong authentication and confidentiality protection using SASL2 technology. but bestie, listen β refer to the package documentation to enable each of these services. i'm not gonna pretend the setup is automatic. π
π OPTIONS π
-Aβ Generate application byte metrics in each audit record. metrics queen. π-bβ Dump the compiled packet-matching code to stdout and stop. this is the "let me see what you did there" option, used to debug filter expressions.-B<addr>β Specify the bind interface address for remote access. acceptable values are IP version 4 addresses. the default is to bind to theINADDR_ANYaddress. she's open to everyone by default, i fear.-c<dir>β Specify a chroot directory to use after privilege access is complete. β οΈ must be super user to use this option.-Cβ Run argus in control plane capture mode. this sets the interface packet snap length to capture full packets, and enables detailed flow tracking for supported control plane protocols.-dβ Run argus as a daemon. this causes argus to do the things that Unix daemons do and return, if there were no errors, with argus running as a detached process. she's independent now. π§-D<level>β Print debug messages to stderr. the higher the<level>the more information printed. acceptable levels are 1-8. turn it up. π-e<value>β Specify the source identifier for this argus. acceptable values are numbers, strings, hostnames or ip address. double quotes around the parameter are used to designate the string format. the longest supported string is 4 characters long. β οΈ be sure and single quote or 'escape' the double quotes so that the shell doesn't gooble up the delimiters.
This option sets a global Source identifier that can be overriden by specific -i options.
argus -e '"arg1"'
argus -e \"arg2\"
-Edaysβ Check out a license and cache locally for the specified number of days. any positive integer is valid but the license server may impose a limit on this value. if the value is zero (0) or the option is not specified, a floating license is requested for the duration of the process.-fβ When reading packets from a packet capture file, the-foption causes argus to not stop when end of file is reached, but rather to wait for additional packets to be appended to the input. the-foption is ignored if the standard input is a pipe, but not if it is a FIFO. she's patient. she'll wait. π-Fβ Use conffile as a source of configuration information. options set in this file override any other specification, and so this is the last word on option values. final answer, no rebuttals. π-g<group>β Specify a group name to change to after privilege access is complete.-hβ Print an explanation of all the arguments. the help button. the "bestie explain" button. π«Ά-i<interface>β Specify the physical network<interface>to be audited. the default is the first network interface that is up and running.
The syntax for specifying the interface is the same format used in the argus.conf.5 file. the optional source id specification can be an IPv4 address, an integer, or a string denoted using double quotes.
-i interface[/srcid]
-i all[/srcid]
-i dup:en0,en1/"ap01" ( en0 and en1 are in ingress and egress interfaces )
-i bond:en0,en1/2.3.4.5 ( en0 and en1 are bonded interfaces )
-i en0 en1 ( equivalent '-i bond:en0,en1' )
-i dup:[bond:en0,en1],en2/3 ( in this case 3 is the srcid )
-i en0/"en0" -i en1/"en1" ( equivalent '-i ind:en0/srcid,en1/srcid' )
-Jβ Generate packet performance data in each audit record. π-k<level>β Specify the log level when sending messages to the terminal. the value must be an integer in the range 0..7. these correspond to the eight syslog levelsLOG_EMERGthroughLOG_DEBUG. the default level isLOG_WARNING.-M<secs>β Specify the interval in<secs>of argus status records. these records are used to report the internal status of argus itself. the default is 300 seconds.-mβ Provide MAC addresses information in argus records. π-N<packet count>|<packet range>β Specify the number of packets to process. you can give an absolute number, or a range with the syntax"start-stop". examples are:
-N 27 - read the first 27 packets.
-N 1034-1434 - read 100 packets starting with 1034.
-Oβ Turn off the Berkeley Packet Filter optimizer. β οΈ no reason to do this unless you think the optimizer generates bad code. (do you? do you really? π€¨)-pβ Do not set the physical network interface in promiscuous mode. if the interface is already in promiscuous mode, this option may have no effect. do this to audit only the traffic coming to and from the system argus is running on. she's being exclusive, and honestly? respect.-P<portnum>β Specifies the<portnum>for remote client connection. the default is to not support remote access. setting the value to zero (0) will forceably turn off the facility. π«-r<[type:]file [type:]file ... >β Read fromtcpdump(1),snoop(1)or NLANR's Moat Time Sequence Header (tsh) packet capture files. if the packet capture file is atshformat file, then the-toption must also be used. the file"-"specifies stdin as the source of packets.
The type provides the opportunity to specify what type of packet source to expect and process. supported types are '' (default) and 'cisco', where argus will process the payload of packets as netflow records, when found.
β οΈ Argus will read from only one input packet file at a time, and will open the files in lexigraphic order. care should be taken to ensure that the timestamps in the packets are ordered, or unexpected behavior may result. if the -r option is specified, argus will not put down a listen(2) to support remote access.
-Rβ Generate argus records such that response times can be derived from transaction data. β±οΈ-s<bytes>β Specify the packet snaplen.-S<secs>β Specify the status reporting interval in<secs>for all traffic flows.-tβ Indicate that the expected packet capture input file is a NLANR's Moat Time Sequence Header (tsh) packet capture file.-Ttimescale β Specify a playback timescale for realtime processing of input packets.-u<user>β Specify an account name to change to after privilege access is complete.-Uβ Specify the number of user bytes to capture.-w<file | stream ["filter"]>β Append transaction status records to output-file or write records to the URL based stream. supported stream URLs are'argus-udp://host[:port]', where the default port is 561. an output-file of'-'directs argus to write the resulting argus-file output to stdout. π«Ά-Xβ Clear existing argus configuration. this removes any initialization done prior to encountering this flag. allows you to eliminate the effects of the/etc/argus.conffile, or anyargus.conffiles that may have been loaded. fresh start, clean slate, new me. π§β¨-Zβ Collect packet size information. this option turns on packet size reporting for all flows. argus will provide the mean, max, min and standard deviation of the packet sizes seen during the flow status interval. math girlies rise up. πexpressionβ Thistcpdump(1)expression specifies which transactions will be selected. if no expression is given, all transactions are selected. otherwise, only transactions for which expression istruewill be dumped. for a complete expression format description, please refer to thetcpdump(1)man page. iykyk. π
π SIGNALS π
Argus catches a number of signal(3) events. the three signals SIGHUP, SIGINT, and SIGTERM cause argus to exit, writing TIMEDOUT status records for all currently active transactions. she's leaving but she's leaving cleanly. π
The signal SIGUSR1 will turn on debug reporting, and subsequent SIGUSR1 signals will increment the debug-level. the signal SIGUSR2 will cause argus to turn off all debug reporting. volume up, volume down. ππ
π FILES π
/etc/argus.confβ argus daemon configuration file/var/run/argus.#.#.pidβ PID file
okay that's part 1 bestie, and there's more coming so don't go anywhere. π¦β¨
β¨ EXAMPLES β¨
Okay bestie, this is where it gets fun. Real-world receipts, let's go π
π¦ Run argus as a daemon
Run argus as a daemon, writing all its transaction status reports to output-file. This is the typical mode, fr fr β it's the default vibe.
argus -d -e `hostname` -w output-file
π Filter out the ICMP, bestie
If ICMP traffic is not of interest to you (no shade to ICMP, it's just not your era), you can filter out ICMP packets on input.
argus -w output-file - ip and not icmp
π Multiple output streams, main character energy
Argus supports both input filtering and output filtering, and argus supports multiple output streams, each with their own independant filters. Output streams can be written to udp based sockets, to unicast or multicast addresses. Not me being obsessed with this level of flexibility π
So if you are interested in tracking IP traffic only (that's the input filter) and want to report ICMP traffic to one output stream, and all other IP traffic in another output stream:
argus -w argus-udp://224.0.20.21:561 "icmp" \
-w argus-udp://224.0.20.21:562 "not icmp" - ip
Like, two streams, two filters, one input filter. Ate. Periodt. π₯
πΈ Auditing between two gateway routers
Audit the network activity that is flowing between the two gateway routers, whose ethernet addresses are 00:08:03:2D:42:01 and 00:00:0C:18:29:F1. Without specifying an output-file, it is assumed that the transaction status reports will be written to a remote client. In this case we have changed the port that the remote client will use to port 430/tcp.
argus -P 430 ether host (0:8:3:2d:42:1 and 0:0:c:18:29:f1) &
π§ ICMP ECHO + RTT data, the girlies love latency
Audit each individual ICMP ECHO transaction from data in <dir>. You would do this to gather Round Trip Time (RTT) data within your network. Append the output to output-file.
argus -R dir -w output-file "echo" - icmp
RTT data?? In my network?? It's more likely than you think π
π NFS + high data reduction
Audit all NFS transactions involving the server fileserver and increase the reporting interval to 3600 seconds (to provide high data reduction). Append the output to output-file.
argus -S 3600 -w output-file - host fileserver and udp and port 2049 &
Data reduction is that girl. Highkey iconic. π
π Import flow data from pcap
Import flow data from pcap file containing Cisco flow data packets. Write output to stdout, to a ra.1 instance.
argus -r cisco:pcap-file -w - | ra
Piping straight into ra?? Chef's kiss. The pipeline is serving. π«Ά
π AUTHORS π
Carter Bullard (carter@qosient.com)
π SEE ALSO π
ok that's the whole page bestie, you made it to the end, I'm so proud of you π₯Ήπ
argus 5.0.3.0 β 17 October 2016 β ARGUS(8)
Go read your logs, hydrate, and slay β¨π π
π¦ where this page comes from
- debian trixie: argus-server 2:5.0.2-3 Β· GPL-2.0-or-later
- ubuntu questing: argus-server 2:5.0.2-3
- ubuntu resolute: argus-server 2:5.0.2-3build1 Β· GPL-2.0-or-later
- ubuntu stonking: argus-server 2:5.0.2-3build1 Β· GPL-2.0-or-later
- Copyright (c) 2000-2024 QoSient, LLC
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms