Servidor DNS Autoritário NSD + Shorewall - Redes SME

Índice geral da série: Redes de computadores para PMEs: introdução

Este artigo é uma continuação de:

Olá amigos e amigos!

O grupo entusiastas comprei o nome de domínio da internet desdelinux.ventilador seu provedor de serviços de Internet ou ISP. Como parte dessa aquisição, eles solicitaram que seu ISP incluísse todos os registros DNS necessários para que as consultas relevantes sobre seu domínio fossem resolvidas na Internet.

Eles também solicitaram que os registros SRV fossem incluídos em relação ao XMPP porque planejam instalar um servidor de mensagens instantâneas baseado em Prosódia que ingressará na federação existente de servidores XMMP compatíveis na Internet.

  • O objetivo principal deste artigo é mostrar como podemos refletir em um arquivo de zona DNS os registros SRV relacionados ao serviço de mensagens instantâneas compatível com XMPP..
  • A instalação do Muralha com uma única interface de rede, pode servir àqueles que decidem instalar um servidor como este para gerenciar uma zona DNS delegada. Se esse servidor se conectar à LAN corporativa, além da Internet, as configurações necessárias devem ser feitas para usar duas interfaces de rede.

servidor base

Vamos instalar um servidor DNS autorizado NSD em Debian "Jessie". Este é o servidor raiz para o domínio "fan". Os principais parâmetros do servidor são:

Nome: ns.fan endereço IP: 172.16.10.30 root @ ns: ~ # nome do host
ns

root @ ns: ~ # hostname --fqdn
ns.fan

root @ ns: ~ # ip addr show
1: o que: mtu 65536 qdisc noqueue state DESCONHECIDO grupo padrão link / loopback 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 :: 1/128 host de escopo valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc pfifo_fast estado UP grupo padrão qlen 1000 link / éter 00: 0c: 29: dc: d7: 1b brd ff: ff: ff: ff: ff: ff inet 172.16.10.30/24 brd 172.16.10.255 escopo global eth0 valid_lft para sempre preferred_lft para sempre inet6 fe80 :: 20c: 29ff: fedc: d71b / 64 link de escopo valid_lft para sempre preferred_lft para sempre

Muralha

Antes de partir com um serviço para a WWW Village, é muito positivo proteger o servidor e os serviços que este fornece através de um poderoso Firewall - Router. Shorewall é relativamente fácil de configurar e é uma opção segura de proteção.

  • A configuração correta e completa de um Firewall é tarefa de conhecedores ou especialistas, o que nós não somos. Oferecemos apenas um guia para uma configuração mínima e funcional.

Instalamos o pacote shorewall e sua documentação.

root @ ns: ~ # aptitude show shorewall
Pacote: shorewall Novo: sim Condição: não instalado
Versão: 4.6.4.3-2

root @ ns: ~ # aptitude install shorewall shorewall-doc

Documentação

Você encontrará documentação abundante nas pastas:

  • / usr / share / doc / shorewall
  • / usr / share / doc / shorewall / examples
  • / usr / share / doc / shorewall-doc / html

Nós configuramos para uma interface de rede

root @ ns: ~ # cp / usr / share / doc / shorewall / examples / one-interface / interfaces \
/ etc / shorewall /

root @ ns: ~ # nano / etc / shorewall / interfaces
# OPÇÕES DE INTERFACE DE ZONA net eth0 tcpflags, logmartians, nosmurfs, sourceroute = 0

Declaramos as zonas de firewall

root @ ns: ~ # cp / usr / share / doc / shorewall / examples / one-interface / zones \
/ etc / shorewall /

root @ ns: ~ # nano / etc / shorewall / zonas
# OPÇÕES DE TIPO DE ZONA EM OUT # OPÇÕES DE OPÇÕES fw firewall net ipv4

Políticas padrão para acessar o firewall

root @ ns: ~ # cp / usr / share / doc / shorewall / examples / one-interface / policy \
/ etc / shorewall /

root @ ns: ~ # nano / etc / shorewall / policy
#FONTE LIMITE DE NÍVEL DE REGISTRO DE POLÍTICA DE DESTINO: ESTOU $ FW líquido ACEITAR
net todas as informações DROP
# A SEGUINTE POLÍTICA DEVE TER TODAS AS INFORMAÇÕES DE REJEITAR

Regras para acessar o firewall

root @ ns: ~ # cp / usr / share / doc / shorewall / examples / one-interface / rules \
/ etc / shorewall /

