Фильтровать докер-трафик

Я предлагаю реализовать это в оболочке, а не в sshd.

Из Advanced Bash -Scripting Guide, раздел 9.1. Внутренние переменные:

$TMOUT

If the $TMOUT environmental variable is set to a non-zero
value time, then the shell prompt will time out after time
seconds. This will cause a logout.

Чтобы пользователю было труднее отменить установку переменной, вы устанавливаете ее в общесистемном -сценарии входа в систему и делаете ее только для чтения -, например:. readonly TMOUT=900.

Если вам нужен тайм-аут только для сеансов SSH, сделайте его условным. Например, если в вашем дистрибутиве есть /etc/profile.d, вы можете поместить это в/etc/profile.d/ssh-timeout.sh:

if [ "$SSH_CONNECTION" != "" ]; then
    readonly TMOUT=900    # a 15-minute timeout for SSH connections only
fi 
0
17.11.2019, 22:09
1 ответ

Я сделал это! @preserveбыло ключевым словом. Это говорит ферме не трогать эти цепи. Нашел здесьhttps://www.lullabot.com/articles/convincing-docker-and-iptables-play-nicely

Вот моя новая конфигурация

#vars
@def $WG_PORT = XXX;
@def $TCP_PORTS = (80 443 22);


table filter {

    # keep docker-chains
    chain (DOCKER DOCKER-INGRESS DOCKER-ISOLATION-STAGE-1 DOCKER-ISOLATION-STAGE-2 FORWARD KUBE-FIREWALL DOCKER-USER) @preserve;    

    chain mainRules {
        #allow local and wireguard
        interface (lo wg0 docker0 br+) ACCEPT;
        source 127.0.0.1 ACCEPT;

        #keep connected
        mod conntrack ctstate (ESTABLISHED RELATED) jump ACCEPT;

        #icmp
        proto icmp {
            mod limit limit  10/minute limit-burst 10 ACCEPT;
            DROP;
        }

        # allow wireguard-traffic instant
        proto udp dport ($WG_PORT) ACCEPT;


        # drop any-query for nameserver when udp
        proto udp dport (53) {
            mod string from 40 algo bm hex-string "|0000ff0001|" DROP;
            ACCEPT;
        }

        #tcp
        proto tcp dport ($TCP_PORTS) {

            #prevent syn-flood, but accept other
            syn {
                mod limit limit 10/sec limit-burst 10 jump PREACCEPT;
                DROP;
            }

            jump ACCEPT;
        }
    }


    chain INPUT {
        policy DROP;
        jump mainRules;
    }

    chain OUTPUT {
        policy ACCEPT;
    }

    chain FORWARD {
        policy ACCEPT;
    }
}

table nat {

    chain (DOCKER DOCKER-INGRESS PREROUTING POSTROUTING OUTPUT DOCKER-USER KUBE-POSTROUTING) @preserve;
}

Теперь ferm и docker прекрасно взаимодействуют друг с другом.

1
28.01.2020, 03:06

Теги

Похожие вопросы