Как добавить псевдоним dyndns в Iptables?

Прежде всего: я знаю этот старый вопрос: iptables разрешает имя домена dyndns и правила автоматического обновления. Но почему-то это мне не помогает.

Проблема

Iptables на моем рабочем компьютере настроены на удаление всех запросов из Интернета, за исключением нескольких выбранных ip-адресов. Это связано с тем, что мы сталкиваемся с примерно 10 000 атак в день. Время от времени я хотел бы сдать в мой рабочий компьютер из дома.

Итак, я решил, что я зарегистрируюсь в . Iptables разрешает имена доменов домена dyndns и автоматического обновления.

Мое решение (полурабочее)

и добавьте правило к /etc/iptables для этого dynalias myUser.dynalias.net:

# in /etc/iptables

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT
# namesevers
-A RH-Firewall-1-INPUT -p 50 -d some.local.ip -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -d the.same.local.ip -j ACCEPT
    # ...and so on...
# all connections already established (started outgoing from my machine)
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow local connections
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source some.local.ip/255.255.0.0 -j ACCEPT
# allow my dns
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source myuser.dynalias.net -j ACCEPT
# block all others (without answering - thus nobody is able to scan the network)
-A INPUT -p icmp --icmp-type echo-request -j DROP
-A RH-Firewall-1-INPUT -j DROP
COMMIT

Что не работает с этим решением

Это работает до тех пор, пока мой домашний ip не будет сброшен каждый день в полночь. отбросить все запросы из Интернета . Я предполагаю, что я должен регулярно обновлять правило (например, используя cron). Мой вопрос: как я регулярно обновляю правило? По какой-то причине, когда я обновляю таблицу в текущей системе, используя:

Команды обновления (не работают):

sudo iptables -D RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source ip.that's.listed.by.-L.option -j ACCEP
sudo iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source myUser.dynalias.net -j ACCEP

Я не могу выполнить ssh на моем рабочем компьютере после этого Обновить. Единственное, что помогает, - это позвонить кому-то, чтобы перезагрузить мой рабочий компьютер. Как бы то ни было, изменения не будут вступать в силу без этой перезагрузки, несмотря на правильность правильного перечисления правила:

username@server:~/bin$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  anywhere             anywhere            
DROP       icmp --  anywhere             anywhere            icmp echo-request 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

Chain RH-Firewall-1-INPUT (2 references)
# some stuff (e.g. nameserver)
# ....
DROP       all  --  anywhere             anywhere    
ACCEPT     tcp  --  123-123-12-123.host.name.foo.bar.at  anywhere            state NEW tcp dpt:ssh 

В этом листинге есть Как обновить правило на регулярной основе? at все - он просто не работает с ssh на рабочий компьютер.

1
задан 13 April 2017 в 15:24

0 ответов

Другие вопросы по тегам:

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