0、前言
本地虚拟机3台主机:
hadoop101(192.168.10.128)、hadoop102(192.168.10.129)、
hadoop103(192.168.10.130)等搭建完hadoop集群,本地ip192.168.10.1。
在开始之前以上4台机器均可以访问:
yarn webui(http://192.168.1.210:8088/cluster)。
目标要求:只允许192.168.10.X网段或某一台机器访问hadoop服务器192.168.10.129服务器8088端口。
今天才开始研究网络端口,虽然找到了解决方案,依然有很多不明白的地方。中间也有很多曲折故事。
1、解决方案
采用“拒绝规则”完成目标。(准许规则为啥不生效,一时半会没整明白。才疏学浅,需要继续研究)
1.1、在正式配置前,先备份,清空规则
在192.168.10.129上面执行下面命令:
iptables -F
iptables -X
iptables -Z
1.2、只允许某个ip访问129服务器
在192.168.10.129上面执行下面命令:
iptables -I INPUT ! -s 192.168.10.1 -j DROP
【命令注释】:拒绝192.168.10.1以外的主机连接192.168.10.129,即只允许192.168.10.1连接192.168.10.129
【验证结果】:验证通过。
仅192.168.10.1能访问yarn webui 界面,192.168.10.128、192.168.10.129、192.168.10.130使用ghome中火狐浏览器均不能访问129的8088端口
1.3、只允许某个网段访问129服务器
在192.168.10.129上面执行下面命令:
iptables -I INPUT ! -s 192.168.10.0/24 -j DROP
【命令注释】:拒绝192.168.10.X网段以外的主机连接192.168.10.129,即只允许192.168.10.X连接192.168.10.129
【验证结果】:在192.168.10.1、192.168.10.128、192.168.10.129、192.168.10.130均验证可以访问yarn webui 界面
【注意】:在执行这个命令之前,建议清空iptables,防止其他规则干扰。可以参考下面命令。
#查看iptables
iptables --line -nvL INPUT
#删除指定规则编号的规则
iptables -D INPUT 1
1.4、只允许某个网段访问129服务器的8088端口(正例)
在192.168.10.129上面执行下面命令:
iptables -I INPUT ! -s 192.168.10.0/24 -p tcp --dport 8088 -j DROP
【命令注释】:拒绝192.168.10.X网段以外的主机连接192.168.10.129端口8088,即只允许192.168.10.X连接192.168.10.129端口8088
【验证结果】:在192.168.10.1、192.168.10.128、192.168.10.129、192.168.10.130均验证可以访问yarn webui 界面。即该命令是我们想要的答案。
【注意】:在执行这个命令之前,建议清空iptables,防止其他规则干扰。可以参考下面命令。
1.5、只允许10.0.0.X网段访问129服务器的8088端口(反例)
在192.168.10.129上面执行下面命令:
iptables -I INPUT ! -s 10.0.0.0/24 -p tcp --dport 8088 -j DROP
【命令注释】:拒绝10.0.0.X网段以外的主机连接192.168.10.129端口8088,即只允许10.0.0.X连接192.168.10.129端口8088
【验证结果】:在192.168.10.1、192.168.10.128、192.168.10.129、192.168.10.130均验证不可以访问yarn webui 界面
【注意】:在执行这个命令之前,建议清空iptables,防止其他规则干扰。可以参考下面命令。
2、其他
2.1、准许方案--验证未通过
#清除所有预设值
iptables -F
#指定固定ip可以访问端口8088
iptables -I INPUT -s 192.168.10.1 -p tcp --dport 8088 -j ACCEPT
iptables -I INPUT -s 192.168.10.129 -p tcp --dport 8088 -j ACCEPT
#保存
service iptables save
执行这个命令的时候有时候可能会报错:
The service command supports only basic LSB actions
(start, stop, restart, try-restart, reload, force-reload,
status). For other actions, please try to use systemctl.
这是因为没有安装iptables服务,直接使用yum安装iptables服务即可
yum install iptables-services
#重启
service iptables restart
#开机自启
systemctl enable iptables.service
【验证结果】:验证未通过,具体原因待研究,暂不明了。
2.2、其他参考命令
#打开防火墙
systemctl start firewalld
systemctl enable firewalld
#关闭防火墙,关闭防火墙开机自启
systemctl stop firewalld
systemctl disable firewalld.service
#查看iptables
iptables --line -nvL INPUT
#删除指定规则编号的规则
iptables -D INPUT 1