InicioLinuxscript al inicio + IpTables/Archivos configuración de Bash

script al inicio + IpTables/Archivos configuración de Bash

Linux6/24/2014
Fuente: http://www.esdebian.org/wiki/archivos-configuracion-bash http://www.rolandovera.com/2008/03/22/debian-como-hacer-un-script-que-arranque-automaticamente-durante-el-arranque-del-sistema/ Debian, Como hacer un script que arranque automaticamente durante el arranque del sistema. Cada vez que uno se va metiendo mas y mas con las opciones de Debian, se encuentra uno con la necesidad de ejecutar un script al momento de arrancar. Yo me vi en la necesidad de hacer esto ya que yo hago firewalls manuales para distintos servidores dependiendo de sus requerimientos. El primer paso es crear el archivo de arranque en el directorio /etc/init.d, este archivo puede tener cualquier nombre, por motivos de ejemplo yo voy a usar el archivo rc.firewall. Mi editor favorito es nano, asi que voy a irme al directorio /etc/init.d con el siguiente comando: cd /etc/init.d Creo el archivo: sudo nano rc.firewall Dentro de archivo voy a ejecutar el comando iptables -F (iptables flush) esto borrar todas las reglas de iptables en el server. Asi que en el archivo rc.firewall meto o siguiente: sudo iptables -F sudo iptables -P INPUT DROP sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT echo funciono. sudo iptables -P INPUT DROP Esto bastará para que nadie, absolutamente nadie pueda entrar a su ordenador… y, este “nadie” los incluye a ustedes mismos Explicación de la línea anterior: Con ella indicamos a iptables, que la política por defecto (-P) para todo lo que desee entrar a nuestro ordenador (INPUT) es obviarlo, no hacerle caso (DROP) Nadie es bastante general, absoluto de hecho, ni ustedes mismos podrán navegar por internet ni nada, es por eso que debemos en esa terminal poner lo siguiente y presionar [En.ter]: sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT … no entiendo una mierda, ¿qué hacen ahora esas dos líneas raritas? … Simple La primera línea lo que dice es que el propio ordenador (-i lo … por cierto, lo = localhost) puede hacer lo que le plazca. Algo obvio, que puede parecer hasta absurdo… pero créanme, es tan importante como el aire jaja. La segunda línea la explicaré usando el ejemplo/comparación/metáfora que usé antes, me refiero a comparar al ordenador con la casa Por ejemplo, supongamos que vivimos con más personas en nuestra casa (madre, padre, hermanos, novia, etc). Si alguna de estas personas sale de casa, ¿es obvio/lógico que dejaremos que entre una vez regrese no? Precisamente eso es lo que hace esa segunda línea. Todas las conexiones que nosotros iniciemos (que salgan desde nuestro ordenador), cuando por esa conexión quiera entrar algún dato, iptables dejará que ese dato entre. Poniendo un ejemplo más para explicarlo, si usando nuestro navegador intentamos navegar por internet, sin estas 2 reglas no podremos, pues sí… el navegador se conectará a internet, pero cuando intente bajar datos (.html, .gif, etc) hacia nuestro ordenador para mostrárnoslo, no podrá pues iptables le negará la entrada de paquetes (datos), mientras que con estas reglas, como nosotros iniciamos la conexión desde dentro (desde nuestro ordenador) y esa misma conexión es la que intenta entrar datos, sí se le permitirá el acceso. Con esto listo, ya tenemos declarado que nadie puede acceder a ningún servicio de nuestro ordenador, nadie excepto el propio ordenador (127.0.0.1) y además, excepto conexiones que se inicien en el propio ordenador. No es necesario agregar el path completo de iptables, grabamos el archivo. Despues de esto tenemos que darle permisos al archivo para que se pueda ejecutar sin problemas, esto lo hacemos con el siguiente comando: chmod + rc.firewall Podemos ejecutar el script de la siguiente manera: ./rc.firewall Nos va a devolver el siguiente mensaje: funciono. Despues de esto ya estamos listos para agregar este comando para que sea ejecutado en el momento que el sistema arranque: Esto lo hacemos con el siguiente comando: update-rc.d rc.firewall defaults 80 Eso es todo, ahora el script se va a ejecutar cada vez que el sistema arranque. Archivos Configuración de Bash Solo hablaré de bash, aunque me refiera a ella como shell o consola, la configuración de otras shells puede ser similar o igual. Ficheros inicialización de una sesión de login shell. p.e. ttys /etc/profile El primero en leerse automáticamente por bash cuando este es invocado en modo login (P.e. las ttys). En este fichero se configuran muchas de las variables de bash (PATH, USER, MAIL, HOSTNAME ...) y otros valores como umask. Resumiendo,en él se incluyen variables generales del sistema. Pero como este fichero es leido por muchas shells, no solo bash, es mejor poner las configuraciones de esta en otros archivos específicos. ~/.bash_profile El segundo en orden en ser leído por bash. Normalmente poco se mete en este archivo, lo mas importante es que indica a bash que lea otros archivos como ~/.bash_login, ~/.profile, ~/.bash_logout ~/.bash_login Normalmente el tercero en ser leído, si existe indica los comandos que correrán al momento de logearse, normalmente, son cosas como indicar la fecha, el nº de usuarios conectados ... ~/.profile Equivalente a /etc/profile pero especifico de cada usuario, este archivo es leído por mas shells, aparte de bash. Puede ser leído por shells nologin si estas arrancan con la invocación a sh. ~/.bash_logout Fichero con opciones para el momento del cierre de un login shell, lo mas habitual es que se incluya el comando clear y nada mas. Ficheros inicialización para nologin shells /etc/bash.bashrc Bash lee y ejecuta las ordenes de este fichero. En el se incluyen variables generales del sistema, es como un /etc/profile pero que carga cada vez que arrancamos una shell en X o cualquier instancia de bash nologin, no es necesario reiniciar para que la shell acepte los cambios. Su uso no es habitual. también es leído cuando se ejecuta bash a través de un demonio de consola remota (p.e. rshd) /etc/bashrc Puede cumplir las mismas funciones que /etc/profile. Si existe, se leerá a continuación de /etc/bash.bashrc, solo que este es leído únicamente por bash, excluyendo otras shells, por lo que si en nuestro sistema usamos varios tipos, podríamos dedicar este fichero para configurar bash. ~/.bashrc Aquí es donde habitualmente se establece el prompt y los alias. Es un fichero para uso individual de cada usuario de consolas que no necesitan login, sin embargo es muy común que este archivo sea invocado desde ~/.profile por lo que también afectará a consolas login. Si queremos modificaciones individuales, este es el archivo a modificar, con preferencia a todos los anteriores. Nota: entiendasé por nologin shell a toda shell a la cual se accede sin necesidad de ingresar usuario y contraseña como ser xterm, konsole, gnome-terminal o bien la ejecución de una nueva instancia del shell sobre una shell ya activa (p.e. ejecutar $ bash). Es también un caso de nologin shell el escalar/degradar privilegios mediante $ su. En la practica podrá identificar un nologin shell sabiendo que no es posible salir de ellas mediante logout. Otros archivos relacionados Existen otros muchos archivos que se puede utilizar para configurar conductas de la shell Bash. Pero son de raro uso. Como ejemplo: ~/.bash_aliases Fichero al que añadir como su nombre indica, alias. No es en principio necesario, ya que .bashrc cumple esa función. Solo en casos muy raros puede interesar separar esos alias, de los que usamos habitualmente y "alimentar" bash con: source .bash_aliases. ~/.bash_history Historial de comandos.
Datos archivados del Taringa! original
31puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
1visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

d
danielarario🇦🇷
Usuario
Puntos0
Posts104
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.