我拥有的
我的系统上的许多服务都信任相同的 IP 地址列表。
为了例子,我提到/使用/参考:
192.0.2.43
,198.51.100.2
和203.0.113.76
配置时:
iptables
,fail2ban
,nginx
,mysql-server
ETC。
我做什么
现在我手动配置每个服务以允许来自每个IP的访问
我想要的是
将我的可信 IP 地址的可维护列表保存在单一事实来源放置在系统上的某个位置。
- 每次我需要添加/删除 IP 时,我只在该位置进行更改。
- 这些更改由我必须编写的 shell 脚本获取,并进一步反映在每个相应的服务配置中。
在我恢复在/etc
.
我的考虑
我已经使用 限制 SSH
iptables
,允许我信任的 IP。从规则中读取 IPiptables
可能是一种方法,但它很混乱。将以下内容添加到
/etc/hosts
:192.0.2.43 localtrust 198.51.100.2 localtrust 203.0.113.76 localtrust
然后
getent
使用获取IP:# getent ahosts localtrust | awk '{ print $1 }' | uniq 192.0.2.43 198.51.100.2 203.0.113.76
并
for … in
轻松浏览该列表。将 IP 换行符存储在 中
/etc/hosts.allow
,每行一个 IP。每次我需要它们时,cat /etc/hosts.allow
并且for … in
。这
hosts.allow
手动的提到这个@netgroup
概念,并从它的手册听起来我正在寻找什么:netgroup 文件定义“netgroups”,它们是(主机、用户、域)元组的集合,用于在执行远程安装、远程登录和远程 shell 时进行权限检查。
但我的系统上没有
/etc/netgroup
,当我在互联网上搜索它时,我得到的结果是旧的或不相关的。这是一个已弃用的概念吗?将以换行符分隔的 IP 存储在我必须引入系统的自定义文件中。然后
cat
它和for … in
还要别的吗?你会怎么办?
希望这不被认为是基于意见的,因为我要求行业标准/最佳实践。
如果没有和/或我的问题很奇特,那么将 IP 转储到/etc/hosts.allow
是最干净的方法,因为我可以看到/etc/hosts
在某些系统/操作系统模板上启动时如何可能被覆盖,从而有效地清除我的可信 IP 列表并将我锁定系统的。我从未使用过/etc/hosts.allow
或见过它的实际应用,所以我的经验有限。我会后悔搞砸它吗?