5. Instalación do Servidor Proxy
O servidor proxy require software adicional. Éste pódese
conseguir en:
ftp://metalab.unc.edu/pub/LiNUX/system/Network/misc/socks-Linux-src.tgz
Soamente hai un exemplo de ficheiro de configuración neste directorio,
chámase "socks-conf". Debemos descomprimir e desempaquetar
os ficheiros nun directorio do noso ordenador, e seguir as instruccións
de cómo compilalo. Eu tiven un par de problemas compilándoo.
Hai que asegurarse de que os Makefiles son correctos. Algúns sonos
e algúns non.
Algo importante que hai que advertir é que hai que engadir o
servidor proxy ao /etc/inetd.conf. Debese engadir a liña:
socks stream tcp nowait nobody /usr/local/etc/sockd sockd
para dicir a inetd que arranque o servidor cando se lle pida.
5.1 Configuración do Servidor Proxy
O programa socks precisa dous ficheiros de configuración
distintos. Un no que se lle di que accesos están permitidos, e outro
para dirixir as peticións ao servidor proxy axeitado. O ficheiro
de control de acceso debe residir no servidor. O ficheiro de rutado debe
residir en tódalas máquinas Únix. As máquinas
DOS e, presumiblemente, as Macintosh encamiñarán por sí
mesmas.
5.2 O Ficheiro de Control de Acceso
Con socks4.2 Beta, o ficheiro de acceso chamase "sockd.conf".
Debería conter dous tipos de liñas: as de permiso, que conteñen
"permit" e as de prohibición, que conteñen "deny".
Cada liña terá tres palabras:
-
O identificador (permit/deny)
-
A dirección IP
-
O modificador de dirección
O identificador é o permit (permitir) ou deny
(denegar). Debería de haber un de cada.
A dirección IP componse de catro octetos según a típica
notación de puntos: p.ex. 192.168.2.0 .
O modificador de dirección é tamén un número
de catro octetos. Funciona como unha máscara de rede. Hai que velo
coma 32 bits (uns ou ceros). Si o bit é uno, o bit correspondente
da dirección que se comprueba debe coincidir co bit correspondente
do campo de dirección IP.
Por exemplo, se a liña é:
permit 192.168.2.23 255.255.255.255
entón, admitirá só direccións IP nas que coincidan
tódolos bits de 193.168.2.23, isto é, só ela mesma.
A liña:
permit 192.168.2.0 255.255.255.0
admitirá tódalas direccións dende a 192.168.2.0 hata
a 192.168.2.255, a subrede de clase C completa. Non se debería ter
a liña:
permit 192.168.2.0 0.0.0.0
dado que permitiría calquer dirección.
Así que, primeiro, permitimos tódalas direccións
que queiramos permitir, e despois prohibimos o resto. Para permitir a calquera
do rango 192.168.2.xxx, as liñas:
permit 192.168.2.0 255.255.255.0
deny 0.0.0.0 0.0.0.0
funcionarán perfectamente. Observa os primeiros "0.0.0.0"
na liña de prohibición. Cun modificador de 0.0.0.0,
o campo da dirección IP non importa. Se normalmente pon todo ceros
porque é fácil de teclear.
Pódese poner máis dunha liña de cada clase.
Tamén se pode autorizar ou denegar o acceso a determinados usuarios.
Conséguese gracias á autentificación do protocolo
ident.
Non tódolos sistemas soportan ident (incluindo a Trumpet
Winsock) de modo que non profundizarei nisso. A documentación que
ven con socks trata este tema axeitadamente.
5.3 O Ficheiro de rutado
O ficheiro de rutado de socks ten o desafortunado nome de
"socks.conf".
E digo que é desafortunado porque parecese tanto ao do ficheiro
de control de acceso que é fácil confundilos.
O ficheiro de rutado ten a función de dicir aos clientes de socks
cándo usar socks e cándo non. Por exemplo, na nosa rede a
máquina 192.168.2.3 non precisa usar socks para comunicarse
ca 192.168.2.1 (o cortalumes), xa que ten unha conexión
directa vía Ethernet. A 127.0.0.1, dirección de
"volta atrás" (que representa a unha máquina ante ela mesma),
está definida automáticamente. Está claro que non
se precisa usar socks para falar con un mesmo.
Hai tres tipos de entradas:
deny (denegar) dille a socks que peticións debe rexeitar.
Esta entrada ten os mesmos tres campos que no sockd.conf, identificador,
dirección, o modificador. Xeralmente, dado que isto tamén
é manexado polo ficheiro de control de acceso sockd.conf,
o modificador ponse a 0.0.0.0 . Si un quere impedirse a si mesmo
conectar cun determinado sitio, pódese facer poñéndoo
aquí.
A entrada direct di para qué direccións non
se debe usar socks. Éstas son tódalas direccións
as que se pode chegar sen usar o servidor proxy. De novo hai tres campos:
identificador, dirección, e modificador. Noso exemplo tería:
direct 192.168.2.0 255.255.255.0
Co que iría directamente a calquer máquina da rede protexida.
A entrada sockd dí cál é a máquina
na que corre o servidor de socks. A sintaxis é:
sockd @=<lista de servidores> <direccion IP> <modificador>
Ollemos a entrada @=. Ésta permite poñer as direccións
IP dunha lista de servidores proxy. No noso exemplo só usamos un
servidor proxy, mais puedese ter moitos para admitir unha carga maior e
conseguir redundancia frente ao erros.
A dirección IP e o modificador funcionan coma nos outros exemplos.
Especifican a qué direccións se vai o traveso dos servidores.
5.4 O Servicio de Nomes tras o Cortalumes
Instalar un Servicio de Nomes detrás dun cortalumes é relativamente
sinxelo. Non hai máis que instalar o servidor de DNS na máquina
que fai de cortalumes. Logo faise que tódalas máquinas tras
o cortalumes usen este servidor de DNS.
5.5 Traballar cun Servidor Proxy
UnixPara que as aplicacións funcionen co servidor proxy, hai que"sockificalas".
Será preciso ter dous telnets distintos, un para a comunicación
directa, e un para a comunicación o traveso do servidor proxy. Socks
ven con instruccións de como sockificar un programa, así
coma cun par de programas xa sockificados. Se se usa a versíon sockificada
para conectar con algún sitio ao que se ten acceso directo, socks
cambiará automáticamente a versión para acceso directo
(a normal). Por ista razón deberemos trocar o nombre a tódolos
programas da rede protexida e sustituirlos polos sockificados. Así
"finger" pasará a ser "finger.orig", "telnet"
a "telnet.orig", etc... . Débese dar coñecer a socks
todo isto no ficheiro
include/socks.h . Algúns programas
xestionan o rutado e o sockificado eles mesmos. Éste é o
caso de Netscape. Podese usar un servidor proxy con Netscape
simplemente poñendo a dirección do servidor (192.168.2.1
no noso caso) no campo SOCKs do menú Proxys. Tódalas
aplicacións precisarán algún retoque independentemente
de cómo manexen a existencia de servidores proxy.
MS Güindous co Trumpet Winsock
O Trumpet Winsock leva incorporada a xestión de servidores proxy.
No menú "setup" debese poner a dirección IP
do servidor e as direccións de tódolos ordenadores aos que
se chega directamente. Él encargarase a partir de entón de
tódolos paquetes de saída.
5.6 Cómo conseguir que o Servidor Proxy funcione
con UDP
O paquete socks só funciona con TCP, non con UDP.
Esto quítalle un poco de utilidade. Moitos programas interesantes,
(como talk ou archie) usan UDP. Existe un paquete diseñado
para funcionar como un servidor proxy para paquetes de UDP que se chama
UDPrelay. O autor é Tom Fitzgerald fitz@wang.com.
Desgraciadamente, no momento de escribir estas liñas, non é
compatible con LiNUX.
5.7 Inconvintes dos Servidores Proxy
Un servidor proxy é ante todo un dispositivo de seguridade.
Usalo para aumentar o número de máquinas con acceso a Internet
cando se ten poucas direccións IP ten moitos inconvientes. Un servidor
proxy permite un maior acceso dede dentro da rede protexida ao exterior,
pero mantén o interior completamente inaccesible dende o exterior.
Isto significa que non haberá conexións archie,
nin talk, nin envío directo de correo aos ordenadores de
dentro. Estes inconvintes poden parecer pequenos, pero consideremo-los
siguientes casos:
-
Deixacheste un informe que estás a facer no teu ordenador que está
dentro da rede protexida polo cortalumes. Estás na casa
e decides cambiar algo. Non podes. Non podes chegar ao teu ordenador dado
que está tras o cortalumes. Intentas entrar no cortalumes
primero, mais como todo o mundo ten acceso ao exterior gracias ao servidor
proxy, non che abriron conta nel.
-
A túa filla vai á universidade. Queres enviarlle correo.
Tes algunhas cousas privadas que comentar con ela, polo que preferirías
que o correo chegara directamente á tua máquina. Confías
plenamente no administrador do teu sistema, mais, ainda así, é
correo privado.
-
A incapacidade de manexar paquetes UDP é un gran inconvinte dos
servidores proxy. Imaxino que non por moito tempo.
O FTP crea outro problema cos servidores proxy. Cando se fai un
ls,
ou un get, o servidor de FTP establece unha conexión coa
máquina cliente e manda a información por ela. Un servidor
proxy non o permitirá, así que o FTP non funciona especialmente
ben.
Ademáis, un servidor proxy é lento. Debido a grande sobrecarga,
casi calquer outro medio de lograr acceso será máis rápido.
Resumindo, si tes suficientes direccións IP e non che preocupa
a seguridad, non uses cortalumes nin servidores proxy. Se non tes suficientes
direccións IP, pero tampoco che preocupa a seguridade, seguramente
deberías considera-los "emuladores de IP" coma Term, Slirp, ou TIA.
Term pódese conseguir en ftp://metalab.unc.edu,
Slirp en ftp://blitzen.canberra.edu.au/pub/slirp,
e TIA en
ftp://marketplace.com.
Van máis rápido, permiten mellores conexións, e
proven un maior nivel de acceso a rede interior dende a Internet. Os servidores
proxy están ben para as redes que teñen moitos ordenadores
que queren conectar coa Internet ao vo, e nas que se quere pouco
traballo de mantemento tras a instalación.