Я использую АТС Asterisk на виртуальной машине, напрямую подключенной к Интернету, и я действительно хочу предотвратить доступ к моему серверу сценаристов, l33t h4x0rz и реальных хакеров. Основной способ защитить мой счет за вызовы - это использовать 32-символьные пароли, но я бы предпочел способ защиты
Сценарий брандмауэра, который я сейчас использую, описан ниже, однако без установленного правила брандмауэра подключения (упомянутое правило № 1) я не могу получать входящее аудио от цели во время исходящих вызовов:
#!/bin/bash
# first, clean up!
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP # we're not a router
iptables -P OUTPUT ACCEPT
# don't allow invalid connections
iptables -A INPUT -m state --state INVALID -j DROP
# always allow connections that are already set up (MENTIONED RULE #1)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# always accept ICMP
iptables -A INPUT -p icmp -j ACCEPT
# always accept traffic on these ports
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# always allow DNS traffic
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
# allow return traffic to the PBX
iptables -A INPUT -p udp -m udp --dport 50000:65536 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
iptables -A INPUT -p udp --destination-port 5060:5061 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 5060:5061 -j ACCEPT
iptables -A INPUT -m multiport -p udp --dports 10000:20000
iptables -A INPUT -m multiport -p tcp --dports 10000:20000
# IP addresses of the office
iptables -A INPUT -s 95.XXX.XXX.XXX/32 -j ACCEPT
# accept everything from the trunk IP's
iptables -A INPUT -s 195.XXX.XXX.XXX/32 -j ACCEPT
iptables -A INPUT -s 195.XXX.XXX.XXX/32 -j ACCEPT
# accept everything on localhost
iptables -A INPUT -i lo -j ACCEPT
# accept all outgoing traffic
iptables -A OUTPUT -j ACCEPT
# DROP everything else
#iptables -A INPUT -j DROP
Я хотел бы знать, какое правило брандмауэра мне не хватает, чтобы все это работало .. Существует так мало документации о том, какие порты (входящие и исходящие) на самом деле нужны звездочке .. (включая возвратные порты).
Есть ли здесь специалисты по брандмауэру /iptables, которые видят серьезные проблемы с этим сценарием брандмауэра?
Это так расстраивает, что я не могу найти простое решение для брандмауэра, которое позволило мне запустить УАТС где-нибудь в Интернете, который защищен брандмауэром таким образом, что он может разрешать ТОЛЬКО подключения к офису, к серверам DNS и транку (s) (и поддерживает только SSH (порт 22) и трафик ICMP для внешнего мира).
Надеюсь, используя этот вопрос, мы сможем решить эту проблему раз и навсегда.