iptable의 성장

iptable의 성장

나의 iptables계속되는 성장..

이렇게 하면 sudo iptables -L | wc -l숫자가 표시되고 나중에 수행하면 숫자가 늘어납니다.

2초마다 1씩 증가하는 것 같습니다.


다시 시작해 보았으나 아무 변화가 없었습니다...


온라인 중Ubuntu 16.04.6

편집 #1

@Artem이 언급한 내용이 마음에 듭니다.

sudo iptables-save > /tmp/ipt.dump1
# Wait a few seconds
sudo iptables-save > /tmp/ipt.dump2
diff -u /tmp/ipt.dump1 /tmp/ipt.dump2

나는 다음과 같은 결과를 얻었습니다.

--- /tmp/ipt.dump1      2020-07-20 17:39:27.443308154 +0900
+++ /tmp/ipt.dump2      2020-07-20 17:39:40.831173660 +0900
@@ -1,9 +1,9 @@
-# Generated by iptables-save v1.6.0 on Mon Jul 20 17:39:27 2020
+# Generated by iptables-save v1.6.0 on Mon Jul 20 17:39:40 2020
 *nat
-:PREROUTING ACCEPT [545:78025]
-:INPUT ACCEPT [545:78025]
-:OUTPUT ACCEPT [2686:163879]
-:POSTROUTING ACCEPT [2686:163879]
+:PREROUTING ACCEPT [547:78264]
+:INPUT ACCEPT [547:78264]
+:OUTPUT ACCEPT [2726:166287]
+:POSTROUTING ACCEPT [2726:166287]
 :DOCKER - [0:0]
 -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
 -A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
@@ -12,12 +12,12 @@
 -A POSTROUTING -s 172.17.0.2/32 -d 172.17.0.2/32 -p tcp -m tcp --dport 8501 -j MASQUERADE
 -A DOCKER -i docker0 -j RETURN
 COMMIT
-# Completed on Mon Jul 20 17:39:27 2020
-# Generated by iptables-save v1.6.0 on Mon Jul 20 17:39:27 2020
+# Completed on Mon Jul 20 17:39:40 2020
+# Generated by iptables-save v1.6.0 on Mon Jul 20 17:39:40 2020
 *filter
-:INPUT ACCEPT [11:1274]
+:INPUT ACCEPT [38:5571]
 :FORWARD DROP [0:0]
-:OUTPUT ACCEPT [7:464]
+:OUTPUT ACCEPT [9:720]
 :DOCKER - [0:0]
 :DOCKER-ISOLATION-STAGE-1 - [0:0]
 :DOCKER-ISOLATION-STAGE-2 - [0:0]
@@ -829,6 +829,14 @@
 -A INPUT -s 127.0.0.1/32 -j ACCEPT
 -A INPUT -s 127.0.0.1/32 -j ACCEPT
 -A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
+-A INPUT -s 127.0.0.1/32 -j ACCEPT
 -A FORWARD -j DOCKER-USER
 -A FORWARD -j DOCKER-ISOLATION-STAGE-1
 -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
@@ -841,4 +849,4 @@
 -A DOCKER-ISOLATION-STAGE-2 -j RETURN
 -A DOCKER-USER -j RETURN
 COMMIT
-# Completed on Mon Jul 20 17:39:27 2020
+# Completed on Mon Jul 20 17:39:40 2020

편집 #2

나는 팔로우한다이것추적 프로세스:

git clone https://github.com/brendangregg/perf-tools.git
cd perf-tools
sudo ./execsnoop

그런 다음 iptables 관련 콘텐츠만 보도록 필터링했습니다.

sudo ./execsnoop | grep iptables

1.5초마다 2개의 새로운 프로세스가 생성됩니다.

  8596   8595 iptables -L INPUT
  8599   8534 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  8705   8704 iptables -L INPUT
  8708   8643 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  8814   8813 iptables -L INPUT
  8817   8752 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  8923   8922 iptables -L INPUT
  8926   8861 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9033   9032 iptables -L INPUT
  9036   8971 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9142   9141 iptables -L INPUT
  9145   9080 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9251   9250 iptables -L INPUT
  9254   9189 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9360   9359 iptables -L INPUT
  9363   9298 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9469   9468 iptables -L INPUT
  9472   9407 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9578   9577 iptables -L INPUT
  9581   9516 iptables -I INPUT -s 127.0.0.1 -j ACCEPT
  9687   9686 iptables -L INPUT
  9690   9625 iptables -I INPUT -s 127.0.0.1 -j ACCEPT

하지만 근본 원인을 찾는 데는 도움이 되지 않습니다.

답변1

다음을 수행하십시오.

sudo iptables-save > /tmp/ipt.dump1

몇 초 후에

sudo iptables-save > /tmp/ipt.dump2

그러니 포스팅해주세요diff -u /tmp/ipt.dump1 /tmp/ipt.dump2

적어도 당신은 당신이 무엇을 다루고 있는지 알게 될 것입니다.


최후의 수단으로 다음을 수행하겠습니다.

sudo mv /sbin/iptables /sbin/iptables.real

그런 다음 다음과 같은 bash 스크립트를 만듭니다.

#! /bin/bash
echo "`date`: I was called by $PPID `readlink /proc/$PPID/exe` " >> /tmp/iptables.log
/sbin/iptables.real "$@"

이를 통해 어떤 프로세스가 지속적으로 호출되는지 확인할 수 있습니다 iptables.

답변2

이 awk 스크립트는 누가 iptables를 호출하는지 찾는 데 도움이 될 수 있습니다. execsnoop()의 출력을 프로세스 트리로 통합합니다 pid ppid command .... 부모는 들여쓰기를 하고 자식 뒤에 나타납니다. 죄송합니다. 시간이 더 있으면 pstree처럼 보이도록 만들 수 있지만 아마도 효과가 있을 것입니다.

몇 초 동안 execsnoop을 실행하고 출력을 파일로 전송한 다음 해당 파일의 입력을 사용하여 실행합니다.

awk -v search=iptables '
    $1 ~ /^[0-9]+$/ {
        p = $1
        ppid[p] = $2
        # command is in $3..$NF, so we'll
        # remove the first 2 fields, then store $0
        for (i = 3; i <= NF; i++) {
            $(i-2) = $i
        }
        NF -= 2
        cmd[p] = $0
    }
    END {
        for (p in cmd) {
            if (cmd[p] ~ search) {
                prefix = ""
                do {
                    print prefix, p, cmd[p]
                    p = ppid[p]
                    prefix = prefix " "
                } while (p)
            }
        }
    }'

답변3

알고보니 바이러스였군요...

내가 열었다또 다른 스택 교환 게시물다음에해야 할 일에 대해.


이 답변은 제 구체적인 사례에 대한 답변이기 때문에 수락합니다. 하지만 근본적인 원인을 추적하는 데 정말 유용한 도구를 제공하는 의견과 기타 답변을 확인하세요.

관련 정보