| Title: Full list of services offered by a default OpenBSD installation | |
| Author: Solène | |
| Date: 16 February 2021 | |
| Tags: openbsd70 openbsd unix | |
| Description: | |
| # Introduction | |
| This article is about giving a short description of EVERY service | |
| available as part of an OpenBSD default installation (= no package | |
| installed). | |
| From all this list, the following list is started by default: cron, | |
| dhcpleased, pflogd, sndiod, openssh, ntpd, slaacd, resolvd, sshd, | |
| spamlogd, syslogd and smtpd. Network related daemons smtpd (localhost | |
| only), openssh and ntpd (as a client) are running. | |
| # Service list | |
| I extracted the list of base install services by looking at | |
| /etc/rc.conf. | |
| ```shell command starting with a dollar sign meaning it should be run by a regu… | |
| $ grep _flags /etc/rc.conf | cut -d '_' -f 1 | |
| ``` | |
| ## amd | |
| This daemon is used to automatically mount a remote NFS server when | |
| someone wants to access it, it can provide a replacement in case the | |
| file system is not reachable. More information using "info amd". | |
| amd man page | |
| ## apmd | |
| This is the daemon responsible for frequency scaling. It is important | |
| to run it on workstation and especially on laptop, it can also trigger | |
| automatic suspend or hibernate in case of low battery. | |
| apmd man page | |
| apm man page | |
| ## bgpd | |
| This is a BGP daemon that is used by network routers to exchanges about | |
| routes with others routers. This is mainly what makes the Internet | |
| work, every hosting company announces their IP ranges and how to reach | |
| them, in returns they also receive the paths to connect to all others | |
| addresses. | |
| OpenBGPD website | |
| ## bootparamd | |
| This daemon is used for diskless setups on a network, it provides | |
| information about the client such as which NFS mount point to use for | |
| swap or root devices. | |
| Information about a diskless setup | |
| ## cron | |
| This is a daemon that will read from each user cron tabs and the system | |
| crontabs to run scheduled commands. User cron tabs are modified using | |
| crontab command. | |
| Cron man page | |
| Crontab command | |
| Crontab format | |
| ## dhcpd | |
| This is a DHCP server used to automatically provide IPv4 addresses on | |
| an network for systems using a DHCP client. | |
| ## dhcpleased | |
| This is the new default DHCPv4 client service. It monitors multiples | |
| interfaces and is able to handle more complicated setup than dhclient. | |
| dhcpleased man page | |
| ## dhcrelay | |
| This is a DHCP requests relay, used to on a network interface to relay | |
| the requests to another interface. | |
| ## dvmrpd | |
| This daemon is a multicast routing daemon, in case you need multicast | |
| spanning to deploy it outside of your local LAN. This is mostly | |
| replaced by PIM nowadays. | |
| ## eigrpd | |
| This daemon is an Internal gateway link-state routing protocol, it is | |
| like OSPF but compatible with CISCO. | |
| ## ftpd | |
| This is a FTP server providing many features. While FTP is getting | |
| abandoned and obsolete (certainly because it doesn't really play well | |
| with NAT) it could be used to provide read/write anonymous access on a | |
| directory (and many other things). | |
| ftpd man page | |
| ## ftpproxy | |
| This is a FTP proxy daemon that one is supposed to run on a NAT system, | |
| this will automatically add PF rules to connect an incoming request to | |
| the server behind the NAT. This is part of the FTP madness. | |
| ## ftpproxy6 | |
| Same as above but for IPv6. Using IPv6 behind a NAT make no sense. | |
| ## hostapd | |
| This is the daemon that turns OpenBSD into a WiFi access point. | |
| hostapd man page | |
| hostapd configuration file man page | |
| ## hotplugd | |
| hotplugd is an amazing daemon that will trigger actions when devices | |
| are connected or disconnected. This could be scripted to automatically | |
| run a backup if some conditions are met like an usb disk inserted | |
| matching a known name or mounting a drive. | |
| hotplugd man page | |
| ## httpd | |
| httpd is a HTTP(s) daemon which supports a few features like fastcgi | |
| support, rewrite and SNI. While it doesn't have all the features a web | |
| server like nginx has, it is able to host some PHP programs such as | |
| nextcloud, roundcube mail or mediawiki. | |
| httpd man page | |
| httpd configuration file man page | |
| ## identd | |
| Identd is a daemon for the Identification Protocol which returns the | |
| login name of a user who initiatied a connection, this can be used on | |
| IRC to authenticate which user started an IRC connection. | |
| ## ifstated | |
| This is a daemon monitoring the state of network interfaces and which | |
| can take actions upon changes. This can be used to trigger changes in | |
| case of an interface losing connectivity. I used it to trigger a route | |
| change to a 4G device in case a ping over uplink interface was failing. | |
| ifstated man page | |
| ifstated configuration file man page | |
| ## iked | |
| This daemon is used to provide IKEv2 authentication for IPSec tunnel | |
| establishment. | |
| OpenBSD FAQ about VPN | |
| ## inetd | |
| This daemon is often forgotten but is very useful. Inetd can listen on | |
| TCP or UDP port and will run a command upon connection on the related | |
| port, incoming data will be passed as standard input of the program and | |
| program standard output will be returned to the client. This is an | |
| easy way to turn a program into a network program, it is not widely | |
| used because it doesn't scale well as the whole process of running a | |
| new program upon every connection can push a system to its limit. | |
| inetd man page | |
| ## isakmpd | |
| This daemon is used to provide IKEv1 authentication for IPSec tunnel | |
| establishment. | |
| ## iscsid | |
| This daemon is an iSCSI initator which will connect to an iSCSI target | |
| (let's call it a network block device) and expose it locally as a | |
| /dev/vcsi device. OpenBSD doesn't provide a target iSCSI daemon in its | |
| base system but there is one in ports. | |
| ## ldapd | |
| This is a light LDAP server, offering version 3 of the protocol. | |
| ldap client man page | |
| ldapd daemon man page | |
| ldapd daemon configuration file man page | |
| ## ldattach | |
| This daemon allows to configure programs that are exposed as a serial | |
| port, such as gps devices. | |
| ## ldomd | |
| This daemon is specific to the sparc64 platform and provide services | |
| for dom feature. | |
| ## lockd | |
| This daemon is used as part of a NFS environment to support file | |
| locking. | |
| ## ldpd | |
| This daemon is used by MPLS routers to get labels. | |
| ## lpd | |
| This daemon is used to manage print access to a line printer. | |
| ## mountd | |
| This daemon is used by remote NFS client to give them information about | |
| what the system is currently offering. The command showmount can be | |
| used to see what mountd is currently exposing. | |
| mountd man page | |
| showmount man page | |
| ## mopd | |
| This daemon is used to distribute MOP images, which seem related to | |
| alpha and VAX architectures. | |
| ## mrouted | |
| Similar to dvmrpd. | |
| ## nfsd | |
| This server is used to service the NFS requests from NFS client. | |
| Statistics about NFS (client or server) can be obtained from the | |
| nfsstat command. | |
| nfsd man page | |
| nfsstat man page | |
| ## npppd | |
| This daemon is used to establish connection using PPP but also to | |
| create tunnels with L2TP, PPTP and PPPoE. PPP is used by some modems | |
| to connect to the Internet. | |
| ## nsd | |
| This daemon is an authoritative DNS nameserver, which mean it is | |
| holding all information about a domain name and about the subdomains. | |
| It receive queries from recursive servers such as unbound / unwind | |
| etc... If you own a domain name and you want to manage it from your | |
| system, this is what you want. | |
| nsd man page | |
| nsd configuration file man page | |
| ## ntpd | |
| This daemon is a NTP service that keep the system clock at the correct | |
| time, it can use ntp servers or sensors (like GPS) as time source but | |
| also support using remote servers to challenge the time sources. It | |
| can acts a daemon to provide time to other NTP client. | |
| ntpd man page | |
| ## ospfd | |
| It is a daemon for the OSPF routing protocol (Open Shortest Path | |
| First). | |
| ## ospf6d | |
| Same as above for IPv6. | |
| ## pflogd | |
| This daemon is receiving packets from PF matching rules with a "log" | |
| keyword and will store the data into a logfile that can be reused with | |
| tcpdump later. Every packet in the logfile contains information about | |
| which rule triggered it so it is very practical for analysis. | |
| pflogd man page | |
| tcpdump | |
| ## portmap | |
| This daemon is used as part of a NFS environment. | |
| ## rad | |
| This daemon is used on IPv6 routers to advertise routes so client can | |
| automatically pick up routes. | |
| ## radiusd | |
| This daemon is used to offer RADIUS protocol authentication. | |
| ## rarpd | |
| This daemon is used for diskless setups in which it will help | |
| associating an ARP address to an IP and hostname. | |
| Information about a diskless setup | |
| ## rbootd | |
| Per the man page, it says « rbootd services boot requests from | |
| Hewlett-Packard workstation over LAN ». | |
| ## relayd | |
| This daemon is used to accept incoming connections and distribute them | |
| to backend. It supports many protocols and can act transparently, its | |
| purpose is to have a front end that will dispatch connections to a list | |
| of backend but also verify backend status. It has many uses and can | |
| also be used in addition to httpd to add HTTP headers to a request, or | |
| apply conditions on HTTP request headers to choose a backend. | |
| relayd man page | |
| relayd control tool man page | |
| relayd configuration file man page | |
| ## resolvd | |
| This daemon is used to manipulate the file /etc/resolv.conf depending | |
| on multiple factors like configured DNS or stragegy change in unwind. | |
| resolvd man page | |
| ## ripd | |
| This is a routing daemon using an old protocol but widely supported. | |
| ## route6d | |
| Same as above but for IPv6. | |
| ## sasyncd | |
| This daemon is used to keep IPSec gateways synchronized in case of a | |
| fallback required. This can be used with carp devices. | |
| ## sensorsd | |
| This daemon gathers monitoring information from the hardware like | |
| temperature or disk status. If a check exceeds a threshold, a command | |
| can be run. | |
| sensorsd man page | |
| sensorsd configuration file man page | |
| ## slaacd | |
| This service is a daemon that will automatically pick up auto IPv6 | |
| configuration on the network. | |
| ## slowcgi | |
| This daemon is used to expose a CGI program as a fastcgi service, | |
| allowing httpd HTTP server to run CGI. This is an equivalent of inetd | |
| but for fastcgi. | |
| slowcgi man page | |
| ## smtpd | |
| This daemon is the SMTP server that will be used to deliver mails | |
| locally or to remote email server. | |
| smtpd man page | |
| smtpd configuration file man page | |
| smtpd control command man page | |
| ## sndiod | |
| This is the daemon handling sound from various sources. It also | |
| support sending local sound to a remote sndiod server. | |
| sndiod man page | |
| sndiod control command man page | |
| mixerctl man page to control an audio device | |
| OpenBSD FAQ about multimedia devices | |
| ## snmpd | |
| This daemon is a SNMP server exposing some system metrics to SNMP | |
| client. | |
| snmpd man page | |
| snmpd configuration file man page | |
| ## spamd | |
| This daemon acts as a fake server that will delay or block or pass | |
| emails depending on some rules. This can be used to add IP to a block | |
| list if they try to send an email to a specific address (like a | |
| honeypot), pass emails from servers within an accept list or delay | |
| connections for unknown servers (grey list) to make them and reconnect | |
| a few times before passing the email to the SMTP server. This is a | |
| quite effective way to prevent spam but it becomes less relevant as | |
| sender use whole ranges of IP to send emails, meaning that if you want | |
| to receive an email from a big email server, you will block server | |
| X.Y.Z.1 but then X.Y.Z.2 will retry and so on, so none will pass the | |
| grey list. | |
| ## spamlogd | |
| This daemon is dedicated to the update of spamd whitelist. | |
| ## sshd | |
| This is the well known ssh server. Allow secure connections to a shell | |
| from remote client. It has many features that would gain from being | |
| more well known, such as restrict commands per public key in the | |
| ~/.ssh/authorized_keys files or SFTP only chrooted accesses. | |
| sshd man page | |
| sshd configuration file man page | |
| ## statd | |
| This daemon is used in NFS environment using lockd in order to check if | |
| remote hosts are still alive. | |
| ## switchd | |
| This daemon is used to control a switch pseudo device. | |
| switch pseudo device man page | |
| ## syslogd | |
| This is the logging server that receives messages from local programs | |
| and store them in the according logfile. It can be configured to pipe | |
| some messages to command, program like sshlockout uses this method to | |
| learn about IP that must be blocked, but can also listen on the network | |
| to aggregates logs from other machines. The program newsyslog is used | |
| to rotate files (move a file, compress it and allow a new file to be | |
| created and remove too old archives). Script can use the command | |
| logger to send text to syslog. | |
| syslogd man page | |
| syslogd configuration file man page | |
| newsyslog man page | |
| logger man page | |
| ## tftpd | |
| This daemon is a TFTP server, used to provide kernels over the network | |
| for diskless machines or push files to appliances. | |
| Information about a diskless setup | |
| ## tftpproxy | |
| This daemon is used to manipulate the firewall PF to relay TFTP | |
| requests to a TFTP server. | |
| ## unbound | |
| This daemon is a recursive DNS server, this is the kind of server | |
| listed in /etc/resolv.conf whose responsibility is to translate a fully | |
| qualified domain name into the IP address behind, asking one server at | |
| a time, for example, to ask www.dataswamp.org server, it is required | |
| to ask the .org authoritative server where is the authoritative server | |
| for dataswamp (within .org top domain), then dataswamp.org DNS server | |
| will be asked what is the address of www.dataswamp.org. It can also | |
| keep queries in cache and validates the queries and replies, it is a | |
| good idea to have such a server on a LAN with many client to share the | |
| queries cache. | |
| unbound man page | |
| unbound configuration file man page | |
| ## unwind | |
| This daemon is a local recursive DNS server that will make its best to | |
| give valid replies, it is designed for nomad users that may encounter | |
| hostile environments like captive portals or dhcp offered DNS server | |
| preventing DNSSEC to work etc.. Unwind polls a few DNS sources | |
| (recursive from root servers, provided by dns, stub or DNS over TLS | |
| server from configuration file) regularly and choose the fastest. It | |
| will also act as a local cache and can't listen on the network to be | |
| used by other clients. It also supports a list of blocked domains as | |
| input. | |
| unwind man page | |
| unwind configuration file man page | |
| unwind control command man page | |
| ## vmd | |
| This is the daemon that allow to run virtual machines using vmm. As of | |
| OpenBSD 6.9 it is capable of running OpenBSD and Linux guests without | |
| graphical interface and only one core. | |
| vmd man page | |
| vmd configuration file man page | |
| vmd control command man page | |
| vmm driver man page | |
| OpenBSD FAQ about virtualization | |
| ## watchdogd | |
| This daemon is used to trigger watchdog timer devices if any. | |
| ## wsmoused | |
| This daemon is used to provide a mouse support to the console. | |
| ## xenodm | |
| This daemon is used to start the X server and allow users to | |
| authenticate themselves and log in their session. | |
| xenodm man page | |
| ## ypbind | |
| This daemon is used with a Yellow Page (YP) server to keep and maintain | |
| a binding information file. | |
| ## ypldap | |
| This daemon offers a YP service using a LDAP backend. | |
| ## ypserv | |
| This daemon is a YP server. |