Hola, Pengüin.
Bueno a ver, esas 122 reglas de iptables me parece a mí que pueden resultarles un tanto indigestas a las neuronas. Con estas cosas, como con el buen yantar, hay que ir despacito y dejar para otro día lo que no quepa hoy.
De momento, me ha golpeado la vista lo siguiente:
## Establecemos politica por defecto: DROP!!!
iptables -P INPUT ACCEPT && echo " regla-29 ok"
iptables -F INPUT ACCEPT && echo " regla-30 ok"
iptables -F OUTPUT ACCEPT && echo " regla-31 ok"
iptables -P OUTPUT ACCEPT && echo " regla-32 ok"
iptables -F FORWARD ACCEPT && echo " regla-33 ok"
iptables -P FORWARD ACCEPT && echo " regla-34 ok"
iptables -t nat -P PREROUTING ACCEPT && echo " regla-35 ok"
iptables -t nat -P POSTROUTING ACCEPT && echo " regla-36 ok"
Cuando hay política por defecto drop, se suele poner 'DROP'en estos sitios y no 'ACCEPT'.
Yo no soy ni mucho menos experto en iptables, pero se me ocurre que si ponemos por defecto DROP, nuestras reglas deberán consistir básicamente en abrir los puertos que tengan que estar abiertos, ya que drop lo deniega todo, y si ponemos ACCEPT deberemos procurar cerrar los que tengan que estar cerrados, ya que accept lo permite todo.
Un script de iptables es eso mismo: un script normal de shell de los de toda la vida, pero especialmente orientado al control del tráfico en la máquina, para lo que hace uso del comando iptables con sus argumentos y características especiales y todo eso.
En un script, el contenido de una variable se extrae anteponiendo al nombre de la misma el signo '$', es decir que yo puedo poner, por ejemplo, para escribir menos caracteres:
IPT='/sbin/iptables'
$IPT -P INPUT DROP
y el sistema ejecutará:
/sbin/iptables -P INPUT DROPEn cuanto a modprobe, es un comando que se utiliza para cargar módulos del kernel. A veces es necesario que ciertos módulos estén cargados en el kernel para que funcione alguna que otra regla determinada. Por ejemplo, los módulos
ip_conntrack_ftp e
ip_nat_ftp tienen que estar cargados si queremos permitir las conexiones ya establecidas por ftp y el ftp pasivo, algo necesario por ejemplo para que filezilla acceda a través de nuestro cortafuegos super restrictivo (bueno, por lo menos a mí me lo fue en su momento

).
Empieza poco a poco, lo primero es la limpieza de reglas y el establecimiento de la política por defecto, que puede ser algo como esto:
## Variables.
IPT='/sbin/iptables'
## Limpieza de reglas.
$IPT -F
$IPT -X
$IPT -Z
$IPT -t nat -F
$IPT --flush
$IPT --delete-chain
## Sólo se deniegan por defecto las redirecciones.
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD DROP
## Se permite todo para el localhost
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
Al localhost se le vuelve a permitir todo (aunque ya lo está por defecto) por si acaso en algún momento nos da por cambiar la política por defecto a DROP y nos olvidamos de él...

y a partir de ahí vas probando cosas y lo compruebas con
iptables -nvLPor ejemplo, podrías intentar denegar el ping (lo mismo no funciona, ya hace tiempo que dejé estas cosas):
$IPT -P icmp -j DROP
Y seguir así, investigando poco a poco y aprendiendo a tu ritmo, copiando cosas de aquí y de allá y averiguando lo que hacen. Aún guardo este enlace:
http://www.pello.info/filez/firewall/iptables.html, que aunque viejuno continúa siendo un buen punto de referencia.
Y una sugerencia:
No pongas un script de iptables en un archivo que se ejecute al arranque, porque un fallo (por ejemplo, un simple cambio en la IP del administrador, permitida expresamente) te podría dejar sin acceso al equipo. Si el script del fallo no se está ejecutando directamente al arrancar, un reinicio te devolverá el control.