/ etc / default
O diretório /etc/default
nunca é usado em nenhuma distribuição baseada na Red Hat. Isso é um Debian / Ubuntu-ism. Para o Centos 7 você pode dar uma olhada nos pacotes que foram instalados relacionados ao fail2ban
da seguinte forma:
$ rpm -aq|grep fail
fail2ban-server-0.9-9.el7.noarch
fail2ban-sendmail-0.9-9.el7.noarch
fail2ban-firewalld-0.9-9.el7.noarch
fail2ban-systemd-0.9-9.el7.noarch
fail2ban-0.9-9.el7.noarch
Conteúdo do servidor fail2ban
O fail2ban-server
contém o arquivo de serviço do Systemd.
$ rpm -ql fail2ban-server-0.9-9.el7.noarch | grep systemd
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.py
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.pyc
/usr/lib/python2.7/site-packages/fail2ban/server/filtersystemd.pyo
/usr/lib/systemd/system/fail2ban.service
Arquivo de serviço do Systemd
O conteúdo do arquivo de serviço do Systemd:
$ more /usr/lib/systemd/system/fail2ban.service
[Unit]
Description=Fail2ban Service
After=syslog.target network.target firewalld.service
[Service]
Type=forking
ExecStart=/usr/bin/fail2ban-client -x start
ExecStop=/usr/bin/fail2ban-client stop
ExecReload=/usr/bin/fail2ban-client reload
PIDFile=/var/run/fail2ban/fail2ban.pid
Restart=always
[Install]
WantedBy=multi-user.target
Assim, pode-se adicionar as opções extras a este arquivo, como uma maneira rápida e suja de confirmar se elas estão funcionando.
Correções de longo prazo
Para torná-los permanentes, adicionaria as opções de maneira mais "oficial" para que as atualizações no pacote fail2ban
não substituíssem as modificações feitas nesse arquivo. Isso pode ser feito adicionando uma versão personalizada do arquivo fail2ban.service
neste diretório:
/etc/systemd/system/fail2ban.service
NOTA: Um arquivo neste diretório, /etc/systemd/system
sempre substitui o arquivo .service
padrão.
No entanto, fazer isso tem ressalvas, uma delas é que, se um arquivo de serviço estiver presente aqui quando fail2ban
fosse atualizado por meio de yum
, o serviço seria desativado, até que fosse reativado manualmente. Então, em vez disso, você pode substituir fragmentos do arquivo .service
, adicionando-os a esse diretório em /etc
.
Trecho
To edit a unit file provided by a package, you can create a directory
called /etc/systemd/system/unit.d/ for example
/etc/systemd/system/httpd.service.d/ and place *.conf files in there
to override or add new options. systemd will parse these *.conf files
and apply them on top of the original unit. For example, if you simply
want to add an additional dependency to a unit, you may create the
following file: /etc/systemd/system/unit.d/customdependency.conf
[Unit]
Requires=new dependency
After=new dependency
As another example, in order to replace the ExecStart directive for a
unit that is not of type oneshot, create the following file:
/etc/systemd/system/unit.d/customexec.conf
[Service]
ExecStart=
ExecStart=new command
para poder criar um diretório, /etc/systemd/system/fail2ban.service.d
e adicionar *.conf
arquivos com conteúdo como este:
[Service]
ExecStart=
ExecStart=new command
Adicionando suas opções lá.
Ulimits e amp; Systemd
Se você estiver tentando definir uma opção ulimit
para um determinado serviço, dê uma olhada na página man do systemd.exec
.
Trecho
LimitCPU=, LimitFSIZE=, LimitDATA=, LimitSTACK=, LimitCORE=, LimitRSS=,
LimitNOFILE=, LimitAS=, LimitNPROC=, LimitMEMLOCK=, LimitLOCKS=,
LimitSIGPENDING=, LimitMSGQUEUE=, LimitNICE=, LimitRTPRIO=, LimitRTTIME=
These settings control various resource limits for executed processes. See
setrlimit(2) for details. Use the string infinity to configure no limit
on a specific resource.
Portanto, basta adicionar LimitSTACK=256
ao arquivo .conf
personalizado que eu descrevi acima para que você tenha o mesmo efeito que a configuração ulimit -s 256
.
Trecho - página de manual setrlimit (2)
Se você der uma olhada na página setrlimit(2)
man, poderá ver como as opções ulimit
se alinham com os limites do Systemd.
RLIMIT_STACK
The maximum size of the process stack, in bytes. Upon reaching
this limit, a SIGSEGV signal is generated. To handle this signal,
a process must employ an alternate signal stack (sigaltstack(2)).
Since Linux 2.6.23, this limit also determines the amount of space
used for the process's command-line arguments and environment
variables; for details, see execve(2).
Referências