故障描述:
Ubuntu从14.0.2 update后,原来安装的fail2ban无法启动
Job for fail2ban.service failed because the control process exited with error code. See "systemctl status fail2ban.service" and "journalctl -xe" for details. invoke-rc.d: initscript fail2ban, action "start" failed. ● fail2ban.service - Fail2Ban Service Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Mon 2017-07-03 22:37:01 CST; 6ms ago Docs: man:fail2ban(1) Process: 3464 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=255) 7月 03 22:37:01 tunnel systemd[1]: Failed to start Fail2Ban Service. 7月 03 22:37:01 tunnel systemd[1]: fail2ban.service: Unit entered failed state. 7月 03 22:37:01 tunnel systemd[1]: fail2ban.service: Failed with result 'exit-code'. dpkg: 处理软件包 fail2ban (--configure)时出错: 子进程 已安装 post-installation 脚本 返回错误状态 1 正在处理用于 sgml-base (1.29) 的触发器 ... 正在处理用于 libc-bin (2.24-11+deb9u1) 的触发器 ... 正在处理用于 man-db (2.7.6.1-2) 的触发器 ... 正在处理用于 shared-mime-info (1.8-1) 的触发器 ... 在处理时有错误发生: fail2ban E: Sub-process /usr/bin/dpkg returned an error code (1)
处理过程:
查看应用日志:/var/log/fail2ban.log 没有相关信息
查看系统日志:/var/log/message 没有无法启动相关信息
重新启动看报错提示:/etc/init.d/fail2ban start
根据报错提示执行命令,看具体信息:
systemctl status fail2ban.service
journalctl -xe | tail -n 30 在这里有提示,说端口被占用,所有导致没有启动成功,原因定位在用户的配置文件上
ERROR Failed during configuration: While reading from '/etc/fail2ban/jail.local' [line 119]: option 'port' in section 'pam-generic'already exists
这个是fail2ban在ubuntu下的一个bug,默认配置有端口冲突,需要更改
打开文件/etc/fail2ban/jail.local,找到[pam-generic]这个section,将port = anyport 注销掉(大概在147行),然后重新启动fail2ban即可
结论:
理论上升级不会导致配置变更,但本次遇到问题,应该是bug。问题原因是由于配置文件有误,导致端口占用而应用无法启动,需要修改默认端口再执行启动即可。
规避方法:
确认软件的配置文件是否正常配置
网友评论