对于诸如telnet等托管于xinetd的服务,当请求到来时由于是通过xinetd进行通知,所以可以直接在xinetd上配置白名单允许和拒绝哪些ip连接服务。
本文主要参考xinetd.conf的man手册,该手册对配置项有较清楚说明。
一、总体配置方法
xinetd配置白名单--通过only_from项进行配置,only_from项的值为允许连接服务的IP;多个IP之间使用空格进行分隔。
xinetd配置黑名单--通过no_access项进行配置,no_access项的值为禁止连接服务的IP;多个IP之间使用空格进行分隔。
xinetd黑白名单冲突--当某个IP同时配置于only_from和no_access时,以no_access为准禁止该IP连接服务。(与/etc/hosts.allow和/etc/hosts.deny正好相反)
IP写法示例--具体IP(192.168.220.128)、网段(192.168.220.0)、同网段某些主机(192.168.220.{128,130})、配置于/etc/networks的网段名、域名(xinetd靠/etc/hosts或DNS解析成IP)、子网掩码(192.168.220.0/23)
二、配置示例
下面以telnet配置白名单为例进行演示,确认第一点中的说法可行。
2.1 确认当前本机可telnet本机
telnet 127.0.0.1
2.2 限制只允许192.168.220.129 192.168.220.130可telnet本机
telnet配置文件/etc/xinetd.d/telnet默认内容如下:
在disable行后新建一行,加入以下内容:
only_from = 192.168.220.129 192.168.220.130
修改后的/etc/xinetd.d/telnet内容如下:
2.3 重启xinetd确认白名单生效
service xinetd restart netstat -anp | grep xinetd telnet 127.0.0.1
确认本机不可telnet:
确认192.168.220.129可telnet:
由此可说明telnet白名单配置生效,在自己具体操作时将only_from值修改为自己想要的IP即可。
如果是要配置黑名单,将only_from改成no_access同样赋值即可。
如果是要配置其他托管于xinetd的服务,那找到其对应配置文件,类似操作即可。