在kubernetes集群中暴露邮件或ssh蜜罐

33qvvth1  于 2023-05-28  发布在  Kubernetes
关注(0)|答案(2)|浏览(153)

我正在Kubernetes集群中试验SMTP(mailoney)和SSH蜜罐,以暴露在大坏WWW中。我似乎不知道如何让它工作,因为我最近才开始了解Kubernetes。
我现在有一些配置,例如我的mailoney.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mailoney
spec:
  selector:
    matchLabels:
      app: mailoney
  template:
    metadata:
      labels:
        app: mailoney
    spec:
      containers:
      - name: mailoney
        image: dtagdevsec/mailoney:2006
        ports:
        - containerPort: 25

服务配置:

apiVersion: v1
kind: Service
metadata:
  name: ingress-mailoney
  labels:
    name: mailoney
spec:
  type: LoadBalancer
  ports:
    - name: smtp
      port: 25
      targetPort: 25
      protocol: TCP
  selector:
    name: mailoney

但是当配置负载均衡器时,它会在端口>30000上公开服务,我知道这是Kubernetes的默认行为。但是,我如何准确地配置负载均衡器,以分别允许端口25和22上的连接,并实际上让连接通过到蜜罐?
我是不是忽略了什么很明显的东西
任何帮助都很感激。

2izufjch

2izufjch1#

正如@coderanger所提到的,您的云提供商将负责一切并提供原始端口。阅读你的服务清单,我可以注意到你的选择器是错误的,它应该指向app: mailoney而不是name:。我测试了它,它的工作与正确的选择器。
以下是您的清单应该看起来的样子:

apiVersion: v1
kind: Service
metadata:
  name: ingress-mailoney
  labels:
    name: mailoney
spec:
  type: LoadBalancer
  ports:
    - name: smtp
      port: 25
      targetPort: 25
      protocol: TCP
  selector:
    app: mailoney

将其更改为app: mailoney后,我得到以下结果:

$ kubectl get service ingress-mailoney -o wide
NAME               TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)        AGE   SELECTOR
ingress-mailoney   LoadBalancer   10.31.250.51   104.197.119.16   25:30601/TCP   44m   app=mailoney
$ telnet 104.197.119.16 25
Trying 104.197.119.16...
Connected to 104.197.119.16.
Escape character is '^]'.
220 mailrelay.local ESMTP Exim 4.81 #1 Thu, 29 Jul 2010 05:13:48 -0700

如你所见,一切正常。

jchrr9hc

jchrr9hc2#

您可能在kubectl get service输出中看到了节点端口?这是一个红色的鲱鱼,最终的LB端口将仍然是25所要求的。您可以在云提供商的系统中确认这一点。节点端口是云LB与内部网络之间的中间中继。

相关问题