<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Selkfoster firewall - Revision history</title>
		<link>https://www.slackwiki.com/index.php?title=Selkfoster_firewall&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.40.0</generator>
		<lastBuildDate>Wed, 08 Apr 2026 16:08:26 GMT</lastBuildDate>
		<item>
			<title>Erik: Copy from old</title>
			<link>https://www.slackwiki.com/index.php?title=Selkfoster_firewall&amp;diff=178&amp;oldid=prev</link>
			<guid isPermaLink="false">https://www.slackwiki.com/index.php?title=Selkfoster_firewall&amp;diff=178&amp;oldid=prev</guid>
			<description>&lt;p&gt;Copy from old&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== rc.fireball ===&lt;br /&gt;
is a simple and powerful firewall script for a Home PC.&lt;br /&gt;
The most recent version of this script can be found here: http://selkfoster.com.ar/scripts/rc.fireball.gz&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# Start/stop/restart/status&lt;br /&gt;
#&lt;br /&gt;
# Versión: 0.3	Mié Ago 30 16:42:25 ART 2006&lt;br /&gt;
#&lt;br /&gt;
# Escrito por Matías A. Fonzo &amp;lt;selkfoster@gmail.com&amp;gt;, &amp;lt;http://selkfoster.com.ar&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
IPT=/usr/sbin/iptables&lt;br /&gt;
&lt;br /&gt;
fireball_start() {&lt;br /&gt;
  # INTERFACE POR DEFECTO:&lt;br /&gt;
  IFACE=&amp;quot;ppp0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  # Flush de reglas:&lt;br /&gt;
  $IPT -F; $IPT -X; $IPT -Z&lt;br /&gt;
&lt;br /&gt;
  # Políticas por defecto:&lt;br /&gt;
  $IPT -P INPUT   DROP&lt;br /&gt;
  $IPT -P FORWARD DROP&lt;br /&gt;
  $IPT -P OUTPUT  ACCEPT&lt;br /&gt;
&lt;br /&gt;
  # Bloquea las conexiones nuevas, excepto, si vienen desde adentro:&lt;br /&gt;
  $IPT -N block&lt;br /&gt;
  $IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT&lt;br /&gt;
  $IPT -A block -m state --state NEW -i ! $IFACE -j ACCEPT&lt;br /&gt;
  $IPT -A block -m state --state NEW,INVALID -i $IFACE -j DROP&lt;br /&gt;
  $IPT -A block -p tcp ! --syn -m state --state NEW -i $IFACE -j DROP&lt;br /&gt;
  $IPT -A block -j DROP&lt;br /&gt;
&lt;br /&gt;
  # Prevención de ataques SYN flood:&lt;br /&gt;
  $IPT -N syn-flood&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -p tcp --syn -j syn-flood&lt;br /&gt;
  $IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN&lt;br /&gt;
  $IPT -A syn-flood -j LOG --log-prefix &amp;quot;SYN flood: &amp;quot;&lt;br /&gt;
  $IPT -A syn-flood -j DROP&lt;br /&gt;
&lt;br /&gt;
  # Descartar paquetes fragmentados:&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -f -j DROP&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -f -j LOG --log-prefix &amp;quot;pkt frag: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
  # Recibir PING's desde el exterior:&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT&lt;br /&gt;
&lt;br /&gt;
  # Loguear peticiónes de Ping:&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -p icmp --icmp-type echo-request -j LOG --log-prefix &amp;quot;ping request: &amp;quot;&lt;br /&gt;
&lt;br /&gt;
  # Activar protección contra IGMP's:&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -p igmp -j DROP&lt;br /&gt;
&lt;br /&gt;
  # Evitar Spoofing:&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -s 127.0.0.0/8 -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
  $IPT -A INPUT -i $IFACE -s 192.168.0.1/16 -j REJECT --reject-with icmp-host-prohibited&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  ## Saltar a la cadena block desde las cadenas INPUT y FORWARD:&lt;br /&gt;
  $IPT -A INPUT   -j block&lt;br /&gt;
  $IPT -A FORWARD -j block&lt;br /&gt;
&lt;br /&gt;
  # Evitar técnicas del tipo &amp;quot;OS fingerprint guessing&amp;quot;:&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 3/4 -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 5   -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 13  -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 14  -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 15  -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 16  -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 17  -j DROP&lt;br /&gt;
  $IPT -A OUTPUT -p icmp -o $IFACE --icmp-type 18  -j DROP&lt;br /&gt;
&lt;br /&gt;
# Verificación de dirección.&lt;br /&gt;
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do&lt;br /&gt;
  echo &amp;quot;1&amp;quot; &amp;gt; $f&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Envio de mensajes de redireccion.&lt;br /&gt;
for f in /proc/sys/net/ipv4/conf/*/send_redirects ; do&lt;br /&gt;
    echo &amp;quot;0&amp;quot; &amp;gt; $f&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# FORWARD entre interfaces (routing).&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
# Redireccion de interfaces.&lt;br /&gt;
for f in /proc/sys/net/ipv4/conf/*/accept_redirects ; do&lt;br /&gt;
    echo &amp;quot;0&amp;quot; &amp;gt; $f&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Para gateway o enrutador.&lt;br /&gt;
for f in /proc/sys/net/ipv4/conf/*/accept_source_route ; do&lt;br /&gt;
  echo &amp;quot;0&amp;quot; &amp;gt; $f&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# IP dinámica (SLIP, PPP o DHCP).&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_dynaddr&lt;br /&gt;
&lt;br /&gt;
# Ignorar respuestas extrañas de ICMP.&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses&lt;br /&gt;
&lt;br /&gt;
# Ignorar broadcasts.&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts&lt;br /&gt;
&lt;br /&gt;
# Protección TCP SYN Cookie.&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_syncookies&lt;br /&gt;
&lt;br /&gt;
# Log marciano (paquetes con direcciónes imposibles).&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/conf/all/log_martians&lt;br /&gt;
&lt;br /&gt;
# Timestamps.&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_timestamps&lt;br /&gt;
&lt;br /&gt;
# Reducir la habilidad de los DoS, reduciendo los timeouts.&lt;br /&gt;
# Defaults: 60 - 7200 - 16384&lt;br /&gt;
echo &amp;quot;30&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_fin_timeout&lt;br /&gt;
echo &amp;quot;3600&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_keepalive_time&lt;br /&gt;
echo &amp;quot;4096&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_max_orphans&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_window_scaling&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; /proc/sys/net/ipv4/tcp_sack&lt;br /&gt;
&lt;br /&gt;
  echo &amp;quot;fireball start on $IFACE&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fireball_stop() {&lt;br /&gt;
  # flush de reglas...&lt;br /&gt;
  $IPT -F; $IPT -X; $IPT -Z&lt;br /&gt;
&lt;br /&gt;
  # set de políticas...&lt;br /&gt;
  $IPT -P INPUT   ACCEPT&lt;br /&gt;
  $IPT -P FORWARD ACCEPT&lt;br /&gt;
  $IPT -P OUTPUT  ACCEPT&lt;br /&gt;
&lt;br /&gt;
  # remover modulos...&lt;br /&gt;
  # para kernel 2.6.16+&lt;br /&gt;
  for modules in ipt_REJECT xt_limit ipt_LOG xt_tcpudp xt_state iptable_filter ip_conntrack ip_tables x_tables ; do&lt;br /&gt;
    rmmod $modules 2&amp;gt; /dev/null&lt;br /&gt;
  done&lt;br /&gt;
	&lt;br /&gt;
  # anterior a 2.6.16 y de la serie 2.4&lt;br /&gt;
  #for modules in ipt_REJECT ipt_limit ipt_LOG ipt_state iptable_filter ip_conntrack ip_tables ; do&lt;br /&gt;
  #  rmmod $modules 2&amp;gt; /dev/null&lt;br /&gt;
  #done   &lt;br /&gt;
	&lt;br /&gt;
  echo &amp;quot;fireball stopped&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fireball_restart() {&lt;br /&gt;
  echo -n &amp;quot;Restarting... &amp;quot;&lt;br /&gt;
  fireball_start&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
fireball_status() {&lt;br /&gt;
  $IPT -L -n -v&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
'start')&lt;br /&gt;
  fireball_start&lt;br /&gt;
  ;;&lt;br /&gt;
'stop')&lt;br /&gt;
  fireball_stop&lt;br /&gt;
  ;;&lt;br /&gt;
'restart')&lt;br /&gt;
  fireball_restart&lt;br /&gt;
  ;;&lt;br /&gt;
'status')&lt;br /&gt;
  fireball_status&lt;br /&gt;
  ;;&lt;br /&gt;
  *)&lt;br /&gt;
  echo &amp;quot;uso $0 start|stop|restart|status&amp;quot;&lt;br /&gt;
esac&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</description>
			<pubDate>Sat, 06 Jun 2009 23:21:01 GMT</pubDate>
			<dc:creator>Erik</dc:creator>
			<comments>https://www.slackwiki.com/Talk:Selkfoster_firewall</comments>
		</item>
</channel></rss>