向所有的大师和那些拥有我尚未获得和分享的知识的人致敬。
不久前,我在我的 AIX 7.1 和 7.2 LPAR 上配置了 TCP Wrappers,一旦你理清了细微差别,它就能很好地运行。
使用 chsubserver 可以轻松管理非 tcpd 服务(https://www.ibm.com/support/knowledgecenter/ssw_aix_72/c_commands/chsubserver.html) 并且我已经将其自动化并编写成脚本。
转而使用 TCP Wrapper 意味着我很难使用带有 tcp 包装器的 chsubserver 自动更改 /etc/inetd.conf。手动编辑很容易,sed/awk/grep 暂时可以作为解决方法,但正确的方法是使用 chsubserver。
任何有关构建 chsubserver 命令以从 /etc/inetd.conf 中添加和删除 TCPD 服务的帮助都将不胜感激。
以下是我当前的设置:
[root@nim]/root # oslevel -s
7200-04-01-1939
[root@nim]/root # lssrc -l -s inetd
Subsystem Group PID Status
inetd tcpip 20709662 active
Debug Not active
Signal Purpose
SIGALRM Establishes socket connections for failed services.
SIGHUP Rereads the configuration database and reconfigures services.
SIGCHLD Restarts the service in case the service ends abnormally.
Service Command Description Status
check_mk /usr/bin/check_mk_agent active
[root@nim]/root # cat /etc/inetd.conf
# service socket protocol wait/ user server server program
# name type nowait program arguments
#
## # ---------------------------
## # TCP Wrapper Configuration :
## # ---------------------------
check_mk stream tcp nowait root /usr/sbin/tcpd check_mk_agent
#ftp stream tcp6 nowait root /usr/sbin/tcpd ftpd -l -u027
#tftp dgram udp6 SRC nobody /usr/sbin/tcpd tftpd -n
#bootps dgram udp wait root /usr/sbin/tcpd bootpd /etc/bootptab
## # -------------------------------
## # Non-TCP Wrapper Configuration :
## # -------------------------------
#check_mk_agent stream tcp nowait root /usr/bin/check_mk_agent
#ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd -l -u027
#tftp dgram udp6 SRC nobody /usr/sbin/tftpd tftpd -n
#bootps dgram udp wait root /usr/sbin/bootpd bootpd /etc/bootptab
[root@nim]/root #
非常感谢你抽出时间来协助这个困惑的管理员 Michael
答案1
在实验室环境中进行一些尝试后,我让命令正常工作:
/usr/sbin/chsubserver -a -r inetd -v check_mk -p tcp -t stream -w nowait -u monitor -g /usr/sbin/tcpd check_mk_agent
为了正常工作,二进制文件必须位于 /usr/sbin 中或符号链接到 /usr/sbin(例如 /usr/sbin/check_mk_agent),并且所需的条目必须预先存在于 /etc/services 中(例如:check_mk 6556 # 检查 MK 监控)
chsubserver 命令在运行时会 HUPS inetd,但我喜欢确保并刷新 inetd 服务(refresh -s inetd)
我希望这可以为技术差的人节省一些时间:)