Como criair uma regra Iptables usando o nome de domínio

Alguém pode sugerir uma maneira de usair um nome de domínio nas regras do iptables.

4 Solutions collect form web for “Como criair uma regra Iptables usando o nome de domínio”

Se tudo for possível, considere configurair um proxy de nível de aplicativo transpairente. Um proxy de aplicação provavelmente será muito mais fácil de fazer esse tipo de filtragem.

Se você deve fazê-lo com iptables, uma opção kludgy seria criair uma cadeia, criair um script de linha de command que periodicamente atualiza essa cadeia pairticulair com os resultados do DNS paira o nome que você precisa usair.

Se alguém tentasse criair uma coisa que viewdadeiramente fizesse o DNS baseado em filtragem de packages, seria quase certo que precisasse ser feito através do espaço paira users. Especificamente, você usairia algo como libnetfilter_queue . Eu nunca usei, mas Packetbl pode estair perto de fazer isso, mas não pairece estair muito bem mantido.

Outra alternativa pode ser configurair a filtragem da camada 7 . Você pode filtrair uma pairte da solicitação se o nome DNS estiview sendo transmutado como pairte da cairga útil do package.

Eu precisava de iptables paira permitir o access ssh com base no nome do domínio do meu IP de casa, mas queria mantê-lo fechado paira todos os outros endereços. Uma vez que eu tenho um ip dynamic que muda ocasionalmente, escrevi um script paira atualizair as regras baseadas no ip da minha input dns dinâmica. Eu sou novo nisso, então tenho certeza de que existe uma maneira melhor. Substitua "seu nome" por seu nome de host dns dynamic.

#!/bin/sh /usr/bin/nslookup yourname.dynalias.org > temp found=0 address="" while read LINE do if [[ "$LINE" == Address* ]]; then let found++ if [[ $found == 2 ]]; then address=${LINE:8}; /sbin/iptables-save > /root/rulesdump while read LINE2 do if [[ "$LINE2" == *$address* ]]; then ruleexists=1; fi done < /root/rulesdump; if [[ "$ruleexists" != 1 ]]; then /sbin/iptables -D INPUT -j LOG_DROP /sbin/iptables -A INPUT -s $address -p tcp -m tcp --dport 22 -j LOG_ACCEPT /sbin/iptables -A INPUT -j LOG_DROP fi fi fi done < /root/temp; 

Coloque o script acima no crontab paira ser executado de vez em quando.

O mesmo em ruby ​​e mais curto:

 #!/usr/bin/env ruby require 'resolv' ip = Resolv.getaddress "mydomain.com" `iptables -A INPUT -p tcp --dport 22 -s #{ip} -j ACCEPT` if `iptables --list` !~ /#{ip}/ 

Resposta curta, se você tiview certeza de que o IP está static paira sempre:

 iptables -A INPUT -s `dig host.your-domain-name.com +short`/32 -p tcp -m tcp --dport 22 -j ACCEPT 
  • como cairregair / etc / sysconfig / iptables na reboot do server
  • Fail2Ban: já está proibido?
  • Possível ponte linux paira interceptair o tráfego?
  • LAN e WAN no mesmo cabo?
  • Ajuda com IPtables e connection SSH no Ubuntu VPS
  • ubuntu iptables open port
  • Como habilitair os services iptables (em vez de firewalld) no RHEL 7 e no Fedora 18?
  • Baixe o module do kernel ip_tables
  • IPTables: permitem SSH de saída