Quero enviar um e-mail para o host no segmento de trás (por exemplo, aquele que não tem EIP na VPC, ou aquele que você quer sentir no fundo, como banco de dados ou NAS) para resolução de nomes, e-mail, yum, wget, sincronização de tempo, etc.! Gostaria de resumir as configurações nesse caso.
Existem dois padrões por enquanto. O padrão NAT (usando uma instância NAT no caso da AWS) e o padrão de colocar software em um servidor de gerenciamento que pode se comunicar globalmente.
★Padrão NAT (usando instâncias NAT na AWS)
Se o lado do banco de dados não tiver um Gateway de Internet e estiver roteando localmente em vez de publicamente, você não poderá sair, incluindo resolução de nomes. (※) Quando tentei converter uma web com múltiplas NICs para NAT, parecia que uma instância multiinterface não podia ser usada como saída para NAT. A nova conta que peguei recentemente é apenas VPC, e parece que o IP global está sendo manipulado cada vez de forma mais arbitrária. (Especificação de que preciso anexar um EIP)
Como criar uma instância NAT a partir da seguinte URL: Treinamento da Amazon VPC - Como Criar uma Instância NAT Detalhes da VPC - Quase Semanal Série AWS Meister Parte 7 - Usando NAT na Amazon VPC para separar sub-redes públicas e privadas
Você pode criar uma instância NAT conforme mostrado no slide superior. De forma geral, crie uma sub-rede de VPC, crie uma instância NAT com a AMI "ami-vpc-nat", desative o "Change Source/DestCheck" da instância NAT, associe o EIP à instância NAT, adicione o ID da instância NAT ao RouterTable no PublicSubnet e defina o SecurityGroup da instância NAT conforme necessário
Além disso, parece ser necessário definir regras NAT em iptables após a criação da instância, como no método geral de configuração de routerização.
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE
serviço iptables salvar
iptables --list -t nat
Como mostrado no slide acima, você também precisa configurar uma configuração de roteamento para tornar a instância NAT o gateway padrão.
# vi /etc/sysctl.conf
----------------------------------------------------
net.ipv4.ip_forward = 0
↓
net.ipv4.ip_forward = 1
----------------------------------------------------
# sysctl -p
Método de Configuração de Routerização (NAT) Criando um Roteador Linux Usando a Tabela NAT
Após a conversão do NAT, especifique o gateway padrão do lado do cliente como servidor NAT
Adicionar um novo gateway padrão
# /sbin/route add default gw 10.0.0.251 dev eth0
# netstat -rn
Remova o gateway padrão antigo
# /sbin/route del default gw 10.0.0.2 dev eth0
# netstat -rn
Confirme
# ping yahoo.co.jp
★ Um padrão que resolve o problema inserindo um software em um servidor de gerenciamento que pode se comunicar globalmente
Por enquanto, começando pela resolução de nomes. Isso é quando uso bind.
- Construa uma Referência DNS interna: Crie um servidor DNS interno
@DNS Lado do Servidor
# rpm -qa|grep bind
bind-utils-9.3.6-20.P1.el5_8.5
ypbind-1.19-12.el5_6.1
bind-libs-9.3.6-20.P1.el5_8.5
Instalação bind.x86_64 Bind-devel.x86_64
Instalado:
bind.x86_64 30:9.3.6-20.P1.el5_8.6
Bind-devel.x86_64 30:9.3.6-20.P1.el5_8.6
Dependência Instalada:
bind-libs.i386 30:9.3.6-20.P1.el5_8.6
Dependência Atualizada:
bind-libs.x86_64 30:9.3.6-20.P1.el5_8.6
bind-utils.x86_64 30:9.3.6-20.P1.el5_8.6
vi /etc/named.conf
---------------
opções {
Onde armazenar arquivos de zona
diretório "/var/named";
Especifique o escopo de uso do BIND
allow-query {
Own (localhost)
127.0.0.1;
10.0.0.* ( Sub-net 255.255.255.0 )
10.0.0.0/24;
};
Descreva o endereço do DNS escravo. Não é necessário para o DNS interno, mas descreva por enquanto.
allow-transfer {
Own (localhost)
127.0.0.1;
10.0.0.* ( Sub-net 255.255.255.0 )
10.0.0.0/24;
};
Se você não conseguir resolver o nome sozinho, primeiro acesse o DNS do provedor para solicitar.
Parece levar a uma melhora na resolução de nomes na LAN. 29/07/2003 Adicionado
encaminhadores {
211.132.xxx.xxx; Endereço IP DNS Principal ISAO
211.132.xxx.xxx; Endereço IP DNS Secundário ISAO
};
};
Informações de DNS Raiz
zona "." {
Indique que é a informação raiz do DNS
Dica de tipo;
Nome do arquivo
arquivo "named.ca";
};
Configurando um sorteio para frentes localhost
zona "localhost" {
Indique que é um Servidor DNS Mestre
mestre de tipos;
Nome do arquivo
arquivo "localhost.zone";
};
Configurando a Busca Reversa LocalHost
zona "0.0.127.in-addr.arpa" {
Deixe claro que é um Servidor DNS Mestre
mestre de tipos;
Nome do arquivo
arquivo "0.0.127.in-addr.arpa";
};
Configurando uma Consulta Reversa para a 10.0.0.*
Zona "0.0.10.in-addr.arpa" {
Deixe claro que é um Servidor DNS Mestre
mestre de tipos;
Nome do arquivo
arquivo "vazia";
};
---------------
O que ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
cp named.root /var/named/named.ca
vi /var/nomeado/vazio
-----------------------------------------------------------
; Arquivo de dados reverso BIND para zona rfc1918 vazia
;
; NÃO EDITE ESTE ARQUIVO - ele é usado para múltiplas zonas.
; Em vez disso, copie, edite named.conf e use essa cópia.
;
$TTL 86400
@ IN SOA localhost root.localhost. (
1 ; Serial
604800 ; Atualizar
86400 ; Retentar
2419200 ; Expirar
86400 ) ; TTL de cache negativo
;
@ IN NS localhost.
-----------------------------------------------------------
vi /var/named/localhost.zone
----
$TTL 86400
@ IN SOA @ root (
1 ; Serial
604800 ; Atualizar
86400 ; Retentar
2419200 ; Expirar
86400 ) ; TTL de cache negativo
EM NS @
EM UM 127.0.0.1
----
vi /var/named/0.0.127.in-addr.arpa
----
$TTL 86400
@ EM SOA localhost. root.localhost. (
1 ; Serial
604800 ; Atualizar
86400 ; Retentar
2419200 ; Expirar
86400 ) ; TTL de cache negativo
IN NS localhost.
1 IN PTR localhost.
----
vi /etc/sysconfig/named
OPTIONS="-4"
/etc/init.d/início nomeado
ps -ef|grep nomeado
nomeado 4801 1 0 12:02 ? 00:00:00 /usr/sbin/nomeado -u nomeado -4
chkconfig nomeado em
@DNS Lado do cliente
vi /etc/resolv.conf
---
nameserver 10.0.0.10
nameserver 10.0.0.2
# cavar +noall + responder www.isao.net
www.isao.net. 1800 EM 218.42.137.171
# cavar +noall + responder www.yahoo.co.jp
www.yahoo.co.jp. 372 EM CNAME www.g.yahoo.co.jp.
www.g.yahoo.co.jp. 17 IN A 124.83.203.233
*O motivo pelo qual eu vinculo é porque estou acostumado. O Unbound parece ser mais fácil. Veja abaixo. Instalei o Unbound
Isso sozinho já resolve o nome, mas não yum. Como só o bind resolve o nome, posso adicionar squid e ntpd para fazer yum, wget e ntpdate do NAS.
- Construa um proxy para frente e faça yum, wget e curl
*Não é um proxy reverso que acelera a interface do servidor web. É uma forma de armazenar conteúdo em cache e acelerar (ou regular) downloads internamente.
@プロキシサーバ側
Yum install squid.x86_64 --enablerepo=epel
Instalado:
squid.x86_64 7:2.6.STABLE21-6.EL5
cp -p /etc/squid/squid.conf{,.'date +%Y%m%d'}
vim /etc/squid/squid.conf
diff /etc/squid/squid.conf{,.'date +%Y%m%d'}
590d589
< ACL LAN SRC 10.0.0.0/255.255.255.0
638d636
< http_access permitir LAN
2795,2797d2792
< header_access X-Encaminhado-Para negar tudo
< header_access Via negar tudo
< header_access Controle de Cache negar tudo
3012d3006
< visible_hostname xx-stg.isao.net
4284c4278
< forwarded_for fora
---
> # forwarded_for em frente
Partida de lulas de serviço
chkconfig squid ligado
NetStat -LNPT|grep Squid
tcp 0 0 0.0.0.0:3128 0.0.0.0:* OUÇA 5010/(lula)
@クライアント側
vi /etc/yum.conf
--
proxy=http://10.0.0.10:3128/
--
Lista de grupo do Yum
vi ~/.wgetrc
--
http_proxy=10.0.0.10:3128
--
vi ~/.curlrc
--
proxy=http://10.0.0.10:3128
--
*Especificando proxies para wget, etc. Aliás, git, gem, vagrant, etc. foram escritos aqui.
Para instalar o repositório, consulte RPMforge EPEL ELRepo Remi Repository Installation
- Configure o NTPD para sincronização de tempo @ntp lado do servidor
toque /etc/ntp.drift
cp -p /etc/ntp.conf{,.org}
vi /etc/ntp.conf
---
servidor ntp.nict.jp
ntp.jst.mfeed.ad.jp servidor
driftfile /etc/ntp.drift
---
Início do serviço NTPD
chkconfig ntpd ligado
NTPQ -P
Refid St T remoto quando o poll atinge atraso jitter de deslocamento
==============================================================================
ntp.nict.jp 133.243.238.243 2 u 2 64 3 33.951 -102.58 3.204
ntp2.jst.mfeed. 210.173.160.86 2 u 2 64 3 2.568 -102.27 2.897
@ntp Lado do cliente
ntpdate 10.0.0.10
# ntpdate -b 10.0.0.10
24 Jan 14:58:55 ntpdate[6730]: servidor de tempo de passo 10.0.0.10 offset 0.070994 seg
# crontab -e
# crontab -l
0 * * * * /usr/sbin/ntpdate -bs 10.0.0.10 > /dev/null 2>&1
No caso da nuvem, ouvi dizer que o tempo é facilmente alterado, e se o tempo estiver errado, o tempo nas colunas de log e do banco de dados pode ser alterado, e o impacto na aplicação pode ser sério. Não esqueça de configurá-lo.
★Configurações quando você quer encaminhar e-mails de dentro da LAN para o servidor MTA
- No caso do sendmail, @MTA configurações Defina para aceitar encaminhamento de e-mails localmente Introduza o rpm necessário para compilar o sendmail.cf
# Hum, instalar Sendmail-CF
Modificando Configurações
# cd /etc/mail
# cp -p sendmail.mc{,.'date +%Y%m%d'}
# vi sendmail.mc
dnl DAEMON_OPTIONS('Port=smtp,Addr=10.0.0.251, Name=MTA')dnl
LOCAL_DOMAIN('mydmainname.com')dnl
*RELAY é restrito ao permitir permissão de todas as direções ()
# cp -p access{,.'date +%Y%m%d'}
# Acesso VI
Conectar:localhost.localdomain RELAY
Conectar:localhost RELAY
Conectar:127.0.0.1 RELÉ
Conectar: 10.0.0 RELAY
Atualizando Configurações
# makemap -v hash /etc/mail/access.db < /etc/mail/access
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Reinício do Sendmail
# /etc/init.d/sendmail reiniciar
@メールクライアントの設定 Backup
# cp -p /etc/mail/submit.cf{,.org} ; ls -al /etc/mail/submit.cf*
# cp -p /etc/mail/nomes-hos-locais{,.org}; ls -al /etc/email/nomes-hos-locais*
Alterando configurações
# Especifique o nome de host do cliente que será o domínio de DJ_HOSTNAME=from
# sed -i 's/^#Dj\$w.Foo.COM$/\0\nDj'${DJ_HOSTNAME}'/' /etc/mail/submit.cf
# echo ${DJ_HOSTNAME} >> /etc/mail/local-host-names
# sed -i "s/D{MTAHost}\[127\.0\.0\.1\]/D{MTAHost}[10.0.0.251]/g" /etc/mail/submit.cf
*Especifique o endereço MTA do e-mail em MTAHost *Se você não definir Dj, o domínio escrito em vez de localhost na terceira coluna da linha 127.0.0.1 em /etc/hosts será de onde.
Compare e confirme
# diff /etc/mail/submit.cf{,.org}
# diff /etc/mail/local-host-names{,.org}
Por fim, confirme o envio com o comando de e-mail
# mail -s título-testmail hoge@gmail.com
Se precisar de um registro DKIM ou SPF, defina separadamente.
- No caso de postfix@メールサーバ側の設定
# vi /etc/postfix/main.cf
---
minhas redes = 54.249.xxx.xxx/32, 10.122.4.56/32, 10.121.18.78/32 54.249.xxx.xxx/32
---
# recarregamento de postfixo de serviço
*Permitir a partir de local (o acima é um ambiente AWS que não é uma VPC, então /32 é especificado, mas se for uma VPC, /24, etc. está ok) *Outras configurações são assumidas como completadas de acordo.
@メールクライアントの設定
# vi /etc/postfix/main.cf
---
myhostname = [FQDN do host cliente]
relayhost = [FQDN da MTA]
---
# recarregamento de postfixo de serviço
- No caso do qmail, escreva em tcp.smtp para permitir o RELAY e atualizar o banco de dados de hash.
# cp -p tcp.smtp{,.'date +%Y%m%d'}
# vi tcp.smtp
10.0.0.:permit,RELAYCLIENT=""
# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Se vpopmail também estiver incluído
# /home/vpopmail/bin/clearopensmtp
Verifique o conteúdo do banco de dados
# cdbdump < /home/vpopmail/etc/tcp.smtp.cdb > ./tcp.smtp.'date +%Y%m%d'.txt
*O lado do cliente deve verificar se é sendmail ou postfix *Por favor, verifique o PATH conforme apropriado
Se você não tiver uma instância NAT, vai ser um pouco complicado configurar. Se quiser ser simples, acho que NAT é melhor. No entanto, se você tem um servidor de gerenciamento mas tem múltiplas IFs ou taxas de NAT são um desperdício, pode resolver o problema adicionando um app.