Правило межсетевого экрана с политиками по умолчанию не работает

Я создал сценарий bash правила брандмауэра следующим образом:

    #!/bin/bash

    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT DROP

    ip6tables -P INPUT DROP
    ip6tables -P FORWARD DROP
    ip6tables -P OUTPUT DROP

    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT

    ip6tables -A INPUT -i lo -j ACCEPT
    ip6tables -A OUTPUT -o lo -j ACCEPT

    #
    #       Outgoing and Incoming ping – on all interface
    #
    ip6tables -A INPUT -i bond0 -p ipv6-icmp -j ACCEPT
    ip6tables -A OUTPUT -o bond0 -p ipv6-icmp -j ACCEPT

    ip6tables -A INPUT -i bond1 -p ipv6-icmp -j ACCEPT
    ip6tables -A OUTPUT -o bond1 -p ipv6-icmp -j ACCEPT

    ip6tables -A INPUT -i bond2 -p ipv6-icmp -j ACCEPT
    ip6tables -A OUTPUT -o bond2 -p ipv6-icmp -j ACCEPT

    ip6tables -A INPUT -i bond3.243 -p ipv6-icmp -j ACCEPT
    ip6tables -A OUTPUT -o bond3.243 -p ipv6-icmp -j ACCEPT

    #
    #       ssh - 22/tcp
    #
    iptables -A INPUT -i bond1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o bond1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

    iptables -A INPUT -i bond3.243 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o bond3.243 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

    ip6tables -A INPUT -i bond1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    ip6tables -A OUTPUT -o bond1 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

    ip6tables -A INPUT -i bond3.243 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
    ip6tables -A OUTPUT -o bond3.243 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
    #
    #       Save the configuration
    #
    service iptables save
    service ip6tables save

    #
    #       dobackup
    #
    chmod a+r /etc/sysconfig/iptables
    chmod a+r /etc/sysconfig/ip6tables

Теперь, когда я применяю эти правила, я теряю соединение ssh с мой сервер. Затем мне нужно остановить службу ip6tables, чтобы восстановить соединение по ssh.

Но когда я меняю iptables -P OUTPUT DROP на iptables -P OUTPUT ACCEPT & ip6tables -P OUTPUT DROP на ip6tables - P OUTPUT ACCEPT , тогда это правило также будет реализовано, и я не потерял соединение ssh.

Я не уверен, в чем именно проблема. Ошибка в файле bash или ошибка, о которой я не знаю. Спасибо за поддержку.

0
задан 13 October 2017 в 12:59
1 ответ

Я думаю, что это более удобный способ разрешить входящее соединение через порт ssh без контроля состояния и разрешить исходящее установленное и связанное соединение.

Попробуйте использовать правила:

iptables -A INPUT -i bond1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i bond3.243 -p tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Ваш сервер не может отправлять другой тип трафика, потому что последнее правило разрешает отправлять только УСТАНОВЛЕННЫЕ и СВЯЗАННЫЕ типы.

0
ответ дан 5 December 2019 в 07:22

Теги

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