root @ ns: ~ # nano / etc / shorewall / rules
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER / MARK CON $ # PORT PORT PORT (S) DEST LIMIT GROUP? SEÇÃO TODAS? SEÇÃO ESTABELECIDA? SEÇÃO RELACIONADA? SEÇÃO INVÁLIDA? SEÇÃO NÃO TRACKED? SEÇÃO NOVA # DROP pacotes no estado INVÁLIDO # Descartar pacotes em um estado inválido Inválido (DROP) net $ FW tcp # Remova o ping do "ruim" líquido zona .. e evitar que seu log seja inundado .. # Descarte Ping da zona de rede "ruim". # Impedir inundação do log do sistema (/ var / log / syslog) Ping (DROP) net $ FW # Permitir todo o tráfego ICMP DO firewall PARA a zona da rede # Permitir todo o tráfego ICMP DO firewall PARA a zona líquido. ACEITAR $ FW net icmp

# Regras próprias # Acesso via SSH de dois computadores
SSH / ACEITAR rede: 172.16.10.1,172.16.10.10 $ FW tcp 22

# Permitir tráfego nas portas 53 / tcp e 53 / udp
ACEITAR $ FW líquidos tcp 53
ACEITAR $ FW udp 53 líquido

Nós verificamos a sintaxe dos arquivos de configuração

root @ ns: ~ # verificação de shorewall
Verificando ... Processando / etc / shorewall / params ... Processando /etc/shorewall/shorewall.conf ... Carregando Módulos ... Verificando / etc / shorewall / zonas ... Verificando / etc / shorewall / interfaces .. Determinando Hosts em Zonas ... Localizando Arquivos de Ação ... Verificando / etc / shorewall / policy ... Adicionando Regras Anti-smurf Verificando Filtragem de Sinalizadores TCP ... Verificando Filtragem de Kernel de Rota ... Verificando Registro Marciano ... Verificando Aceitar roteamento de origem ... Verificando filtração MAC - Fase 1 ... Verificando / etc / shorewall / regras ... Verificando / etc / shorewall / conntrack ... Verificando filtração MAC - Fase 2 ... Aplicando políticas .. . Verificando /usr/share/shorewall/action.Drop para queda de cadeia ... Verificando /usr/share/shorewall/action.Broadcast para transmissão de cadeia ... Configuração do Shorewall verificada

root @ ns: ~ # nano / etc / default / shorewall
# evitar a inicialização com a configuração padrão # definir a seguinte variável como 1 para permitir que o Shorewall inicie
inicialização =1
------

root @ ns: ~ # service shorewall start
root @ ns: ~ # service shorewall restart
root @ ns: ~ # status do service shorewall
● shorewall.service - LSB: Configure o firewall no momento da inicialização Carregado: carregado (/etc/init.d/shorewall) Ativo: ativo (encerrado) desde Sun 2017-04-30 16:02:24 EDT; 31min atrás Processo: 2707 ExecStop = / etc / init.d / shorewall stop (code = exited, status = 0 / SUCCESS) Processo: 2777 ExecStart = / etc / init.d / shorewall start (code = exited, status = 0 / SUCESSO)

É muito educativo ler atentamente a saída do comando iptables -L especialmente em relação às políticas padrão para INPUT, FORWARD, OUTPUT e aqueles que ele rejeita - rejeitar o Firewall para proteção contra ataques externos. Pelo menos você sai na Internet com um pouco de proteção, certo? 

root @ ns: ~ # iptables -L

NSD

root @ ns: ~ # aptitude show nsd
Pacote: nsd Novo: sim Status: instalado Instalado automaticamente: não
Versão: 4.1.0-3

root @ ns: ~ # aptitude install nsd
root @ ns: ~ # ls / usr / share / doc / nsd /
contrib changelog.Debian.gz NSD-DIFFFILE REQUIREMENTS.gz exemplos changelog.gz NSD-FOR-BIND-USERS.gz TODO.gz copyright diferenças.pdf.gz README.gz ATUALIZAÇÃO DE CRÉDITOS RELNOTES NSD-DATABASE.gz

