Google compute engine 确定Google ComputeEngine上的incomin MAC地址

Google compute engine 确定Google ComputeEngine上的incomin MAC地址,google-compute-engine,iptables,mac-address,Google Compute Engine,Iptables,Mac Address,我正在努力解决Google ComputeEngine上的mac地址过滤问题 我有一个要求,我们有一个在服务器上运行的web应用程序。将使用web应用程序的用户还必须能够使用scp和ssh进入同一服务器 到目前为止的想法是: 仅为web应用程序启用HTTPS-正在工作 在禁用密码访问的情况下启用基于DSA的仅密钥ssh-正常工作 对web应用程序和ssh启用mac筛选。这个想法是,未经授权的人甚至无法看到该服务器IP上有什么东西 客户端IP过滤是一个小问题,因为在家使用ADSL时,IP会发生变化

我正在努力解决Google ComputeEngine上的mac地址过滤问题

我有一个要求,我们有一个在服务器上运行的web应用程序。将使用web应用程序的用户还必须能够使用scp和ssh进入同一服务器

到目前为止的想法是:

  • 仅为web应用程序启用HTTPS-正在工作
  • 在禁用密码访问的情况下启用基于DSA的仅密钥ssh-正常工作
  • 对web应用程序和ssh启用mac筛选。这个想法是,未经授权的人甚至无法看到该服务器IP上有什么东西 客户端IP过滤是一个小问题,因为在家使用ADSL时,IP会发生变化

    为了进行设置和测试,我在本地办公网络上使用了三台不同的机器,使用了以下环境: 在虚拟机(VMWare)内运行的CentOS 7服务器。我已启用IP表并禁用防火墙。然后,我添加了以下规则:

    这将只允许ssh(端口22)访问mac地址

    iptables -A INPUT -p tcp --dport 22 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -m mac --mac-source xx:xx:xx:xx:xx:xx -j ACCEPT
    
    现在拒绝其余的ssh尝试

    iptables -A INPUT -p tcp --dport 22 -j REJECT
    
    当从另外两台机器(一台windows和一台Ubuntu)进行测试时,这对ssh是100%有效的。到目前为止还不错

    我现在已经转移到Google ComputeEngine(运行CentOS 7 VM)上的目标环境。但是,所有连接都显示与源相同的MAC地址。使用arp-a检索带有mac地址的用户列表

    这是arp结果:

    arp 
    Address                  HWtype  HWaddress           Flags Mask            Iface
    10.xxx.xxx.1               ether   xx:xx:xx:xx:xx:xx   C                     eth0
    
    问题是,使用不同的用户/不同的机器和不同的互联网服务提供商,都会在计算引擎端显示相同的mac地址(根据arp)

    使用gcloud防火墙似乎无法过滤mac地址。所有可用文档仅参考ip/端口过滤。这就是我在转储现有防火墙规则(在VM之外)时得到的结果


    有人知道我如何在CentOS VM内检索正确的mac地址,或使用gcloud防火墙实现相同的目的吗?

    传入IP数据包的源mac地址不是设置为数据包原始发送方的mac地址,而是设置为最后一跳(路由器)的mac地址。这意味着MAC过滤只能用于同一网络上的主机。这取决于TCP/IP的工作方式,并适用于任何网络。除此之外,GCE上的每个虚拟机都有自己的本地网络(网络掩码为255.255.255.255),并且只能看到该网络上的网关(没有其他主机)。

    您能了解吗?否则,将

    放在每行末尾是非常低效的。另外,通过在前面放四个空格来格式化代码,而不是放一个引号。这就解释了为什么它在同一个网络中运行良好,但一旦您穿越多个交换机/路由器,它就不可见了。
    gcloud compute firewall-rules list
    NAME                   NETWORK SRC_RANGES    RULES                        SRC_TAGS TARGET_TAGS
    default-allow-http     default 0.0.0.0/0     tcp:80                                http-server
    default-allow-https    default 0.0.0.0/0     tcp:443                               https-server
    default-allow-icmp     default 0.0.0.0/0     icmp
    default-allow-internal default 10.240.0.0/16
    tcp:1-65535,udp:1-65535,icmp
    default-allow-rdp      default 0.0.0.0/0     tcp:3389
    default-allow-ssh      default 0.0.0.0/0     tcp:22