Howto - Servidor proxy
7. Instalando o Servidor de Proxy TIS
7.1. Buscando o software
O TIS FWTK se encontra em ftp://ftp.tis.com/.
Não cometa o mesmo engano que eu fiz. Quando você
esta nos arquivos de ftp do TIS, LEIA OS README's. O fwtk do TIS
é colocado em diretório escondido no servidor deles.
TIS requer que você envie um email para [email protected]
com a palavra SEND no corpo da mensagem para saber o nome do diretório
escondido. Não é necessário nenhum assunto
na mensagem. O sistema deles verá a correspondência
e então você receberá o nome do diretório
(bom durante 12 horas) para baixar o arquivo.
Enquanto eu estou escrevendo o TIS está lançando
a versão 2.0 (beta) do FWTK.
Esta versão parece compilar bem (com alguns exceções)
e tudo está funcionando para o meu uso. Esta é a
versão que eu estarei cobrindo aqui. Quando eles lançar
o código final eu atualizarei o HOWTO.
Instale o FWTK, crie um diretório fwtk-2.0 no seu diretório
/usr/src. Mova a sua cópia do FWTK (fwtk-2.0.tar.gz) para
este diretório e descompacta ele (tar zxf fwtk-2.0.tar.gz).
O FWTK não faz proxy SSL de documentos Web mas há
um complemento para isto escrito por Jean-Christophe Touvet. É
encontra-se no ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z.
Touvet não faz apóio sobre o código.
Eu estou usando uma versão modificada que inclui acesso
para o Secure Netscape e o servidores de notícias escritos
por Eric Wedel. Está disponível em
ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z.
Em nosso exemplo eu usarei a versão do Eric Wedel.
Instale ele, simplesmente crie um diretório de ssl-gw
em seu diretório /usr/src/fwtk-2.0 e o ponha lá.
Quando eu instalei este gateway ele requereu algumas mudanças
antes de compilar com o resto do toolkit.
A primeira mudança era ao arquivo de ssl-gw.c. Eu achei
que não precisava incluir este arquivo.
Defined(__linux de #if)
#include
#endif
Segundo é que não veio com um Makefile. Eu copiei
um outro do diretório do gateway e substitui o nome do
gateway por ssl-gw.
7.2. Compilando o TIS FWTK
Versão 2.0 do FWTK compilou fácil em relação
as mais velhas versões. Eu ainda achei várias coisas
que precisaram ser mudadas antes de que a versão BETA compilace
completamente. Espero ansiomente estas mudanças sejam feitas
na versão final.
Arrume ele, comece mudando o diretório de /usr/src/fwtk/fwtk
contido no arquivo Makefile.config.linux em cima do arquivo Makefile.config
NÃO RODE o FIXMAKE. As instruções lhe dizem
que o execute. Se você o faz o arquivo makefile quebra em
relação a cada diretório.
Eu tive uma dificuldade com o fixmake. O problema é o
script do sed adicione um '.' e '' para a linha que contem o Makefile.
Estes é o trabalho no script do sed.
sed 's/^include[ ]*\([^ ].*\)/include \1/' $name .proto >
$name
Logo nós precisamos editar o arquivo de Makefile.config.
Há duas mudanças que você pode precisar fazer.
O autor fixou o diretório de fonte para o diretório
home dele. Nós iremos compilar o nosso código em
/usr/src assim você deve mudar a variável FWTKSRCDIR
para refletir isto.
FWTKSRCDIR=/usr/src/fwtk/fwtk
Segundo, pelo menos alguns sistema do Linux o banco de dados
de gdbm. O Makefile.config está usando dbm. Você
pode precisar mudar isto. Eu tive que fazer para RedHat 3.0.3.
DBMLIB=-lgdbm
A última dificuldade está no x-gw. O bug na versão
BETA é no código do socket.c. Configure isto removendo
estas linhas de código.
#ifdef SCM_RIGHTS /* 4.3BSD Reno and later */
+ sizeof(un_name->sun_len) + 1
#endif
Se você somar o ssl-gw ao seu fonte FWTK no diretório
que você precisa some na lista de diretório no Makefile.
DIRS= smap smapd netacl plug-gw ftp-gw tn-gw rlogin-gw http-gw
x-gw ssl-gw
Agora rode-o.
7.3. Instalando o TIS FWTK
Rode o make install.
O diretório de instalação default é
/usr/local/etc. Você pode mudar isto (eu não o fiz)
para um diretório mais seguro. Eu escolhi mudar o acesso
a este diretório para 'chmod 700'.
Depois agora resta é configurar o firewall.
7.4. Configurando o TIS FWTK
Agora é que realmente começa a diversão.
Nós temos que ensinar o sistema a chamar os novos serviços
e criar uma tabela de controles.
Eu não vou tentar ré-escrever o manual do TIS FWTK
aqui. Eu mostrarei a você a colocação de como
estou trabalhado e explico os problemas que ocorreram quando eu
fui rodar eles.
Há três arquivos que compõem estes controles.
· /etc/services
· Chama um serviço para a porta do sistema aberta.
· /etc/inetd.conf
· Chama o programa inetd que define quando alguém
bate em uma porta de serviço.
· /usr/local/etc/netperm-table
· Chama os serviços de FWTK que permitir e negam
os serviços.
Para chamar as funções do FWTK, você precisa
edita os arquivos acima. Editando os arquivos de serviços
sem o arquivo inetd.conf ou netperm-table configurados corretamente
o seu sistema pode ficar inacessível.
7.4.1. O arquivo de netperm-table
Estes controles do arquivo podem ter acesso aos serviços
do TIS FWTK. Você deva pensar no tráfico que é
usar o firewall de ambos os lados.
Pessoas de fora da sua network deveriam se identificar antes
de ganhar acesso, mas as pessoas de dentro de sua network poucos
poderiam ser permitidos.
Assim as pessoas podem se identificar, o firewall usa um programa
chamado authsrv para manter um banco de dados de IDs do usuário
IDs e a password. A seção de autenticação
do netperm-table controla onde o banco de dados é mantem
quem pode ter acesso.
Eu tive alguma dificuldade de fechar o acesso para este serviço.
Note a linha premit-host Eu usei um '*' para dar ha todo mundo
acesso. A colocação correta para esta linha é
'' authsrv: localhost de premit-host localhost se você quer
trabalhar com isto.
#
# Proxy configuration table
#
# Authentication server and client rules
authsrv: database /usr/local/etc/fw-authdb
authsrv: permit-hosts *
authsrv: badsleep 1200
authsrv: nobogus true
# Client Applications using the Authentication server
*: authserver 127.0.0.1 114
Inicializar o banco de dados, su para o root, e executar ./authsrv
no Diretório do /var/local/etc para criar o registro de
usuário administrativo. Aqui é uma sessão
de amostra.
Leia a documentação de FWTK para aprender a somar
os usuários e grupos.
#
# authsrv
authsrv# list
authsrv# adduser admin "Auth DB admin"
ok - user added initially disabled
authsrv# ena admin
enabled
authsrv# proto admin pass
changed
authsrv# pass admin "plugh"
Password changed.
authsrv# superwiz admin
set wizard
authsrv# list
Report for users in database
user group longname ok? proto last
------ ------ ------------------ ----- ------ -----
admin Auth DB admin ena passw never
authsrv# display admin
Report for user admin (Auth DB admin)
Authentication protocol: password
Flags: WIZARD
authsrv# ^D
EOT
#
A porta de controle do telnet (tn-gw) são dianteiros e
o primeiro você deve montar.
Eu permito que o host de dentro da network privada possa passar
em meu exemplo, sem se autenticar. (permit-hosts 19961.2.* -passok)
Mas, qualquer outro usuário tem que entrar no ID do usuário
e com a password para usar o proxy. (permit-hosts * -auth)
Eu também permito que um outro sistema (196.1.2.202) tenha
acesso ao meu firewall diretamente sem passar pelo firewall. As
duas linhas inetacl- in.telnetd do in.telnetd faz isto. Eu explicarei
como estas linhas são chamadas posteriormente.
O intervalo de Telnet deveria ser mantido pequeno.
# telnet gateway rules:
tn-gw: denial-msg /usr/local/etc/tn-deny.txt
tn-gw: welcome-msg /usr/local/etc/tn-welcome.txt
tn-gw: help-msg /usr/local/etc/tn-help.txt
tn-gw: timeout 90
tn-gw: permit-hosts 196.1.2.* -passok -xok
tn-gw: permit-hosts * -auth
#Só o Administrador pode acessar o telnet diretamente para
o Firewall
pela Porta 24 netacl-in.telnetd:
permit-hosts 196.1.2.202 -exec /usr/sbin/in.telnetd
Os r-comandos trabalham do mesmo modo como o telnet.
# rlogin gateway rules:
rlogin-gw: denial-msg /usr/local/etc/rlogin-deny.txt
rlogin-gw: welcome-msg /usr/local/etc/rlogin-welcome.txt
rlogin-gw: help-msg /usr/local/etc/rlogin-help.txt
rlogin-gw: timeout 90
rlogin-gw: permit-hosts 196.1.2.* -passok -xok
rlogin-gw: permit-hosts * -auth -xok
# Somente o administrador pode acessar o telnet diretamente do
firewall via Porta
netacl-rlogind: permit-hosts 196.1.2.202 -exec /usr/libexec/rlogind
-a
Você não deve deixar que ninguém tenha acesso
ao seu firewall diretamente e isso inclui o FTP assim não
põe um servidor de FTP, no seu firewall.
Novamente, a linha de permit-hosts permite que qualquer um na
network protegida acesse livremente a Internet e tudos os outros
têm que autenticar eles. Eu incluí um arquivo de
logs de envio e recebimento no meu controle. (-log { retr stor
})
O intervalo do ftp controla quanto tempo leva para derrubar um
conexão péssima como também quanto tempo
uma conexão ficará aberto com nenhuma atividade.
# ftp gateway rules:
ftp-gw: denial-msg /usr/local/etc/ftp-deny.txt
ftp-gw: welcome-msg /usr/local/etc/ftp-welcome.txt
ftp-gw: help-msg /usr/local/etc/ftp-help.txt
ftp-gw: timeout 300
ftp-gw: permit-hosts 196.1.2.* -log { retr stor }
ftp-gw: permit-hosts * -authall -log { retr stor }
Web, gopher e browser baseado em ftp são controlados pelo
http-gw. As primeiras duas linhas criam um diretório para
armazenar documentos do ftp e do web de como eles estão
atravessando o firewall. Eu faço estes arquivos na raiz
e pôs o em um diretório acessível só
através da raiz.
A conexão de Rede deve ser mantida pequena. Controlar
quanto tempo o usuário espere em uma conexão ruim.
# www and gopher gateway rules:
http-gw: userid root
http-gw: directory /jail
http-gw: timeout 90
http-gw: default-httpd www.afs.net
http-gw: hosts 196.1.2.* -log { read write ftp }
http-gw: deny-hosts *
O ssl-gw é uma passagem real como qualquer outra porta.
Seja cuidadoso com isto. Neste exemplo eu permito que qualquer
um de dentro da network protegida possa se conectar a qualquer
servidor de fora da network menos nos endereços 127.0.0.*
e 192.1.1.* e então só em portas 443 até
563. Portas 443 até 563 são portas conhecidas do
SSL.
# ssl gateway rules:
ssl-gw: timeout 300
ssl-gw: hosts 196.1.2.* -dest { !127.0.0.* !192.1.1.* *:443:563
}
ssl-gw: deny-hosts *
Aqui é um exemplo de como usar um plug-gw permitir que
as conexões para um servidor de news. Neste exemplo eu
permito que qualquer um dentro da network protegida possa conectar
a só um sistema e só para isto é a porta
de news.
A segunda linha permite ao servidor de notícias passar
os seus dados através da network protegida.
Porque a maioria dos clientes espera ficar conectados enquanto
o usuário leia as notícias, o intervalo para um
servidor de news deve ser longo.
# NetNews Pluged gateway
plug-gw: timeout 3600
plug-gw: port nntp 196.1.2.* -plug-to 199.5.175.22 -port nntp
plug-gw: port nntp 199.5.175.22 -plug-to 196.1.2.* -port nntp
A porta do finger é simples. Qualquer um de dentro da
network protegida deve logar-se primeiro e então nós
lhes permitimos usar o programa finger no firewall. Se não
é enviado uma mensagem.
# Enable finger service
netacl-fingerd: permit-hosts 196.1.2.* -exec /usr/libexec/fingerd
netacl-fingerd: permit-hosts * -exec /bin/cat /usr/local/etc/finger.txt
Eu não tenho configuração de Correio e serviços
de X-window assim eu não estou incluindo estes exemplos.
Se qualquer um tem um exemplo em funcionamento, por favor envia-me
um email.
7.4.2. O arquivo de inetd.conf
Aqui esta um arquivo de /etc/inetd.conf completo. Tudos serviços
têm um comentário por fora. Eu incluí o arquivo
completo para mostrar como desligar tudo, e como também
as configurações para os novos serviços do
firewall.
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#FTP firewall gateway ftp-gw stream tcp nowait.400 root /usr/local/etc/ftp-gw
ftp-gw
#Telnet firewall gateway telnet stream tcp nowait root /usr/local/etc/tn-gw
/usr/local/etc/tn-gw
# local telnet services telnet-a stream tcp nowait root /usr/local/etc/netacl
in.telnetd
# Gopher firewall gateway gopher stream tcp nowait.400 root /usr/local/etc/http-gw
/usr/local/etc/http-gw
# WWW firewall gateway http stream tcp nowait.400 root /usr/local/etc/http-gw
/usr/local/etc/http-gw
# SSL firewall gateway ssl-gw stream tcp nowait root /usr/local/etc/ssl-gw
ssl-gw
# NetNews firewall proxy (using plug-gw) nntp stream tcp nowait
root /usr/local/etc/plug-gw plug-gw nntp
#nntp stream tcp nowait root /usr/sbin/tcpd in.nntpd
# SMTP (email) firewall gateway
#smtp stream tcp nowait root /usr/local/etc/smap smap
#
# Shell, login, exec and talk are BSD protocols.
#
#shell stream tcp nowait root /usr/sbin/tcpd in.rshd
#login stream tcp nowait root /usr/sbin/tcpd in.rlogind
#exec stream tcp nowait root /usr/sbin/tcpd in.rexecd
#talk dgram udp wait root /usr/sbin/tcpd in.talkd
#ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd
#dtalk stream tcp waut nobody /usr/sbin/tcpd in.dtalkd
#
# Pop and imap mail services et al
#
#pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#imap stream tcp nowait root /usr/sbin/tcpd imapd
#
# The Internet UUCP service.
#
#uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uucico
-l
#
#Serviço de Tftp é provido principalmente para boot.
Na maioria dos locais
#só corra quando uma máquinas que agem como "servidor
de boot". Não descomente
#isto a menos que você *precise* disto.
#
#tftp dgram udp wait root /usr/sbin/tcpd in.tftpd
#bootps dgram udp wait root /usr/sbin/tcpd bootpd
#
#finger, systat e netstat distribuem informação
de usuário que pode ser
#potencialmente valiosas "para quebra do sistema". Muitos
locais escolhem incapacitar
#alguns ou tudos estes serviços para melhora segurança.
#
#cfinger é para GNU troque que não está atualmente
em uso no RHS Linux
#
finger stream tcp nowait root /usr/sbin/tcpd in.fingerd
#cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd
#systat stream tcp nowait guest /usr/sbin/tcpd /bin/ps -auwwx
#netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f
inet
#
# Serviço para sincronização do relógio.
#
#time stream tcp nowait root /usr/sbin/tcpd in.timed
#time dgram udp wait root /usr/sbin/tcpd in.timed
#
# Authentication
#
auth stream tcp wait root /usr/sbin/tcpd in.identd -w -t120
authsrv stream tcp nowait root /usr/local/etc/authsrv authsrv
#
# End of inetd.conf
7.4.3. O arquivo de /etc/services
Isto é aonde tudo começa. Quando um cliente conecta
o firewall isto conecta em uma porta conhecido (menos em 1024).
Por exemplo o telnet conecta na porta 23. O deamon do inetd ouve
esta conexão e olha para o nome deste no arquivo de /etc/services.
E então chamada o programa definido no nome do arquivo
/etc/inetd.conf.
Alguns dos serviços que nós estamos criando normalmente
não são no arquivo /etc/services. Você pode
nomear alguns deles a qualquer porta que você quer.
Por exemplo, eu nomeei o telnet do administrador para porta(telnet-a)
24. Você poderia nomear isto para aportar 2323 se você
desejar. Para o administrador (VOCÊ) conectar diretamente
ao firewall você vai precisar que o telnet não acesse
24 nem 23 e se você configurar o seu arquivo netperm-table,
como eu fiz, você só será capaz de dentro
da sua network protegida.
telnet-a 24/tcp
ftp-gw 21/tcp # this named changed
auth 113/tcp ident # User Verification
ssl-gw 443/tcp
8. O Servidor de Proxy do SOCKS
8.1. Configurando um Servidor de Proxy
O servidor de proxy do SOCKS está disponível em
ftp://sunsite.unc.edu/pub/Linux/system/Network/misc/socks-linux-
src.tgz. Também há um exemplo de config dentro deste
diretório chamado de "socks-conf". Descompacte
e utilizar o tar no arquivo em um diretório do seu sistema,
e siga as instruções em como instalar. Eu tive alguns
problemas quando eu fiz isto. Tenha certeza que seu Makefiles
estão corretos.
Uma coisa importante para notar é que o servidor de proxy
precisa ser anexado no /etc/inetd.conf. Você tem que anexar
a seguinte linha:
socks stream tcp nowait nobody /usr/local/etc/sockd sockd
avisa ao servidor para roda-lo quando pedido.
8.2. Configurando o Servidor de Proxy
Os programas SOCKS precisam de dois arquivos de configuração
separados. Um conta o acesso permitido, e um dirigi os pedidos
apropriados para o servidor de proxy. O arquivo de acesso deve
ser colocado no servidor. O arquivo de roteamento deve ser colocado
em toda máquina Un*x. O DOS e, presumivelmente, computadores
Macintosh farão o seu próprio roteamento.
8.2.1. O Arquivo de Acesso
Com o socks4.2 Beta, o arquivo de acesso é chamado de
"sockd.conf". Deve conter 2 linhas, uma de permição(permit)
e um de linha de negação(deny). Cada linha terá
três entradas:
· O Identifier (permit/deny)
· O endereço do IP
· O modificador de endereço
O identifier é o que permite ou nega. Você deve
ter ambos um linha de permição e um de negação.
O endereço IP é formado de quatro byte de enreçamento
de IP típico de anotação. I.E. 192.168.2.0.
O modificador de endereço também é um IP
típico que envia quatro número de byte. Funciona
como um netmask. Verefique este número para ser 32 bits
(1s ou 0s). Se o bit é um 1, o bit correspondente do endereço
que isto está conferindo tem que emparelhar o bit correspondente
no campo do endereço IP. Por exemplo, se a linha é:
permit 192.168.2.23 255.255.255.255
permitirá que somente o endereço IP se emparelhar
com todo o bit em 192.168.2.23, isto é, somente 192.168.2.3.
A linha:
permit 192.168.2.0 255.255.255.0
permita que todo número dentro de grupo 192.168.2.0 até
192.168.2.255, a Classe C inteira do domínio. Você
não deve ter a seguinte linha:
permit 192.168.2.0 0.0.0.0
como isto permitirá todos os endereço, indiferentemente.
Assim, primeiro permite todo endereço que você quer
permitir, e então negue o resto. Permiti que todo mundo
no domínio 192.168.2.xxx, com a seguintes linhas:
permit 192.168.2.0 255.255.255.0 deny 0.0.0.0 0.0.0.0
configure corretamente. Note que o primeiro "0.0.0.0"
na linha de negação. Com um modificador de 0.0.0.0,
o IP se dirigem ao campo não se importando. Todos os 0's
é a norma porque é fácil de digitar.
Mais de uma entrada de cada é permitido.
Também podem ser concedidos a usuários específicos
ou podem ser negados acesso. Isto é via a autenticação
do ident. Nem todos os sistemas apóiam o ident e incluindo
o Trumpet Winsock, assim eu não irei mostra isto. A documentação
do socks é bastante adequado neste assunto.
8.2.2. O Arquivo de roteamento
O arquivo de rotemaneto no SOCKS é chamado probremente
de "socks.conf". Eu digo "chamado pobremente"
porque é parecido com o nome do arquivo de acesso isto
é fácil para obter duas confusões.
O arquivo de roteamento é chamado para os clientes do
SOCKS quando usa o socks e quando não. Por exemplo, em
nossa network, 192.168.2.3 não vai precisar usar o socks
para falar com 192.168.2.1, firewall. Tem uma conexão direta
por Ethernet. Define 127.0.0.1, o loopback, automaticamente. Claro
que você não precisa de SOCKS para acessar a você
mesmo.
Há três entradas:
· negação (deny)
· direct
· Sockd
Negue os acessos para o SOCKS quando rejeitar um pedido. Esta
entrada tem o mesmo três campos como em sockd.conf, identificador,
endereço e modificador.
Geralmente, desde que isto também seja para o sockd.conf,
o arquivo de acesso, o campo de modificador é fixado em
0.0.0.0. Se você quer impedir você pode chamar de
qualquer lugar, você pode fazer isto aqui.
A entrada direct conta quais são os endereços que
não usaram o socks. Estes são todos os endereços
que podem ser alcançados sem o servidor de proxy. Novamente
nós temos os três campos, identificador, endereço
e modificador. Nosso exemplo seria
direct 192.168.2.0 255.255.255.0
Indo direto assim a qualquer parte de nossa network protegida.
A entrada do sockd conta ao computador que o host tem o servidor
de daemon de socks. A sintaxe é:
sockd @=
Note a entrada @=. Isto permite lhe definir os endereços
de IP de um lista de servidores de proxy. Em nosso exemplo, nós
usamos somente um servidor de proxy. Mas, você pode ter
muitos para permitir uma maior carga e para a redundância
em caso de fracasso.
O endereço de IP e campos do modificador trabalham igual
como nos outros exemplos. Você tem que especificar quais
os endereços que vão poder acessar. 6.2.3. DNS por
detrás de um Firewall.
Configurar um Serviço de Nomes de Domínio por detrás
um firewall é um tarefa relativamente simples. Você
precisa montar o DNS somente na máquina com o firewall.
Então, definir cada máquina atrás do firewall
para usar este DNS.
8.3. Trabalhando Com um Servidor de Proxy
8.3.1. Unix
Para ter suas aplicações trabalhando com o servidor
de proxy, eles precisam ter o "sockified". Você
precisará de dois telnets diferente, um para acessar a
comunicação, e um para comunicação
pelo servidor de proxy. O SOCKS vem com instruções
de como definir um programa SOCKify, como também vários
programas de pre-SOCKified. Se você usa a versão
de SOCKified para acessar algum direct, o SOCKS trocarão
automaticamente um pelo outra versão para você. Por
causa disto, nós queremos mencionar novamente que todos
os programas em nossa network protegida é substituida com
os programas do SOCKified. "finger" se torna "finger.orig
, "telnet" se torna "telnet.orig", etc.
Você tem que dizer ao SOCKS sobre cada um destes no arquivo
de include/socks.h.
Certos programas acessarão o roteamento e o sockifying
nisto. O Netscape é um deles. Você pode usar um servidor
de proxy dentro do Netscape com entradas no endereço do
servidor (192.168.2.1 em nosso caso) nos campos de Socks dentro
do Proxy. Cada aplicação precisará de pelo
menos um pouco de arrumação embora de como acessar
um servidor de proxy.
8.3.2. MS Windows com o Trumpet Winsock
O Trumpet Winsock vem embutido com capacidades para oe servidor
de proxy. No menu de "setup", entre o endereço
IP do servidor, e os endereços de todo os computadores
que acessam diretamente. O Trumpet define todos os pacotes de
inicialização.
8.3.3. Acessando um Servidor para usar pacotes com UDP
O SOCKS trabalha somente com pacotes do TCP, e não UDP.
Isto faz com que prejudique em muitas utilizações.
Muitos programas úteis, como o talk, o Archie, use o UDP.
Há um pacote projetadou para ser usado com um servidor
proxy para pacotes de UDP chamado UDPrelay, por Tom Fitzgerald,
[email protected]. Infelizmente, na hora deste trabalho, ele ainda
não é compatível com o Linux.
8.4. Desvantagens com o Servidores de Proxy
O servidor de proxy é, acima de tudo, um dispositivo de
segurança. Usando para acessar a internet e aumentar os
endereços de IP limitados terá muitas desvantagens.
Um servidor de proxy permitirá maior acesso de dentro da
sua network protegida para o exterior, mas manterá o interior
completamente inacessesivel do exterior. Isto significa que nenhum
servidor, usará conexões de talk ou o archie, ou
acessar aos computadores interiores. Estas desvantagens poderiam
parecer leves, mas pensa do seguinte modo:
· Que você deixou um relatório que você
está fazendo em seu computador dentro de um network protegida
com firewall. Você está em casa, e decide que você
gostaria de revisar. Você não pode. Você não
pode alcançar o seu computador porque está atrás
de um firewall. Você tenta acessar no firewall primeiro,
mas então todo mundo tem o acesso do servidor de proxy,
e ninguém, montou uma conta para você.
· Que sua filha vai para faculdade. Você quer enviar
um email para ela. Você tem algumas coisas privadas para
falar, e teria seu mail enviado diretamente da sua máquina.
Você confia em no seu administrador de sistema completamente,
mas ainda, este é um mail privado.
· A inabilidade para usar pacotes de UDP representa uma
desvantagem grande com o servidores de proxy. Eu imagino outras
capacidades de UDP que estarão vindo brevemente.
O FTP causa outro problema com um servidor de proxy. Se você
usar um ls, o servidor de FTP abre uma cova na máquina
de cliente e envia a informação. Um servidor de
proxy não permiti isto, assim o FTP não trabalha
particularmente.
E, servidores de proxy rodam lentamente. Por causa do overhead,
quase todos os pedidos necessitam de acesso rapidamente.
Basicamente, se você tem um endereço IP, e você
não está preocupado com a segurança, não
use firewall e/ou servidores de proxy. Se você não
tem um endereço de IP, mas você também não
esta preocupado com a segurança, você também
pode querer olhar sobre emluador de IP, como o Term, Slirp ou
TIA. O Term está disponível no ftp://sunsite.unc.edu,
Slirp esta disponível em ftp://blitzen.canberra.edu.au/pub/slirp,
e TIA esta disponível em marketplace.com. Estes pacotes
rodam mais rapidos, permiti conexões melhores, e provê
um nível maior de acessos para dentro da network da internet.
Servidores de proxy são bons para cadeias que têm
muitos hosts que querem conectar a internet voando, com uma configuração
e pouco trabalho depois.
9. Configurações avançadas
Há uma configuração que eu gostaria de revisar
antes de acabar este documento. Eu há pouco esbocei suficientemente
provavelmente bastará para a maioria das pessoas. Porém,
eu penso que o próximo esboço mostrará uma
configuração mais avançada que pode clarear
algumas perguntas. Se você tiver perguntas além do
que eu há pouco cobri, ou há está interessado
na versatilidade de servidores de proxy e firewalls, prosseguida
lendo.
9.1. Uma grande network com ênfase na segurança
Por exemplo, digamos que você seja o líder de millisha
e você quer uma network local. Você tem 50 computadores
e um subnet de 32 (5 bits) numeros de IP.
E você precisa de vários níveis de acesso
dentro de sua network porque você diz para os seus seguidores
coisas diferentes. Então, você vai precisar proteger
certas partes da sua network do resto.
Os níveis são:
1. O nível externo. Este é o nível para
o que é mostrado para todo mundo. todo o mundo. Aqui é
aonde você divulga e delira para adquirir os novos voluntários.
2. Tropa. Este é o nível das pessoas além
do que adquiriram do nível externo. Aqui é onde
você os ensina sobre o governo demôniaco e como fazer
bombas.
3. Mercenário. Aqui é onde são mantidos
realmente os planos. Neste nível é armazenado toda
a informação em como o 3º governo mundial vai
assumir o mundo, seus planos envolvendo o Newt Gingrich, a Cidade
de Oklahoma, lown se preocupam produtos e que realmente é
armazenado e cabe nesta área 51.
9.1.1. A Configuração da Network
Os números de IP são organizados como:
· O número 1 é o 192.168.2.255 que é
o broadcast e não é utilizável.
· São alocados 23 dos 32 endereços de IP
para 23 máquinas que serão acessível a internet.
· 1 IP extra vai para uma linux naquela cadeia
· 1 extra vai para um linux diferente naquela cadeia.
· 2 IP #'s vão para o roteador
· 4 permanecem, menos os que são determinados domínio
nomeiados como paul, ringo, john, e george, só para confundir
as coisas um pouco.
· As networks protegidas têm os endereços
192.168.2.xxx
Então, são construídas duas networks separadas,
cada uma quartos diferentes. Elas são roteadas por Ethernet
de infra-vermelho de forma que são completamente invisíveis
para o quarto externo. Por sorte, o funcionamento de ethernet
de infra-vermelho há pouco funcionam como uma ethernet
normal.
Estas networks são cada conectados a um dos linux com
um endereço extra de IP. Há um servidor de arquivo
que conecta as duas networks protegidas. Isto porque os planos
por assumir o mundo envolvem algumas das Tropas mais altas. O
servidor de arquivo assegura o endereço 192.168.2.17 para
a Network da tropa e 192.168.2.23 para a network Mercenária.
Elas tem IP diferente que acessam porque tem que ter placas deEthernet
diferentes. O IP Forwarding está desligado.
IP Forwarding em ambas os Linux também estão desligados.
O roteador não vai por pacotes que destinaram para 192.168.2.xxx
a menos que explicitamente contasse para fazer isto, assim a internet
não podera entrar. A razão para IP Forwarding estar
desligado aqui é de forma que os pacotes da Network da
Tropa não podeça alcançar a network Mercenária,
e vica-versa.
O servidor de NFS também pode ser definido aqui para oferecer
arquivos diferentes para as networks diferentes. Isto pode ser
feito à mão, e um pouco de artifícios com
vínculos simbólicos pode fazer isto de forma que
os arquivos comuns pode ser compartilhados com todos. Usando esta
ligação e outra placa de ethernet podemos oferecer
um servidor de arquivos para todas as três networks.
9.1.2. A Configuração do Proxy
Agora, desde que todos os três níveis querem poder
monitorar a network para os próprios propósitos
desviados, toda as três necessitam ter acesso certo. A network
externa é conectada diretamente na internet, assim nós
não temo que fazer configuração dos servidores
de proxy aqui. A netowrks dos Mercenário e da Tropa estão
atrás de firewalls, assim é necessário montar
o servidor de proxy.
Ambas as cadeias serão muito semelhantemente na configuração.
Ambas têm o mesmo Endereços de IP nomeadas nelas.
Eu defini vários parâmetros, só fazer isto
mais interessante.
1. Ninguém pode usar o servidor de arquivo para acesso
a internet. Isto expõe o servidor de arquivo para vírus
e outras coisas sórdidas, e é bastante importante,
assim se for fora dos limites.
2. Nós não permitir-mos o acesso de tropa ao World
Wide Web. Eles estão em treinando, e este tipo de poder
de recuperação de informação poderia
danificar o aprendizado.
Assim, o arquivo do sockd.conf arquivam no linux da Tropa terá
esta linha:
deny 192.168.2.17 255.255.255.255
e na máquina Mercenária:
deny 192.168.2.23 255.255.255.255
E, no linux da Tropa terá esta linha
deny 0.0.0.0 0.0.0.0 eq 80
Isto diz para negar o acesso para todas as máquinas que
tentam acessar a porta igual (eq) a 80, a porta de http. Isto
ainda permitirá todos os outros serviços, só
neguando o acesso ao Web.
Então, ambos os arquivos terão:
permit 192.168.2.0 255.255.255.0
permiti que todos os computadores na network 192.168.2.xxx pode
usar o servidor de proxy com exceção desses que
já foram negados (ie. o servidor de arquivo e o acesso
a Web da network da Tropa).
O arquivo de sockd.conf da Tropa será assim:
deny 192.168.2.17 255.255.255.255
deny 0.0.0.0 0.0.0.0 eq 80
permit 192.168.2.0 255.255.255.0
e o arquivo do Mercenário será como:
deny 192.168.2.23 255.255.255.255
permit 192.168.2.0 255.255.255.0
Isto deve configurar tudo corretamente. Cada network está
isolada adequadamente, com a quantidade formal de interação.
Todo o mundo deve estar contente.
Agora, assuma o mundo!
Autor: Mark Grennan - ([email protected]); Traduzido por: Bruno
H. Collovini - ([email protected]
|