root @ ns: ~ # nano /etc/nsd/nsd.conf
# Arquivo de configuração NSD para Debian. # Consulte a página do manual nsd.conf (5).
# Veja /usr/share/doc/nsd/examples/nsd.conf para um comentário
# arquivo de configuração de referência.
# A linha a seguir inclui arquivos de configuração adicionais do diretório # /etc/nsd/nsd.conf.d. # AVISO: O estilo glob ainda não funciona ... # include: "/etc/nsd/nsd.conf.d/*.conf" server: logfile: "/var/log/nsd.log" endereço IP : 172.16.10.30 # escuta em conexões IPv4 do-ip4: sim # escuta em conexões IPv6 do-ip6: não # porta para responder a consultas. o padrão é 53. port: 53 username: nsd # Em zonas, a opção give-xfr é para # axfr checks zone: name: fan zonefile: /etc/nsd/fan.zone zone: name: desdelinux.ventilador
    arquivo de zona: /etc/nsd/desdelinux.fan.zone provide-xfr: 172.16.10.250 zona NOKEY: nome: 10.16.172.in-addr.harp
    zonefile: /etc/nsd/10.16.172.arpa.zone supply-xfr: 172.16.10.250 NOKEY zona: nome: swl.fan zonefile: /etc/nsd/swl.fan.zone zona: nome: debian.fan zonefile: /etc/nsd/debian.fan.zone zone: name: centos.fan zonefile: /etc/nsd/centos.fan.zone zone: name: freebsd.fan zonefile: /etc/nsd/freebsd.fan.zone


root @ ns: ~ # nsd-checkconf /etc/nsd/nsd.conf
root @ ns: ~ #

Nós criamos os arquivos de Zonas

A Zona Raiz «ventilador.» configurado abaixo é APENAS PARA TESTE e não deve ser tomado como exemplo. Não somos administradores de servidores de nomes de domínio raiz. 

root @ ns: ~ # nano /etc/nsd/fan.zone
Ventilador $ ORIGIN. $ TTL 3H @ IN SOA ns.fan. root.fan. (1; série 1D; atualizar 1H; repetir 1W; expirar 3H); mínimo ou; Tempo de cache negativo para viver; @ IN NS ns.fan. @ IN A 172.16.10.30; ns IN A 172.16.10.30

root@ns:~# nano /etc/nsd/desdelinux.fan.zona
$ ORIGEM desdelinux.fã. $TTL 3H @ IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. (1; serial 1D; atualização 1H; nova tentativa 1W; expiração 3H); mínimo ou ; Tempo de vida do cache negativo; @V NS ns.desdelinux.fã. @ IN MX 10 e-mail.desdelinux.fã. @ IN TXT "v=spf1 a:mail.desdelinux.fan -all" ; ; Registre-se para resolver consultas dig desdelinux.fan@IN A 172.16.10.10 ; ns IN A 172.16.10.30 mail IN CNAME   desdelinux.fã. conversar EM CNAME   desdelinux.fã. www EM CNAME   desdelinux.fã. ; ; Registros SRV relacionados ao XMPP
_xmpp-server._tcp IN SRV 0 0 5269 desdelinux.fã.
_xmpp-client._tcp IN SRV 0 0 5222 desdelinux.fã.
_jabber._tcp IN SRV 0 0 5269 desdelinux.fã.

root @ ns: ~ # nano /etc/nsd/10.16.172.arpa.zone
$ ORIGIN 10.16.172.in-addr.arpa.
$TTL 3H @ IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. (1; serial 1D; atualização 1H; nova tentativa 1W; expiração 3H); mínimo ou ; Tempo de vida do cache negativo; @V NS ns.desdelinux.fã. ; 30 IN PTR nos.desdelinux.fã. 10 NO PTR     desdelinux.fã.

root@ns:~# zona de verificação nsd desdelinux.fan /etc/nsd/desdelinux.fan.zona
zona desdelinux.fan está bem
root @ ns: ~ # nsd-checkzone 10.16.172.in-addr.arpa /etc/nsd/10.16.172.arpa.zone
zona 10.16.172.in-addr.arpa está ok # No Debian, o NSD termina sua instalação habilitado por padrão
root @ ns: ~ # systemctl restart nsd
root @ ns: ~ # systemctl status nsd
● nsd.service - Daemon do servidor de nomes carregado: carregado (/lib/systemd/system/nsd.service; ativado) Ativo: ativo (em execução) desde Sun 2017-04-30 09:42:19 EDT; 21min atrás PID principal: 1230 (nsd) CGroup: /system.slice/nsd.service ├─1230 / usr / sbin / nsd -d -c /etc/nsd/nsd.conf ├─1235 / usr / sbin / nsd - d -c /etc/nsd/nsd.conf └─1249 / usr / sbin / nsd -d -c /etc/nsd/nsd.conf

