1 |
yoswink 07/11/02 14:51:05 |
2 |
|
3 |
Added: dynamic-iptables-firewalls.xml |
4 |
Log: |
5 |
New translation about iptables |
6 |
|
7 |
Revision Changes Path |
8 |
1.1 xml/htdocs/doc/es/articles/dynamic-iptables-firewalls.xml |
9 |
|
10 |
file : http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/es/articles/dynamic-iptables-firewalls.xml?rev=1.1&view=markup |
11 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo/xml/htdocs/doc/es/articles/dynamic-iptables-firewalls.xml?rev=1.1&content-type=text/plain |
12 |
|
13 |
Index: dynamic-iptables-firewalls.xml |
14 |
=================================================================== |
15 |
<?xml version='1.0' encoding="UTF-8"?> |
16 |
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/es/articles/dynamic-iptables-firewalls.xml,v 1.1 2007/11/02 14:51:05 yoswink Exp $ --> |
17 |
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> |
18 |
|
19 |
<guide link="/doc/es/articles/dynamic-iptables-firewalls.xml" disclaimer="articles" lang="es"> |
20 |
<title>Cortafuegos dinámicos iptables</title> |
21 |
|
22 |
<author title="Autor"> |
23 |
<mail link="drobbins@g.o">Daniel Robbins</mail> |
24 |
</author> |
25 |
<author title="Traductor"> |
26 |
<mail link="LinuxBlues@×××××××××.org">LinuxBlues</mail> |
27 |
</author> |
28 |
|
29 |
<abstract> |
30 |
Los cortafuegos son buenos y divertidos, pero ¿qué podemos hacer cuando se |
31 |
necesitan cambios rápidos y complejos en las reglas de nuestro cortafuegos? |
32 |
Fácil, usar las macros de Daniel Robbins para crear cortafuegos dinámicos que |
33 |
se muestran en este artículo. Se pueden usar dichas macros para incrementar la |
34 |
seguridad y el rendimiento de nuestro tráfico de red y para inspirar nuestros |
35 |
propios diseños creativos. |
36 |
</abstract> |
37 |
|
38 |
<!-- The original version of this article was published on IBM developerWorks, |
39 |
and is property of Westtech Information Services. This document is an updated |
40 |
version of the original article, and contains various improvements made by the |
41 |
Gentoo Linux Documentation team --> |
42 |
|
43 |
<version>1.3</version> |
44 |
<date>2005-10-09</date> |
45 |
|
46 |
<chapter> |
47 |
<title>Introducción</title> |
48 |
<section> |
49 |
<title>Seguridad de red flexible (y divertida)</title> |
50 |
<body> |
51 |
|
52 |
<p> |
53 |
La mejor forma de ver los beneficios de las macros de cortafuegos dinámicos es |
54 |
verlas en acción. Para lograr esto, imaginemos que soy el administrador de un |
55 |
proveedor de servicios de internet (ISP) y que he configurado un cortafuegos |
56 |
Linux para proteger a mis clientes y a los sistemas internos de usuarios |
57 |
maliciosos en internet. Para lograrlo, mi cortafuegos utiliza la completa |
58 |
funcionalidad de iptables en el núcleo 2.4 para permitir que las conexiones de |
59 |
salida sean establecidas por mis clientes y servidores y, por supuesto, para |
60 |
permitir conexiones entrantes, pero sólo para los servicios "públicos", como |
61 |
web, ftp, ssh y SMTP. Dado que he usado un diseño de denegación por defecto, |
62 |
cualquier conexión de internet a cualquier servicio que no sea público, como la |
63 |
caché de proxy de squid o el servidor Samba, serán automáticamente rechazadas. |
64 |
De hecho, tengo un cortafuegos muy decente que ofrece un buen nivel de |
65 |
protección para cualquiera de nuestros clientes en la ISP. |
66 |
</p> |
67 |
|
68 |
<p> |
69 |
Durante la primera semana o así, el cortafuegos funciona estupendamente, pero |
70 |
entonces algo malo ocurre: Roberto, alguien que trabaja en un ISP de la |
71 |
competencia, decide inundar mi red con paquetes en un intento por denegar el |
72 |
servicio a mis clientes. Lamentablemente, Roberto ha estudiado cuidadosamente |
73 |
mi cortafuegos y sabe que mientras que estoy protegiendo muchos servicios |
74 |
internos, los puertos 25 y 80 deben estar públicamente accesibles, por lo que |
75 |
puedo recibir correo y servir solicitudes HTTP. Roberto decide aprovecharse de |
76 |
ello lanzando un ataque que consuma la mayor parte del ancho de banda contra mi |
77 |
servidor web y de correo. |
78 |
</p> |
79 |
|
80 |
<p> |
81 |
En aproximadamente un minuto o así Roberto comienza su ataque, noto que la |
82 |
conexión al satélite comienza a verse saturada con paquetes. Después de echar |
83 |
un vistazo a la situación con <c>tcpdump</c> determino que este es otro ataque |
84 |
de Roberto, y averiguo las direcciones IP que está usando para ello. Ahora que |
85 |
dispongo de esta información, lo único que necesito hacer es bloquear estas |
86 |
direcciones IP, con ello se resolverá el problema -- una solución bastante |
87 |
sencilla, según creo. |
88 |
</p> |
89 |
|
90 |
</body> |
91 |
</section> |
92 |
|
93 |
<section> |
94 |
<title>Responder a un ataque</title> |
95 |
<body> |
96 |
|
97 |
<p> |
98 |
Cargo inmediatamente la macro con la configuración de mi cortafuegos en vi y |
99 |
comienzo a buscar una solución en mis reglas iptables, modificando mi |
100 |
cortafuegos para que bloquee los paquetes entrantes que manda Roberto. Después |
101 |
de un minuto o así, encuentro el lugar exacto para hacer la modificación |
102 |
adecuada en la regla DROP y la añado. Entonces reinicio el cortafuegos, pero |
103 |
cometí un pequeño error al crear las reglas. Cargo las macros del cortafuegos |
104 |
de nuevo, resuelvo el problema y treinta segundos después el cortafuegos está |
105 |
listo para bloquear el ataque del mes de Roberto. Al principio parece que he |
106 |
frustrado el ataque... Hasta que los teléfonos de la compañía comienzan a |
107 |
sonar. Aparentemente, Roberto ha sido capaz de inhabilitar mi red durante 10 |
108 |
minutos y ahora los clientes llaman para saber qué es lo que ha sucedido. Aún |
109 |
peor, después de unos minutos noto que la conexión al satélite vuelve a estar |
110 |
saturada de nuevo. Parece que Roberto está usando un nuevo conjunto de |
111 |
direcciones IP para sus ataques. En respuesta, comienzo a revisar las macros |
112 |
del cortafuegos, excepto que en esta ocasión estoy un poco asustado -- después |
113 |
de todo, puede que mi solución no sea tan buena. |
114 |
</p> |
115 |
|
116 |
<p> |
117 |
Esto es lo que fue mal en la sitación anterior. A pesar de que tengo un |
118 |
cortafuegos decente en el lugar y de que identifiqué rápidamente la causa del |
119 |
problema en la red, no fui capaz de modificar el funcionamiento de mi |
120 |
cortafuegos para responder al problema a tiempo. Por supuesto, cuando atacan |
121 |
nuestra red, querríamos responder inmediatamente y vernos forzados a alterar la |
122 |
configuración del archivo de comandos de nuestro cortafuegos atemorizados, no |
123 |
sólo incrementará nuestro estrés, sino que además será muy poco eficaz. |
124 |
</p> |
125 |
|
126 |
</body> |
127 |
</section> |
128 |
</chapter> |
129 |
|
130 |
<chapter> |
131 |
<title>Macros</title> |
132 |
<section> |
133 |
<title>ipdrop</title> |
134 |
<body> |
135 |
|
136 |
<p> |
137 |
Sería mucho mejor si tuviera una macro especial <c>ipdrop</c> que está diseñada |
138 |
con el propósito específico de insertar las reglas necesarias para bloquear las |
139 |
direcciones IP que se le especifiquen. Con dicha macro, bloquear con un |
140 |
cortafuegos no volverá a requerir dos minutos; le tomará cinco segundos como |
141 |
mucho. Dado que la macro me evita la tarea de editar las reglas del cortafuegos |
142 |
a mano, elimina la mayor fuente de problemas. Todo lo que me queda por hacer es |
143 |
determinar la dirección IP que debería bloquear y teclear después: |
144 |
</p> |
145 |
|
146 |
<pre caption="Ignorar una IP"> |
147 |
# <i>ipdrop 129.24.8.1 on</i> |
148 |
IP 129.24.8.1 drop on. |
149 |
</pre> |
150 |
|
151 |
<p> |
152 |
La macro ipdrop bloqueará inmediatamente 129.24.8.1, la dirección IP mala de |
153 |
Roberto por esta semana. Esta macro mejora nuestras defensas sustancialmente, |
154 |
dado que bloquear ahora una IP ni tan siquiera requiere pensar. Veamos ahora la |
155 |
implementación de mi macro ipdrop: |
156 |
</p> |
157 |
|
158 |
<pre caption="macro ipdrop"> |
159 |
#!/bin/bash |
160 |
|
161 |
source /usr/local/share/.sh |
162 |
|
163 |
args 2 $# "${0} IPADDR {on/off}" |
164 |
|
165 |
<comment># Drops packets to/from IPADDR. Good for obnoxious |
166 |
networks/hosts/DoS"</comment> |
167 |
|
168 |
if [ "$2" == "on" ] |
169 |
then |
170 |
<comment># Rules will be appended or inserted as normal</comment> |
171 |
APPEND="-A" |
172 |
INSERT="-I" |
173 |
rec_check ipdrop $1 "$1 already blocked" on |
174 |
record ipdrop $1 |
175 |
elif [ "$2" == "off" ] |
176 |
then |
177 |
<comment># Rules will be deleted instead</comment> |
178 |
APPEND="-D" |
179 |
INSERT="-D" |
180 |
rec_check ipdrop $1 "$1 not currently blocked" off |
181 |
unrecord ipdrop $1 |
182 |
else |
183 |
echo "Error: \"off\" or \"on\" expected as second argument" |
184 |
exit 1 |
185 |
fi |
186 |
|
187 |
<comment># Block outside IP address that's causing problems</comment> |
188 |
<comment># Attacker's incoming TCP connections will take a minute or so to time |
189 |
out, reducing DoS effectiveness</comment> |
190 |
|
191 |
iptables $INSERT INPUT -s $1 -j DROP |
192 |
iptables $INSERT OUTPUT -d $1 -j DROP |
193 |
iptables $INSERT FORWARD -d $1 -j DROP |
194 |
iptables $INSERT FORWARD -s $1 -j DROP |
195 |
|
196 |
echo "IP ${1} drop ${2}." |
197 |
</pre> |
198 |
|
199 |
</body> |
200 |
</section> |
201 |
|
202 |
<section> |
203 |
<title>ipdrop: explicación</title> |
204 |
<body> |
205 |
|
206 |
<p> |
207 |
Si echamos un vistazo a las cuatro últimas líneas resaltadas, veremos los |
208 |
comandos que insertan las reglas apropiadas en las tablas del cortafuegos. Como |
209 |
puede verse la definición de la variable de entorno $INSERT varía, dependiendo |
210 |
de si lo ejecutamos en el modo "on" u "off". Cuando se ejecuten las líneas de |
211 |
iptables, las reglas correspondientes se insertarán o se eliminarán |
212 |
adecuadamente. |
213 |
</p> |
214 |
|
215 |
<p> |
216 |
Ahora, veamos la función de las reglas, que deberían funcionar a la perfección |
217 |
con cualquier tipo de cortafuegos, e incluso en un sistema sin cortafuegos; |
218 |
todo lo que se necesita es el soporte iptables integrado en nuestro núcleo 2.4. |
219 |
Bloqueamos los paquetes entrantes desde la dirección IP que causa los problemas |
220 |
(la primera línea iptables), bloqueamos los paquetes salientes a dicha |
221 |
dirección IP (la siguiente línea iptables) y después evitamos las redirecciones |
222 |
en cada dirección para dicha IP (las últimas dos líneas iptables). Una vez se |
223 |
apliquen dichas reglas, nuestro sistema descartará cualquier paquete |
224 |
proveniente que caiga en una de esas categorías. |
225 |
</p> |
226 |
|
227 |
<p> |
228 |
Otro apunte rápido: hacemos llamadas a "rec_check", "unrecord", "record", y |
229 |
"args". Son funciones de ayuda especiales en bash definidas en <path>dynfw.sh |
230 |
</path>. La función "record" graba la ip bloqueada en el archivo |
231 |
<path>/root/.dynfw-ipdrop</path>, mientras que "unrecord" lo elimina de |
232 |
<path>/root/.dynfw-ipdrop</path>. La función "rec_check" se usa para abortar la |
233 |
macro con un mensaje de error si se intenta bloquear de nuevo una dirección IP |
234 |
ya bloqueada, o quitar el bloqueo a una dirección IP que no está bloqueada. La |
235 |
función "args" se asegura de que recibimos la cifra correcta de argumentos y |
236 |
también muestra una información de gran ayuda. He creado el archivo |
237 |
<uri |
238 |
link="http://www-128.ibm.com/developerworks/library/l-fw/dynfw-1.0.tar.gz"> |
239 |
dynfw-1.0.tar.gz</uri> que contiene todas estas herramientas; ver la sección de |
240 |
<uri link="#recursos">Recursos</uri> al final de este artículo para obtener más |
241 |
información. |
242 |
</p> |
243 |
|
244 |
</body> |
245 |
</section> |
246 |
|
247 |
<section> |
248 |
<title>tcplimit</title> |
249 |
<body> |
250 |
|
251 |
<p> |
252 |
La siguiente macro de cortafuegos dinámica es útil si se necesita limitar el |
253 |
uso de un servicio de red basado en TCP, algo que posiblemente sobrecargue la |
254 |
CPU en el servidor. Se llama "tcplimit", esta macro coge un puerto TCP, una |
255 |
tasa, una escala y "on" u "off" como argumento: |
256 |
</p> |
257 |
|
258 |
<pre caption="Limitar el uso de un servicio particular basado en TCP"> |
259 |
# <i>tcplimit 873 5 minute on</i> |
260 |
Port 873 new connection limit (5/minute, burst=5) on. |
261 |
</pre> |
262 |
|
263 |
<p> |
264 |
<c>tcplimit</c> usa el nuevo módulo de iptables "state" (hay que asegurarse de |
265 |
haberlo habilitado en el núcleo o de haber cargado el módulo) para permitir |
266 |
sólo un cierto número de conexiones entrantes en un determinado periodo de |
267 |
tiempo. En este ejemplo, el cortafuegos únicamente permitirá cinco conexiones |
268 |
por minuto a mi servidor rsync (puerto 873) -- y es posible especificar el |
269 |
número de conexiones que se deseen por segundo/minuto/hora o día, tal y como se |
270 |
necesite. |
271 |
</p> |
272 |
|
273 |
<p> |
274 |
<c>tcplimit</c> ofrece una buena forma de limitar servicios que no sean |
275 |
esenciales -- para que la inundación de tráfico en un servicio no esencial no |
276 |
estropee nuestra red o el servidor. En mi caso, uso <c>tcplimit</c> para |
277 |
establecer el límite superior de uso de rsync para prevenir que mi línea DSL se |
278 |
vea saturada por excesivas conexiones rsync. Los servicios cuya conexión se ha |
279 |
visto limitada se almacenan en <path>/root/.dynfw-tcplimit</path> y si alguna |
280 |
vez quiero inhabilitar el nuevo límite de conexiones, sencillamente puedo |
281 |
teclear: |
282 |
</p> |
283 |
|
284 |
<pre caption="Inhabilitar la limitación de conexiones"> |
285 |
# <i>tcplimit 873 5 minute off</i> |
286 |
Port 873 new connection limit off. |
287 |
</pre> |
288 |
|
289 |
<p> |
290 |
<c>tcplimit</c> funciona creando una cadena completamente nueva en la tabla |
291 |
"filter". Esta nueva cadena rechazará todos los paquetes que excedan el límite |
292 |
especificado. Entonces, se inserta una única regla en la cadena de entrada |
293 |
(INPUT) que redirige todos los paquetes de conexión nuevos (NEW) dirigidos al |
294 |
puerto de destino (873 en este caso) a esta cadena especial, limitando |
295 |
efectivamente las nuevas conexiones de entrada, sin afectar a los paquetes que |
296 |
forman parte de una conexión ya establecida. |
297 |
</p> |
298 |
|
299 |
<p> |
300 |
Cuando <c>tcplimit</c> deja de funcionar, la regla INPUT y la cadena especial |
301 |
son eliminadas. Este es el tipo de cosas que realmente hacen considerar la |
302 |
importancia de tener una macro que maneje, después de haberla comprobado |
303 |
concienzudamente, las reglas de nuestro cortafuegos por nosotros. Así como con |
304 |
<c>ipblock</c>, la macro <c>tcplimit</c> debe ser compatible con cualquier tipo |
305 |
de cortafuegos, e incluso con ningún cortafuegos, siempre que se tenga la |
306 |
funcionalidad necesaria de iptables habiltada en el núcleo. |
307 |
</p> |
308 |
|
309 |
</body> |
310 |
</section> |
311 |
|
312 |
<section> |
313 |
<title>host-tcplimit</title> |
314 |
<body> |
315 |
|
316 |
<p> |
317 |
<c>host-tcplimit</c> es muy parecido a <c>tcplimit</c>, pero limita las nuevas |
318 |
conexiones IP provenientes de una dirección IP concreta dirigidas a un puerto |
319 |
TCP en concreto de nuestro servidor. <c>host-tcplimit</c> es muy útil para |
320 |
limitar el abuso de una única persona de los recursos de nuestra red. Por |
321 |
ejemplo, digamos que tenemos un servidor CVS y descubrimos que un nuevo |
322 |
desarrollador parece estar usando una macro que actualiza su código fuente con |
323 |
respecto al repositorio cada 10 minutos, usando una gran cantidad de recursos |
324 |
de la red innecesariamente a lo largo del día. De todas formas, mientras |
325 |
intentamos redactar un mensaje explicándole lo erróneo de su forma de proceder, |
326 |
recibimos el siguiente mensaje: |
327 |
</p> |
328 |
|
329 |
<pre caption="Mensaje recibido"> |
330 |
¡Hola chicos! |
331 |
|
332 |
Me alegra formar parte de vuestro proyecto en desarrollo. He configurado una |
333 |
macro para que actualice mi copia local del código cada diez minutos. Voy a |
334 |
estar fuera durante dos semanas porque me marcho de viaje, pero cuando vuelva |
335 |
tendré todo el código fuente actualizado y ¡estaré listo para ayudar! Salgo por |
336 |
la puerta en este preciso instante... ¡Nos vemos en dos semanas! |
337 |
|
338 |
|
339 |
Sinceramente, |
340 |
|
341 |
Sr. Novato |
342 |
</pre> |
343 |
|
344 |
<p> |
345 |
En dichas situaciones, un sencillo comando <c>host-tcplimit</c> resolverá el |
346 |
problema: |
347 |
</p> |
348 |
|
349 |
<pre caption="Comando host-tcplimit"> |
350 |
# <i>host-tcplimit 1.1.1.1 2401 1 day on</i> |
351 |
</pre> |
352 |
|
353 |
<p> |
354 |
Ahora, el Sr. Novato (dirección IP 1.1.1.1) ha sido limitado a una conexión CVS |
355 |
por día (puerto 2401), evitando el desperdicio de un gran ancho de banda en la |
356 |
red. |
357 |
</p> |
358 |
|
359 |
</body> |
360 |
</section> |
361 |
|
362 |
<section> |
363 |
<title>user-outblock</title> |
364 |
<body> |
365 |
|
366 |
<p> |
367 |
La última y posiblemente la más intrigante de todas mis macros de cortafuegos |
368 |
dinámicas es <c>user-outblock</c>. Esta macro proporciona una forma ideal de |
369 |
permitir a un usuario en particular hacer telnet o ssh en nuestro sistema, pero |
370 |
sin permitir a este usuario realizar ninguna nueva conexión saliente desde la |
371 |
línea de comandos. He aquí una situación en la que <c>user-outblock</c> |
372 |
resultaría muy práctico. Digamos que una familia en concreto tiene una cuenta |
373 |
en mi ISP. Mamá y papá usan un cliente gráfico de correo electrónico para leer |
374 |
su correo y para navegar por la red de vez en cuando, pero su hijo aspira a ser |
375 |
un genio de la informática, y usa generalmente su accesso al intérprete de |
376 |
comandos para hacer cosas malas en las computadoras de otras personas. |
377 |
</p> |
378 |
|
379 |
<p> |
380 |
Un día, nos topamos con que ha establecido conexiones ssh con varios sistemas |
381 |
que aparentemente pertenecen al ejército pakistaní -- oh. Nos gustaría emplear |
382 |
a este joven en actividades más benéficas, por lo que hacemos lo siguiente: |
383 |
</p> |
384 |
|
385 |
<p> |
386 |
Primero, hacemos una revisión de nuestro sistema y nos aseguramos de quitar el |
387 |
bit suid de todos los binarios de red, como ssh: |
388 |
</p> |
389 |
|
390 |
<pre caption="Eliminar el bit suid de todos los binarios de red"> |
391 |
# <i>chmod u-s /usr/bin/ssh</i> |
392 |
</pre> |
393 |
|
394 |
<p> |
395 |
Ahora, todos los procesos que intente usar para interactuar con la red tendrán |
396 |
como propietario su UID. Ahora podremos usar user-outblock para bloquear todo |
397 |
el tráfico de salida TCP iniciado por dicho UID (que además es el 2049): |
398 |
</p> |
399 |
|
400 |
<pre caption="Bloquear todas las conexiones de salida TCP de un UID"> |
401 |
# <i>user-outblock 2049 on</i> |
402 |
UID 2049 block on. |
403 |
</pre> |
404 |
|
405 |
<p> |
406 |
Ahora, puede ingresar y leer su correo, pero no podrá usar nuestro servidor |
407 |
para establecer conexiones ssh ni cosas similares. Ahora podría instalar un |
408 |
cliente ssh en su PC doméstico. De todos modos, no sería demasiado complicado |
409 |
elaborar otra macro de cortafuegos dinámico que limitase su PC doméstico a la |
410 |
web, correo y las conexiones salientes ssh (en nuestro servidor únicamente). |
411 |
</p> |
412 |
|
413 |
</body> |
414 |
</section> |
415 |
</chapter> |
416 |
|
417 |
<chapter id="recursos"> |
418 |
<title>Recursos</title> |
419 |
<section> |
420 |
<title>Tarballs</title> |
421 |
<body> |
422 |
|
423 |
<p> |
424 |
Dado que he encontrado estas macros dinámicas de cortafuegos muy útiles, las he |
425 |
incluido todas en un pequeño tarball (<uri |
426 |
link="/doc/en/articles/files/dynfw-1.0.1.tar.bz2">dynfw-1.0.1.tar.bz2</uri>) |
427 |
que se puede descargar e instalar en nuestra máquina. |
428 |
</p> |
429 |
|
430 |
<p> |
431 |
Para instalarlas, extraemos el tarball y ejecutamos la macro que se incluye |
432 |
<c>install.sh</c>. Esta macro instalará una macro compartida bash en <path> |
433 |
/usr/local/share/dynfw.sh</path>, e instalará todas las macros dinámicas del |
434 |
cortafuegos en <path>/usr/local/sbin</path>. Si se desea tenerlos en <path> |
435 |
/usr/share</path> y <path>/usr/sbin</path> en su lugar, sencillamente tecleamos |
436 |
esto antes de ejecutar <c>install.sh</c>: |
437 |
</p> |
438 |
|
439 |
<pre caption="Exportar la localización del directorio de instalación"> |
440 |
# <i>export PREFIX=/usr</i> |
441 |
</pre> |
442 |
|
443 |
<p> |
444 |
He añadido también la página en Gentoo Linux <uri link="/proj/en/dynfw.xml"> |
445 |
macros dinámicas de cortafuegos</uri> (en inglés) que se puede visitar para |
446 |
obtener la última versión del tarball. Me gustaría continuar mejorando y |
447 |
añadiendo nuevas cosas a la colección, alcanzando la meta de hacer realidad un |
448 |
recurso verdaderamente útil para todos los administradores de sistemas a lo |
449 |
largo del mundo. Ahora que disponemos de iptables en el núcleo es el momento de |
450 |
sacarle partido. |
451 |
</p> |
452 |
|
453 |
<p> |
454 |
Si todo este material acerca del cortafuegos iptables es nuevo para nosotros, |
455 |
recomiendo encarecidamente el |
456 |
<uri link="http://www-128.ibm.com/developerworks/edu/l-dw-linuxfw-i.html">2.4 |
457 |
stateful firewall tutorial</uri> (es necesario registrarse), que contiene |
458 |
instrucciones completas acerca de cómo elaborar nuestro cortafuegos con |
459 |
seguimiento de estado basado en iptables. |
460 |
</p> |
461 |
|
462 |
<p> |
463 |
<uri link="http://www.tcpdump.org/">tcpdump</uri> es una herramienta esencial |
464 |
de bajo nivel para explorar los intercambios de paquetes y para verificar que |
465 |
nuestro cortafuegos está funcionando correctamente. Si no disponemos de la |
466 |
misma, hay que obtenerla. Si disponemos de la misma, hemos de empezar a usarla. |
467 |
Si ya se está usando, ¡excelente! :) |
468 |
</p> |
469 |
|
470 |
<p> |
471 |
Visitar la <uri link="http://netfilter.samba.org">página del equipo netfilter |
472 |
</uri> para encontrar muchos recursos excelentes, incluyendo el código fuente |
473 |
de iptables, |
474 |
y las excelentes <uri |
475 |
link="http://netfilter.samba.org/unreliable-guides/index.html">guías no fiables |
476 |
de Rusty</uri> (traducidas al español siguiendo el enlace). Incluyen una guía |
477 |
de conceptos básicos de red, una de filtrado de paquetes, una acerca de NAT y |
478 |
el netfilter hacking HOWTO (no dispone de traducción al español) para los |
479 |
desarrolladores. También hay un <uri |
480 |
link="http://netfilter.org/documentation/index.html#documentation-faq">PUF |
481 |
netfilter</uri> disponible, así como algunas otras cosas. |
482 |
</p> |
483 |
|
484 |
<p> |
485 |
Afortunadamente, hay muchos recursos de netfilter en línea; pero, de todos |
486 |
modos, no hay que olvidar los más básicos. La página del manual de iptables |
487 |
es muy detallada y es un ejemplo brillante de lo que cualquier página de manual |
488 |
debería ser. |
489 |
</p> |
490 |
|
491 |
<p> |
492 |
Tenemos el <uri link="http://www.ds9a.nl/2.4Routing/">Advanced Linux Routing |
493 |
and Traffic Control HOWTO</uri>. Disponible en español en formato PDF |
494 |
<uri link="http://www.gulic.org/comos/LARTC">Enrutamiento avanzado y control de |
495 |
tráfico en Linux</uri>, que dispone de una sección que muestra cómo usar |
496 |
iptables para marcar paquetes, para después usar la funcionalidad de Linux para |
497 |
encaminar dichos paquetes basándose en estas marcas. |
498 |
</p> |
499 |
|
500 |
<p> |
501 |
Hay una <uri link="http://netfilter.org/mailinglists.html#ml-user">lista de |
502 |
correo netfilter (iptables)</uri> disponible, así como una para los |
503 |
<uri link="http://netfilter.org/mailinglists.html#ml-devel">desarrolladores |
504 |
netfilter</uri>. Se puede acceder a sus archivos en esos mismos enlaces. |
505 |
</p> |
506 |
|
507 |
</body> |
508 |
</section> |
509 |
</chapter> |
510 |
</guide> |
511 |
|
512 |
|
513 |
|
514 |
-- |
515 |
gentoo-commits@g.o mailing list |