/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos.service

  • Committer: Teddy Hogeborn
  • Date: 2024-11-17 16:53:00 UTC
  • Revision ID: teddy@recompile.se-20241117165300-02hxm96s8cj9528e
mandos: Avoid closing configured server network socket

If we are passed a pre-created created network socket as a file
descriptor, we must avoid later closing it (when stdin, stdout and
stderr are dup2()ed over with /dev/null) by making sure that the
network file descriptor is not 0, 1, or 2, by creating a new file
descriptor if necessary.

However, when we create a new file descriptor we must check that the
new file descriptor is not 0, 1, or 2 either, and try again until we
get a suitable file descriptor.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
[Unit]
2
2
Description=Server of encrypted passwords to Mandos clients
3
3
Documentation=man:intro(8mandos) man:mandos(8)
 
4
## If the server is configured to listen to a specific IP or network
 
5
## interface, it may be necessary to change "network.target" to
 
6
## "network-online.target".
 
7
After=network.target
 
8
## If the server is configured to not use ZeroConf, these two lines
 
9
## become unnecessary and should be removed or commented out.
 
10
After=avahi-daemon.service
 
11
Requisite=avahi-daemon.service
4
12
 
5
13
[Service]
 
14
## If the server's D-Bus interface is disabled, the "BusName" setting
 
15
## should be removed or commented out.
6
16
BusName=se.recompile.Mandos
7
 
ExecStart=/usr/sbin/mandos --foreground
 
17
EnvironmentFile=/etc/default/mandos
 
18
ExecStart=/usr/sbin/mandos --foreground $DAEMON_ARGS
8
19
Restart=always
9
20
KillMode=mixed
10
21
## Using socket activation won't work, because systemd always does
11
22
## bind() on the socket, and also won't announce the ZeroConf service.
12
23
#ExecStart=/usr/sbin/mandos --foreground --socket=0
13
24
#StandardInput=socket
 
25
# Restrict what the Mandos daemon can do.  Note that this also affects
 
26
# "checker" programs!
 
27
PrivateTmp=yes
 
28
PrivateDevices=yes
 
29
ProtectSystem=full
 
30
ProtectHome=yes
 
31
CapabilityBoundingSet=CAP_KILL CAP_SETGID CAP_SETUID CAP_DAC_OVERRIDE CAP_NET_RAW
 
32
ProtectKernelTunables=yes
 
33
ProtectControlGroups=yes
14
34
 
15
35
[Install]
16
36
WantedBy=multi-user.target