Verificações do próprio servidor ns.fan

root@ns:~#host desdelinux.ventilador
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

root@ns:~#hostmail.desdelinux.ventilador
correio.desdelinux.fan é um apelido para desdelinux.fã.
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

root@ns:~#hostchat.desdelinux.ventilador
bate-papo.desdelinux.fan é um apelido para desdelinux.fã.
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

root@ns:~#host www.desdelinux.ventilador
www.desdelinux.fan é um apelido para desdelinux.fã.
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

root@ns:~# host ns.desdelinux.ventilador
ns.desdelinux.fan tem endereço 172.16.10.30

root @ ns: ~ # host 172.16.10.30
30.10.16.172.in-addr.arpa ponteiro de nome de domínio ns.desdelinux.fã.

root @ ns: ~ # host 172.16.10.10
Ponteiro de nome de domínio 10.10.16.172.in-addr.arpa desdelinux.fã.

root @ ns: ~ # host ns.fan
ns.fan tem o endereço 172.16.10.30

Verificações de resolução de nomes na Internet

  • As consultas detalhadas de DNS nunca são muitas, pois o funcionamento correto da Resolução de Nomes de Domínio dependerá em grande parte do correto funcionamento da rede.

Para realizar consultas DNS eu conectei ao meu switch - interruptor teste, um laptop com o IP 172.16.10.250 e gateway 172.16.10.1, Endereço IP que corresponde à minha estação de trabalho administrador de sistema.desdelinux.ventilador conforme conhecido em artigos anteriores.

sandra @ laptop: ~ $ sudo ip addr show
1: o que: mtu 16436 qdisc noqueue state link / loopback DESCONHECIDO 00: 00: 00: 00: 00: 00 brd 00: 00: 00: 00: 00: 00 inet 127.0.0.1/8 host de escopo lo inet6 :: 1/128 host de escopo valid_lft para sempre preferido_lft para sempre 2: eth0: mtu 1500 qdisc pfifo_fast estado UP qlen 1000 link / éter 00: 17: 42: 8e: 85: 54 brd ff: ff: ff: ff: ff: ff inet 172.16.10.250/24 brd 172.16.10.255 escopo global eth0 inet6 fe80: : 217: 42ff: fe8e: 8554/64 link de escopo valid_lft forever preferred_lft forever 3: wlan0: mtu 1500 qdisc noop state DOWN qlen 1000 link / ether 00: 1d: e0: 88: 09: d5 brd ff: ff: ff: ff: ff: ff 4: pan0: mtu 1500 qdisc noop estado link / éter de: 0b: 67: 52: 69: ad brd ff: ff: ff: ff: ff: ff


sandra @ laptop: ~ $ sudo route -n
Tabela de roteamento IP do kernel Destino Gateway Genmask Sinalizadores Métrica Ref Use Iface 0.0.0.0 172.16.10.1 0.0.0.0 UG 0 0 0 eth0 172.16.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

sandra @ laptop: ~ $ cat /etc/resolv.conf
172.16.10.30 nameserver

sandra@laptop:~$host desdelinux.ventilador
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

sandra @ laptop:~$hostmail.desdelinux.ventilador
correio.desdelinux.fan é um apelido para desdelinux.fã.
desdelinux.fan tem endereço 172.16.10.10
desdelinuxO correio .fan é tratado por 10 correios.desdelinux.fã.

sandra @ laptop:~$ host ns.desdelinux.ventilador
ns.desdelinux.fan tem endereço 172.16.10.30

sandra @ laptop: ~ $ host 172.16.10.30
30.10.16.172.in-addr.arpa ponteiro de nome de domínio ns.desdelinux.fã.

sandra @ laptop: ~ $ host 172.16.10.10
Ponteiro de nome de domínio 10.10.16.172.in-addr.arpa desdelinux.fã.

sandra@laptop:~$ host -t SRV _xmpp-server._tcp.desdelinux.ventilador
_xmpp-server._tcp.desdelinux.fan tem registro SRV 0 0 5269 desdelinux.fã.

sandra @ laptop:~$ host -t SRV _xmpp-client._tcp.desdelinux.ventilador
_xmpp-client._tcp.desdelinux.fan tem registro SRV 0 0 5222 desdelinux.fã.

sandra @ laptop:~$ host -t SRV _jabber._tcp.desdelinux.ventilador
_jabber._tcp.desdelinux.fan tem registro SRV 0 0 5269 desdelinux.fã.

