Hello Arturo, thank you for quick response. UNIX socket > =========== > > Regarding the UNIX socket path, I would like to note that the default > in debian is (should be): > * /var/run/suricata-command.socket > > Therefore, your issues with suricata looking for > /var/run/suricata/suricata-command.socket are perhaps > related to a previous version of suricata? >
No - it is related to run suricata under 'suri' user. I had to create /var/run/suricata directory to let suricata user create suricata-command.socket socket. The regular user does not have write permissions to /var/run directory. Other possibility is to create <default> socket in ExecStartPre and change it's permissions to grant suri user read-write access (not tested). oinkmaster > ========== > > Yes, the updater script looks for the socket in the default path, which is: > * /var/run/suricata-command.socket > > I've not tested to run suricata with a different user apart of the > default, which is root. > And that's the point - maybe described not in enough details by me. ExecReload suricatasc > ===================== > > Again, it seems is the same issue with the socket path. > Yes it is. > $PID instead of $MAINPID > ======================== > > I just tested this here and I see no issues. The systemd.service(5) > manpage refers to $MAINPID > > Could you please give more info? > > Arturo Borrero González > These are my tries to reload: ~# /etc/init.d/suricata reload Reloading suricata configuration (via systemctl): suricata.serviceJob for suricata.service failed. See 'systemctl status suricata.service' and 'journalctl -xn' for details. failed! ~# systemctl status suricata.service ● suricata.service - Suricata IDS/IDP daemon Loaded: loaded (/etc/systemd/system/suricata.service; disabled) Active: active (running) (Result: exit-code) since Thu 2016-09-29 16:01:01 CEST; 6 days ago Docs: man:suricata(8) man:suricatasc(8) https://redmine.openinfosecfoundation.org/projects/suricata/wiki Process: 19693 ExecReload=/usr/bin/suricatasc -c reload-rules (code=exited, status=1/FAILURE) Main PID: 2897 (Suricata-Main) CGroup: /system.slice/suricata.service └─2897 /usr/bin/suricata -D --af-packet -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Notice> - This is Suricata version 3.1.2 RELEASE Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Info> - CPUs/cores online: 4 Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Info> - HTTP memcap: 3221225472 Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Info> - Found an MTU of 1500 for 'eth1' Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Info> - Found an MTU of 1500 for 'eth2' Sep 29 16:01:01 ba-suricata-s.hq.eset.com suricata[2895]: 29/9/2016 -- 16:01:01 - <Info> - Found an MTU of 1500 for 'eth3' Sep 29 16:01:01 ba-suricata-s.hq.eset.com systemd[1]: Started Suricata IDS/IDP daemon. Oct 06 08:56:03 ba-suricata-s.hq.eset.com systemd[1]: Reloading Suricata IDS/IDP daemon. Oct 06 08:56:03 ba-suricata-s.hq.eset.com suricatasc[19693]: Unable to connect to socket /var/run//suricata-command.socket: [Er...ctory Oct 06 08:56:03 ba-suricata-s.hq.eset.com systemd[1]: suricata.service: control process exited, code=exited status=1 Oct 06 08:56:03 ba-suricata-s.hq.eset.com systemd[1]: Reload failed for Suricata IDS/IDP daemon. Hint: Some lines were ellipsized, use -l to show in full. And of course stop does not work either: ~# /etc/init.d/suricata stop Stopping suricata (via systemctl): suricata.service. ~# systemctl status suricata.service ● suricata.service - Suricata IDS/IDP daemon Loaded: loaded (/etc/systemd/system/suricata.service; disabled) Active: failed (Result: signal) since Thu 2016-10-06 09:05:12 CEST; 10s ago Docs: man:suricata(8) man:suricatasc(8) https://redmine.openinfosecfoundation.org/projects/suricata/wiki Process: 21276 ExecStop=/usr/bin/suricatasc -c shutdown (code=exited, status=1/FAILURE) Process: 19693 ExecReload=/usr/bin/suricatasc -c reload-rules (code=exited, status=1/FAILURE) Main PID: 2897 (code=killed, signal=KILL) Oct 06 08:56:03 ba-suricata-s.hq.eset.com suricatasc[19693]: Unable to connect to socket /var/run//suricata-command.socket: [Er...ctory Oct 06 08:56:03 ba-suricata-s.hq.eset.com systemd[1]: suricata.service: control process exited, code=exited status=1 Oct 06 08:56:03 ba-suricata-s.hq.eset.com systemd[1]: Reload failed for Suricata IDS/IDP daemon. Oct 06 09:03:42 ba-suricata-s.hq.eset.com systemd[1]: Stopping Suricata IDS/IDP daemon... Oct 06 09:03:42 ba-suricata-s.hq.eset.com suricatasc[21276]: Unable to connect to socket /var/run//suricata-command.socket: [Er...ctory Oct 06 09:03:42 ba-suricata-s.hq.eset.com systemd[1]: suricata.service: control process exited, code=exited status=1 Oct 06 09:05:12 ba-suricata-s.hq.eset.com systemd[1]: suricata.service stop-sigterm timed out. Killing. Oct 06 09:05:12 ba-suricata-s.hq.eset.com systemd[1]: suricata.service: main process exited, code=killed, status=9/KILL Oct 06 09:05:12 ba-suricata-s.hq.eset.com systemd[1]: Stopped Suricata IDS/IDP daemon. Oct 06 09:05:12 ba-suricata-s.hq.eset.com systemd[1]: Unit suricata.service entered failed state. Hint: Some lines were ellipsized, use -l to show in full. With following service file the suricata (under suri user) service management is working: ~# cat /etc/systemd/system/suricata.service [Unit] Description=Suricata IDS/IDP daemon After=network.target network-online.target Requires=network-online.target Documentation=man:suricata(8) man:suricatasc(8) Documentation= https://redmine.openinfosecfoundation.org/projects/suricata/wiki [Service] Type=forking Environment=LD_PREDLOAD=/usr/lib/libtcmalloc_minimal.so.4 UNIXCMD_SOCKET="/var/run/suricata/suricata-command.socket" PIDFile=/var/run/suricata/suricata.pid ExecStartPre=-/bin/mkdir /var/run/suricata ExecStartPre=/bin/chown -R suri:suri /var/run/suricata ExecStart=/usr/bin/suricata -D --af-packet -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata/suricata.pid ExecReload=/bin/dash -c "/usr/bin/suricatasc -c reload-rules ${UNIXCMD_SOCKET}"; /bin/kill -HUP $MAINPID ExecStop=/bin/dash -c "/usr/bin/suricatasc -c shutdown ${UNIXCMD_SOCKET}" ExecStopPost=/bin/rm -rf /var/run/suricata Restart=on-failure ProtectSystem=full ProtectHome=true [Install] WantedBy=multi-user.target Just another minor remark - sysvinit script does not report reload action as available: root@ba-suricata-s:~# /etc/init.d/suricata OK Usage: /etc/init.d/suricata {start|stop|restart|status} -- Peter Viskup