sandra @ laptop: ~ $ host -um fã.
Tentando "fã" ;; - >> HEADER << - opcode: QUERY, status: NOERROR, id: 57542 ;; sinalizadores: qr aa rd; PERGUNTA: 1, RESPOSTA: 3, AUTORIDADE: 0, ADICIONAL: 1 ;; SEÇÃO DE PERGUNTAS: ventilador. EM QUALQUER ;; SEÇÃO DE RESPOSTA: ventilador. 10800 IN SOA ns.fan. root.fan. 1 86400 3600 604800 10800 ventilador. 10800 IN NS ns.fan. ventilador. 10800 IN A 172.16.10.30 ;; SEÇÃO ADICIONAL: ns.fan. 10800 IN A 172.16.10.30 Recebeu 111 bytes de 172.16.10.30 # 53 em 0 ms
  • Definimos intencionalmente o endereço 172.16.10.250  No Laptop, para verificar TUDO por meio de uma consulta DNS AXFR, já que as Zonas foram configuradas para permitir -sem senha- este tipo de consulta daquele IP.
sandra@laptop:~$ cavar desdelinux.fan axfr
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> desdelinux.fan axfr ;; opções globais: +cmd
desdelinux.fã. 10800 IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. 1 86400 3600 604800 10800
desdelinux.fã. 10800 IN NS nos.desdelinux.fã.
desdelinux.fã. 10800 EM MX 10 e-mail.desdelinux.fã.
desdelinux.fã. 10800 IN TXT "v=spf1 a:mail.desdelinux.fã -todos"
desdelinux.fã. 10800 EM UM 172.16.10.10 _jabber._tcp.desdelinux.fã. 10800 IN SRV 0 0 5269 desdelinux.fã. _xmpp-client._tcp.desdelinux.fã. 10800 IN SRV 0 0 5222 desdelinux.fã. _xmpp-server._tcp.desdelinux.fã. 10800 IN SRV 0 0 5269 desdelinux.fã. bater papo.desdelinux.fã. 10800 EM CNAME   desdelinux.fã. e-mail.desdelinux.fã. 10800 EM CNAME   desdelinux.fã. ns.desdelinux.fã. 10800 EM UM 172.16.10.30 www.desdelinux.fã. 10800 EM CNAME   desdelinux.fã.
desdelinux.fã. 10800 IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. 1 86400 3600 604800 10800 ;; Tempo de consulta: 0 ms ;; SERVIDOR: 172.16.10.30#53(172.16.10.30) ;; QUANDO: Dom, 30 de abril 10:37:10 EDT 2017 ;; Tamanho XFR: 13 registros (mensagens 1, bytes 428)

sandra @ laptop: ~ $ dig 10.16.172.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> 10.16.172.in-addr.arpa axfr ;; opções globais: +cmd 10.16.172.in-addr.arpa. 10800 IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. 1 86400 3600 604800 10800 10.16.172.in-addr.arpa. 10800 IN NS nos.desdelinux.fã. 10.10.16.172.in-addr.arpa. 10800 EM PTR desdelinux.fã. 30.10.16.172.in-addr.arpa. 10800 IN PTR nos.desdelinux.fã. 10.16.172.in-addr.arpa. 10800 IN SOA nos.desdelinux.fã. raiz.desdelinux.fã. 1 86400 3600 604800 10800 ;; Tempo de consulta: 0 ms ;; SERVIDOR: 172.16.10.30#53(172.16.10.30) ;; QUANDO: Dom, 30 de abril 10:37:27 EDT 2017 ;; Tamanho XFR: 5 registros (mensagens 1, bytes 193)

sandra @ laptop:~$ ping ns.desdelinux.ventilador
PING não.desdelinux.fan (172.16.10.30) 56(84) bytes de dados.

As consultas DNS necessárias foram respondidas corretamente. Também verificamos se o Shorewall funciona corretamente e não aceita sibilo de computadores conectados à Internet.

Resumo

  • Vimos como instalar e configurar - com as opções básicas e mínimas - um servidor DNS autorizado baseado no NSD. Verificamos que a sintaxe dos arquivos de zona é muito semelhante à do BIND. Na Internet existe uma literatura muito boa e completa sobre NSD.
  • Cumprimos o objetivo de exibir a declaração de registros SRV relacionados ao XMPP.
  • Ajudamos na instalação e configuração mínima de um firewall baseado em Shorewall.

próxima entrega

Prosody IM e usuários locais.