Professional Documents
Culture Documents
Instalando el Sistema
Bsicamente existen dos mtodos de instalar el sistema con nuestro CD/DVD, estos mtodos no son nicos, pero si los ms usuales.
Modo Grfico
Para instalar en modo grfico en idioma espaol debemos colorar el DVD en la unidad de lectura y escribiremos en la pantalla inicial linux lang=es para comenzar con la instalacin en espaol.
Paso siguiente el sistema evaluar las unidades de disco para comprobar que se encuentra bien grabada, es recomendable chequear el disco si ste no se ha chequeado previamente o si ha sufrido algn dao menor producto de una cada o similar.
Finalizado este paso se comprobar que los controladores cargados en la instalacin soporta la interfaz grfica de video de la tarjeta actual, en caso de ser favorable comenzar la instalacin modo grfico con una ventana de bienvenida.
Paso siguiente se debe seleccionar el tipo de teclado que se utilizar en el terminal conectado al sistema, en nuestro caso es comn encontrar teclado espaol y teclado latinoamericano. Se pueden diferenciar fcilmente por la posicin de la @, cuando se encuentra a la derecha de 2 se trata de un teclado espaol, cuando se encuentra a la derecha de la Q se trata del latinoamericano.
El paso siguiente es la seleccin del disco y el espacio de disco con que se trabajarn las particiones, es recomendable en el caso de un servidor trabajar con el diseo personalizado y seguir las recomendaciones hechas por RedHat Enterprise.
Las particiones dependern bastante del tipo de servidor a crear, sin embargo las recomendaciones de RedHat son las siguientes: La SWAP o memoria virtual debe ser del doble de la memoria RAM /boot debe ser una particin aparte de 100M aprox. / no debera superar los 5GB
Paso siguiente se recomienda crear una contrasea al sector del GRUB que es quien gestiona el Arranque de Linux, de esta forma se dificulta que alguien que tenga acceso fsico entrar como root.
El siguiente paso nos permite configurar la conexin de red y el nombre del equipo. De forma predeterminada IPv4 lo obtendr a travs de DHCP e IPv6 de forma Automtica.
Lo siguiente es configurar la hora del sistema, para un servidor es recomendable siempre manejar la hora en UTC.
El siguiente paso es indicar la contrasea de administracin o contrasea de root, se recomienda elaborar una contrasea con caracteres especiales y caracteres alfanumricos incluyendo maysculas y minsculas, como por ejemplo: MCeSS-52K11 donde cada uno de sus caracteres se les puede dar un significado fcil de recordar: Mi Clave es Super Segura mayo 2011
El siguiente paso es la eleccin de software, es recomendable en un servidor escoger cada uno de sus paquetes a mano y as optimizar el espacio en disco y la cantidad de servicios que arranquen de forma automtica, para ello seleccionaremos Personalizar ahora.
En la personalizacin se software podemos ver agrupados los programas segn su funcionalidad, una vez que hemos seleccionado los servicios y utilidades que necesitaremos, pasaremos al paso siguiente en donde el instalador comprobar automticamente las dependencias de nuestra seleccin.
Finalmente procedemos a realizar la instalacin con cada una de las opciones seleccionadas en los pasos anteriores.
Al comenzar la instalacin realizar varios pasos, entre los que podemos enumerar los siguientes: Formatear las unidades de disco y asignacin de las particiones
Este proceso demorar entre 15 minutos a 1 hora dependiendo de la cantidad de servicios instalados y de las caractersticas del Hardware.
Una vez terminado el proceso de instalacin se ver la siguiente ventana que solicitar reinicia el equipo.
Cuando se reinicie el servidor, debera ver en pantalla la solicitud de inicio de sesin tpica de los sistemas UNIX/Linux en donde en el encabezado aparece nuestro sistema instalado, la versin del kernel y la solicitud de login.
Se recomienda que los servidores funcionen en modo texto bsicamente por: Mayor seguridad al reducir el rea de ataque. Mayor Performance al no utilizar recursos en interfaz grfica. La configuracin del sistema se realiza a modo texto.
Modo Texto
La instalacin a modo texto es idntica a la grfica, con excepcin de la interfaz, cada uno de sus pasos es el mismo, aunque suele ser algo ms lenta debido a que la seleccin de los tem se realiza en base a tabulador, barra de espacio y enter. Para seleccionar la instalacin en modo texto, se debe escribir en la pantalla inicial linux text lang=es
Configuracin de Servicios
La configuracin de servicios es recomendable hacer la primer vez que ingrese al sistema, se puede realizar a travs del comando setup, el cual se invoca una vez iniciada la sesin en el sistema.
Se recomienda revisar los Servicios del sistema y detener el llamado automtico de los servicios no utilizados, como por ejemplo el de Bluetoot.
RPM
RPM es un potente Administrador de paquetes, que se puede utilizar para construir, instalar, consultar, verificar, actualizar y eliminar paquetes de software individuales. Un paquete se compone de un archivo de archivos y metadatos que se utilizan para instalar y borrar los archivos de archivo. El metadatos incluyen scripts de ayuda, los atributos de archivo, e informacin descriptiva sobre el paquete. Los paquetes vienen en dos variedades: los paquetes binarios, que se utiliza para encapsular el software a instalar, y la fuente de los paquetes, que contienen el cdigo fuente y la receta necesaria para producir paquetes binarios.
Ejemplos:
rpm -qa | grep http rpm -Uvh eaglemode-0.80.0-1.i586.rpm
YUM
yum es un rpm interactivo, basada en el gestor de paquetes. Se puede realizar automticamente los repositorios del sistema, incluyendo el anlisis de la dependencia y el tratamiento obsoleto basado en "repositorio" de metadatos. Tambin puede realizar la instalacin de nuevos paquetes, la eliminacin de paquetes antiguos y realizar consultas sobre los paquetes disponibles, entre muchos otros comandos.
Ejemplo:
yum install dhcpd
Comandos Bsicos
Esta es una pequea lista de los comandos ms utilizados, no es que sean los ms faciles, la verdad es que "no hay comando complicado, slo comandos que no conocemos".
man
Este comando es el ms til de todos, su funcin es mostrar el manual del comando que se coloque a continuacin, dependiendo de la distribucin de Linux y de diversos programas, ste estar en tu idioma. Para saber como utilizarlo, puedes pedir el manual del manual escribiendo
man man
Cuando revisas un manual, como el de "man", es posible que aparezcan algnas referencias (en la seccin "SEE ALSO" o "VER TAMBIN"), las cuales estn numeradas, por ejemplo, en el caso de "man", es posible ver:
SEE ALSO: manpath(1), apropos(1), whatis(1), catman(8), less(1), setlocale(3), troff(1), nroff(1), man(7), ascii(7), ...
Esta es una lista de contextos relacionados de los cuales tambin puedes pedir con man, es decir despus de salir de man (con la tecla "q"), puedes escribir por ejemplo: man whatis. De esta forma siempre puedes encontrar informacin relacionada.
ls
Lista o muestra el contenido del directorio actual. El uso de este comando de forma ms bsica es sin parmetros, de esta forma lista todos los archivos y directorios ordenndolos en columnas de arriba a abajo y de izquierda a derecha.
bin boot dev etc home lib lost+found media misc mnt net opt proc root sbin selinux srv sys tmp usr var
Obviamente el resultado variar dependiendo de en qu directorio estemos parados y que cosas tengamos ah. El parmetro que recibe este comando es algna expresin regular que represente lo que deseamos listar, por ejemplo podemos buscar dentro de "todo lo que comience con b", para ello usamos "b*"
ls b*
Es bueno a estas alturas decir que si existe algn directorio que coincida con "que comience con b", ls mostrar su contenido; por ejemplo, la salida del comando anterior regresa lo siguiente:
bin: alsacard alsaunmute arch awk basename bash cat chgrp chmod chown cp cpio csh cut date dbus-cleanup-sockets dbus-daemon dbus-monitor dbus-send dbus-uuidgen dd df dmesg dnsdomainname doexec domainname dumpkeys echo ed egrep env ex false fgrep fusermount gawk gettext grep gtar gunzip gzip hostname igawk ipcalc kbd_mode kill link ln loadkeys login ls mail mailx mkdir mknod mktemp more mount mountpoint mv netstat nice nisdomainname ntfs-3g ntfsmount pgawk ping ping6 ps pwd red redhat_lsb_init rm rmdir rpm rvi rview sed setfont setserial sh sleep sort stty su sync tar taskset tcsh touch tracepath tracepath6 traceroute traceroute6 tracert true ulockmgr_server umount uname unicode_start unicode_stop unlink usleep vi view ypdomainname zcat zsh
boot: config-2.6.23.1-49.fc8 config-2.6.23.8-63.fc8 grub initrd-2.6.23.1-49.fc8.img initrd-2.6.23.8-63.fc8.img lost+found System.map-2.6.23.1-49.fc8 System.map-2.6.23.8-63.fc8 vmlinuz-2.6.23.1-49.fc8 vmlinuz-2.6.23.8-63.fc8
Existen tambin opciones para este comando, opciones que cambian los datos que muestra, estos se pueden combinar entre s, los ms comunes son los siguientes: -l : Muestra una lista de un archivo (directorio, etc) por linea, muestra el tipo del archivo, los permisos, el nmero de enlaces duros, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la marca de tiempo y el nombre del archivo. -a : Muestra todos los archivos, incluyendo los ocultos (que comienzan con .) -d : No muestra el contenido interno de los directorios. -h : Muestra el tamao en formato humano (Kilos, Megas, etc.) -v : Ordena los archivos por versin en vez de alfabeticamente. Ejemplos ls -l muestra, de izquierda a derecha lo siguiente : el tipo del archivo, los permisos, el nmero de enlaces al archivo, el nombre del propietario, el del grupo al que pertenece, el tamao en bytes, la fecha de la ltima modificacin y el nombre del archivo.
total 150 drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4 root root 12 root root 4096 dic 1024 dic 9 22:20 bin 4 17:08 boot
drwxr-xr-x 126 root root 12288 dic 15 15:41 etc drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x 12 root root 15 root root 4096 dic 13 22:56 home 4096 dic 15 04:23 lib 2 12:25 lost+found
2 root root 16384 dic 2 root root 2 root root 2 root root 2 root root 2 root root
4096 dic 15 15:15 media 0 dic 15 15:14 misc 4096 ago 13 10:47 mnt 0 dic 15 15:14 net 4096 dic 3 16:29 opt
dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x 10 root root
2 root root 12288 dic 11 13:48 sbin 2 root root 3 root root 12 root root 24 root root 14 root root 22 root root 4096 dic 4096 dic 2 12:25 selinux 2 12:45 srv
0 dic 15 12:14 sys 4096 dic 15 18:06 tmp 4096 dic 4096 dic 3 16:24 usr 2 12:48 var
ls -a muestra:
. .. .autofsck .autorelabel bin boot dev etc home lib lost+found media misc mnt net opt proc .pulse-cookie root sbin selinux srv .suspended sys
ls -d b* muestra:
bin boot
Note la diferencia con la ejecucin sin la opcin -d Combinado algnas opciones, podemos ejecutar: ls -hl que muestra:
total 150K drwxr-xr-x drwxr-xr-x drwxr-xr-x 2 root root 4,0K dic 4 root root 1,0K dic 9 22:20 bin 4 17:08 boot
12 root root 4,2K dic 15 15:15 dev 12K dic 15 15:41 etc
drwxr-xr-x 126 root root drwxr-xr-x drwxr-xr-x drwx-----drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x
12 root root 4,0K dic 13 22:56 home 15 root root 4,0K dic 15 04:23 lib 2 root root 16K dic 2 12:25 lost+found
2 root root 4,0K dic 15 15:15 media 2 root root 0 dic 15 15:14 misc
2 root root 4,0K ago 13 10:47 mnt 2 root root 0 dic 15 15:14 net 3 16:29 opt
dr-xr-xr-x 142 root root drwxr-x--drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxrwxrwt drwxr-xr-x drwxr-xr-x
10 root root 4,0K dic 14 00:52 root 2 root root 12K dic 11 13:48 sbin 2 12:25 selinux 2 12:45 srv
2 root root 4,0K dic 3 root root 4,0K dic 12 root root
24 root root 4,0K dic 15 18:06 tmp 14 root root 4,0K dic 22 root root 4,0K dic 3 16:24 usr 2 12:48 var
cd
Cambia el directorio (o carpeta) actual. Al ejecutarse sin parmetro, normalmente (aun no he conocido un Linux, Unix o Solaris en que no suceda) cambia al directorio de home (o directorio base) del usuario en curso. Al entregarle un parmetro (nombre de algn directorio), se cambia a l. algnos nombres de directorios especiales son por ejemplo: . que hace referencia a mi directorio actual, .. que hace referencia al directorio padre, y / que es el directorio raz del sistema. Cabe destacar que uno puede cambiarse de directorio dando toda la ruta (directa o relativa) de una carpeta.
Regresar a mi carpeta
cd
pwd
Muestra el directorio actual regresando toda su ruta desde la raz del sistema.
pwd
cp
Copia dentro del equipo local un archivo o directorio, para ello recibe dos parmetros, el origen y el destino.
cp origen destino
Existen algnas opciones que se utilizan bastante, no son todas, pero son las ms frecuentes: -R : Copia recursiva de directorios. -i : Pregunta si quiere sobrescribir los que tienen el mismo nombre. -d : copia los enlaces simblicos en vez de copiar el archivo (o directorio) al que apunta. -u : copia sobreescribiendo solamente los archivos ms viejos (una forma de sincronizacin).
mv
Mueve o renombra un archivo o directorio a un nuevo destino. De que depende cual de las dos acciones ejecuta? Fcil, depende si existe el destino o no como directorio, en caso contrario renombra (ojo, si se mueve un archivo a otro que ya existe, lo reemplaza).
mv curriculum.pdf Documentos/personales/
Las opciones ms utilizadas de mv son: -i : pregunta antes de sobrescribir si el destino existe. -u : no mueve el archivo si existe en el destino uno ms actual.
rm
Borra un archivo o directorio.
rm archivoViejo.txt
Los operadores mas importantes son: -r : borra recursivamente. -i : pide confirmar. -f : por la fuerza. Nunca hagas lo siguiente aunque es gracioso (para el que observa)
rm -rf $HOME
ni ninguna cosa parecida, preocpate de manejar bien este comando, pues de que borra borra.
cat
Despliega un archivo por la salida estndar.
cat README.txt
El operador entretenido que tiene es el -n que muestra los nmeros de linea, es especial si quieres ver que dice la linea que se queja un archivo PHP. En la mayora de los terminales con las teclas <shift> y <pg up> o <pg dw> nos permite desplazarnos.
more
Despliega un archivo por la salida estndar agregando pausas por pantalla. Claramente esto es bastante til cuando el archivo sobrepasa un par de pantallas.
more README.txt
tail
Muestra las ltimas lineas de un archivo. Tal ves te preguntes y para que solo quiero ver las ltimas lneas?, algnas respuestas posibles a esta pregunta son: Puede ser que ests viendo un archivo secuencial (como un log del sistema) en donde te interese solamente ver lo que ocurre ahora.
Ver el progreso de un registro secuencia, gracias al operador ms utilizado, -f (follow) que deja el canal abierto mirando las ultimas lineas mientras se actualizan.
tail -f /var/log/messages
head
Igual que el anterior, pero muestra solamente las primeras lneas de un archivo. Tal vez te preguntes, y para qu solamente querra ver las primeras lneas? algnos casos posibles son: Quieres ver si un archivo se trata de lo que crees (en Linux, muchos archivos de configuracin guardan comentarios descriptivos en las primeras lneas):
algnos archivos de registro y salidas de programa guardan informacin cronolgica "inversa", es decir, los ms recientes primero:
last | head # <-- quines son los ms recientes que se han conectado al sistema?
head config.log
ps
Muestra los procesos en ejecucin. Entre todos los comandos que hemos visto, este es uno de los que tiene las ms variadas opciones, pues uno puede ver los procesos en total, por usuario, por grupo de usuario, etc... Lo ms comn en todo caso es que me interesen mis procesos, para ello se utiliza el operador -U seguido por el nombre del usuario.
ps -U gulixiano
si le agregamos el operador x podemos ver adems los parmetros de los programas, ubicacin, entre otros. La primer columna de lo que retorna es el nmero del proceso.
ps x -U gulixiano
retorna
PID TTY 2505 ? 2561 ? 2564 ? 2565 ? 2609 ? 2612 ? 2614 ? 2635 ? 2636 ? 2639 ? 2641 ? 2643 ? 2648 ? 2650 ? 2651 ? 2653 ? 2658 ? 2662 ? 2685 ? 2690 ? 2696 pts/2 2735 ? 2756 ? 2761 ? 2915 ? 3557 ? 3660 ? 3684 ? 4423 ? 4451 pts/2 STAT Ss Ss S Ss S Ss Ssl S Ss S S S S S S S S S S S Ss S S Sl S S S S Rl R+ TIME COMMAND 0:00 /bin/sh /usr/bin/startkde 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session 0:00 /usr/bin/dbus-launch --exit-with-session /etc/X11/xinit/Xclients 0:00 /bin/dbus-daemon --fork --print-pid 4 --print-address 8 --session 0:00 /usr/bin/gnome-keyring-daemon 0:01 /usr/bin/gpg-agent -s --daemon 0:55 /usr/bin/pulseaudio -D 0:00 start_kdeinit --new-startup +kcminit_startup 0:00 kdeinit Running... 0:00 dcopserver --nosid 0:00 klauncher [kdeinit] --new-startup 0:05 kded --new-startup 0:00 kwrapper ksmserver 0:00 ksmserver 0:10 kwin -session 101bc18c1b6166000119671600300000064280000_1197099738_82464 0:05 kdesktop 0:13 kicker 0:17 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -c drkonqi -l 3 -f 0:00 kalarmd --autostart 0:00 /usr/libexec/gconfd-2 13 0:00 /bin/bash 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/firefox -UILocale es-ES 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/run-mozilla.sh 24:15 /usr/lib/firefox-2.0.0.10/firefox-bin -UILocale es-ES 0:01 knotify [kdeinit] 0:21 xchat 0:04 konqueror --silent 0:01 kio_uiserver 3:53 /usr/lib/nspluginwrapper/npviewer.bin 0:00 ps x -U gulixiano
kill
Mata algn proceso. Para entender mejor recomiendo ver man 7 signal que especifica cada una de las seales, en este pequeo texto utilizaremos la seal 9 (matar) y la seal 15 (terminar). Por ejemplo, supongamos que de la lista de procesos vistos en el ejemplo de ps deseamos terminar xchat, cuyo nmero de proceso es 3557
kill -15 3557
lo que cerrar (amablemente) el programa xchat. Ahora, supongamos que (por esas cosas que rara vez ocurren) se pega xchat y no est respondiendo, por lo que en ves de cerrarlo, es mejor matarlo (por la fuerza).
tem 3. La Shell de Linux - 22
Kill -9 3557
Mediante kill incluso se pueden detener o reiniciar procesos, no es lo ms habitual, pero de poder se puede.
killall
Este comando no esta disponible por defecto en todos los sistemas Unix, pero s en la mayora de las distribuciones Linux. Mata todos los procesos al los cuales el usuario tiene acceso. Similar al comando Kill, pero diseado para matar procesos por sus nombres. ejemplo:
killall firefox-bin
top
Al igual que ps muestra los procesos, a diferencia de ps, top los ordena por porcentaje de CPU utilizado (lo que se puede cambiar a porcentaje de memoria, etc.) Por ejemplo al ejecutar
top
2 running, 127 sleeping, 1.2%sy, 0.2%ni, 80.4%id, 395052k used, 81044k used,
0.3%hi,
PID USER
PR
NI
VIRT
RES
TIME+
COMMAND
0 98.3m 0 0 0 -5 -5 -5 123m
27:22.42 npviewer.bin 11:58.59 X 27:24.50 firefox-bin 0:01.20 init 0:00.00 kthreadd 0:00.00 migration/0 0:01.43 ksoftirqd/0
2.0 10.6 2.0 37.6 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0
Con la opcin -u se le puede especificar el usuario, por ejemplo si solo deseamos ver los procesos de root ejecutamos
top -u root
que muestra
top - 23:01:35 up Tasks: 129 total, Cpu(s): 16.4%us, Mem: Swap: 7:46, 1 user, load average: 1.80, 1.48, 1.09 0 stopped, 2.5%wa, 0 zombie 0.1%si, 0.0%st
2 running, 127 sleeping, 1.3%sy, 0.2%ni, 79.3%id, 402064k used, 81044k used,
0.3%hi,
PID USER 2483 root 1 root 2 root 3 root 4 root 5 root 6 root
PR 20 20 15 RT 15 RT 15
NI 0 0 -5 -5 -5 -5 -5
RES
SHR S %CPU %MEM 5.6 10.6 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0
TIME+
COMMAND
12:19.55 X 0:01.21 init 0:00.00 kthreadd 0:00.00 migration/0 0:01.47 ksoftirqd/0 0:00.00 watchdog/0 0:00.29 events/0
top adems recibe comandos mientras est en ejecucin, entre ellos, k es equivalente a kill, O es para ordenar por otro criterio, q sale, entre otros.
alias
Crea un alias de un comando, esto sirve bastante para escribir menos. Por ejemplo, podemos crear una alias para ls -al cosa de no escribir a cada rato esos 5 caracteres, podemos crear una alias una ves y de ah solo usar el alias.
alias ll='ls -al'
Se puede crear un alias para prevenir borrar cosas accidentalmente incorporando la confirmacin (lo malo es que uno se acostumbra a responder que si).
alias rm='rm -i'
El uso del alias es desde que se crea hasta que se cierra la cuenta, para la perpetuidad del alias se puede agregar al archivo .bashrc (en el directorio base de tu usuario)
chmod
Se usa para cambiar los permisos de los archivos y directorios. Los tipos de permisos son bsicamente 3 r :lectura w :escritura x :ejecucin (acceso) Los permisos los podemos agrupar en u : usuario g : grupo o : otros Para aadir un permiso se utiliza el + mas y para quitarlo el - menos, y para asignar quitando otros cambios se usa el =, con esto agregar a todos el permiso de lectura a un archivo sera as:
chmod ugo+r archivo
si deseamos que todos mis archivos y carpetas sean accedidas y ledas por las personas de mi grupo, puedo agregar la opcin de recursividad -R
chmod g+rx * -R
Cambio de permisos utilizando nmeros Es posible asignar un nmero identificatorio a cada tipo de permiso, considerando lo siguiente: r = 4 (lectura) w = 2 (escritura) x = 1 (ejecucin) - = 0 (sin permisos) Cuando asignamos los permisos utilizando nmeros debemos tener en cuenta que primero se sumarn los valores y dicho resultado es el que se usar. Ejemplos:
rw------- (600) Slo el propietario tiene el derecho de leer y escribir. chmod 600 archivo.txt rw-r--r-- (644) Slo el propietario tiene los permisos de leer y escribir; el grupo y los dems slo pueden leer. rwx------ (700) Slo el propietario tiene los derechos de leer, escribir y ejecutar el archivo. rwxr-xr-x (755) El propietario tiene los derechos de leer, ejecutar; el grupo y los dems slo pueden leer y ejecutar. escribir y
rwx--x--x (711) El propietario tiene los derechos de lectura, escritura y ejecucin; el grupo y los dems slo pueden ejecutar. rw-rw-rw- (666) Todo el mundo puede leer y escribir en el archivo. No es una buena eleccin! rwxrwxrwx (777) Todo el mundo puede leer, escribir y ejecutar. Tampoco es buena eleccin!
chgrp
Cambia el grupo a un archivo o carpeta, su uso es simple, se especifica el grupo y de ah a que se le desea cambiar, al igual que a chmod tiene la opcin -R para cambiar el grupo de forma recursiva, por ejemplo podemos querer cambiar el grupo del directorio public_html y su contenido al grupo apache.
chgrp apache public_html -R
chown
Cambia el usuario y grupo a un archivo o directorio, su uso es similar a los comandos anteriores, por ejemplo podramos copiar una carpeta carpeta como root dentro del usuario gulixiano que pertenece al grupo gulix, el paso siguiente es que gulixiano pueda disponer de dicha carpeta y archivos interiores, el comando que debera ejecutar es:
chown gulixiano:gulix carpeta -R
df
Regresa el espacio disponible y utilizado en disco (por particiones montadas), la opcin que debe conocer es -h que retorna el espacio en "formato humano" (Kilos, Megas, etc):
df -h
du
Regresa el tamao de los archivos y carpetas de forma recursiva del lugar en donde te encuentres parado, al igual como en el comando anterior con la opcin -h queda en "formato humano":
du -h
Dos opciones de inters son: -s muestra solamente la suma total de los archivos examinados, esto es para conocer el espacio total que usa una carpeta, por ejemplo:
du -s $HOME/manuales
Te dir que ests usando, por ejemplo, 246736 "unidades" en puros manuales, usa la opcin "-h" para pasar eso a formato humano:
du -sh $HOME/manuales
Mmmm. 241M (megas), nada mal! -a es la opcin opuesta, en vez de resumir el espacio ocupado en un solo nmero, entrega un detalle de cuntas "unidades" (Kilos o Megas con "-h") usa cada archivo y directorio que encuentre, siendo til para determinar qu est ocupando todo el espacio de tu home:
du -ah $HOME
Eso s, si tienes muchos archivos va a ser una larga lista por lo que puedes examinarla por partes usando "more" o "less".
find
Realiza una bsqueda, el parmetro opcional ms utilizado es el path, mediante una tubera uno puede filtrar con egrep o con grep.
find
un ejemplo, para buscar desde la raiz del sistema un archivo llamado "miarchivo.odt"
find / -name 'miarchivo.odt'
grep
Retorna una linea segn un trmino buscado en un archivo segn algna expresin regular. La sintaxis general del comando es:
grep lo_que_busco donde_busco
regresara:
gulixiano:x:500:500::/home/gulixiano:/bin/bash
ifconfig
Regresa o configura los datos de nuestra(s) tarjeta(s) de red. Su uso bsico es de consulta, en donde se llama sin parmetros.
ifconfig
inet addr:192.168.0.247
RX packets:2002 errors:0 dropped:0 overruns:0 frame:0 TX packets:1912 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1480919 (1.4 MiB) TX bytes:560964 (547.8 KiB)
lo
RX packets:2988 errors:0 dropped:0 overruns:0 frame:0 TX packets:2988 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3501364 (3.3 MiB) TX bytes:3501364 (3.3 MiB)
Normalmenre las tarjetas de red son nombradas como ethX en donde X va del 0 en adelante dependiendo de las tarjetas que tengamos, existen algnas distros que nombran a la inalambrica como wlanX en donde X es el nmero de tarjeta. Dependiendo de la distro, es probable que se necesite llamar a ifconfig de la siguiente manera /sbin/ifconfig. Notemos que en la primer linea de nuestra tarjeta tenemos el HWaddr seguido de la mac de nuestra tarjeta, en la segunda linea, encontramos nuestra IP (addr), broadcast (Bcast) y mascara de red (Mask). No detallaremos aqu como configurar la red a modo texto, es interesante, pero ese ya es un tema algo ms avanzado.
ln
Crea un enlace (Acceso directo para los hijos de Windows). Recibe dos parmetros, origen y destino, normalmente se usa el operador -s simblico para crear enlaces simblicos. Por ejemplo, podemos crear un enlace simblico en el Escritorio del directorio Documentos (que se encuentra en paralelo a Escritorio).
ln -s ../Documentos Escritorio
otro operador de ln bastante usado es -f por la fuerza, en que obliga a hacer el enlace, es muy til si el enlace ya exista y lo queremos sobrescribir.
passwd
Cambia la contrasea, al usarse sin parmetros cambia la contrasea propia, el parmetro que recibe es el nombre de usuario al que se le desea cambiar la clave (se requieren permisos de root para ello).
passwd
ping
Solicita un eco desde algna maquina en la red, muy til para saber si tu conexin de red esta funcionando.
ping www.google.cl
--- www.l.google.com ping statistics --2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 161.464/161.841/162.218/0.377 ms
route
Sirve para ver o configurar la(s) puerta(s) de enlace de mi equipo. Su uso bsico es sin parmetros y es para ver cual es mi puerta de enlace y por que dispositivo de red est saliendo.
route
La puerta de enlace que toma es la que est marcada con default, en nuestro caso 192.168.0.1 conectado por la tarjeta de red eth0 Al igual que con ipconfig, este comando no lo tocaremos ms aqu, pero tiene para mucho estudio.
scp
Copia archivos de o a maquinas remotas, la sintaxis de este comando es igual a la de cp, la diferencia es el origen o el destino que pueden ser remotos, para especificar el usuario y maquina y ruta remota se estila colocar usuario@maquina:/ruta/remota, despus de presionar enter solicitara la o las contraseas. Por ejemplo don Juan Prez usuario de linux en su equipo de casa y en su notebook, podra copiar las fotos de sus vacaciones (que tiene en su notebook) en el pc de su casa (obviamente encendido) desde Brasil a Chile sin mayor problema.
scp fotosSaoPablo.tar.bz2 jperez@200.190.22.12:/home/jperez/fotos/vacaciones2007/ jperez@200.190.22.12's password:
la opcin para recursivo es -r con la ere minscula. El caso ms extrao para usar este comando es por ejemplo para copiar algo dentro del mismo equipo pero a otro usuario, por ejemplo, un rpm que bajamos copiarlo al directorio de root.
scp VMware-server-1.0.3-44356.i386.rpm root@localhost:/root/ root@localhost's password:
ssh
Permite acceder a una shell en un equipo remoto, dentro de las opciones interesantes esta -X que permite ejecutar de forma remota aplicaciones X11 (si el servidor lo permite). Por ejemplo, supongamos que Juan Perez, mientras est de vacaciones se entera que existe una vulnerabilidad en su servidor ftp y que actualizando queda protegido. Obviamente no va a viajar a Chile interrumpiendo la playa y caipiria... lo que hace es conectarse remotamente para actualizar.
ssh jperez@200.190.22.12
su
Hecha a correr una shell como otro usuario, es muy practico tener una consola como un usuario distinto, por ejemplo como root o como un usuario con privilegios distintos, as uno puede probar sin necesidad de loggearse una y otra vez. Por ejemplo supongamos que quiero ser jperez lo que har es:
su - jperez
una vez presionado el enter me pedir la contrasea, a menos que sea root o tenga privilegios especiales. Para convertirme en root basta con teclear
su -
yes
Este comando escribe y mientras no sea cancelado, puede sonar a un comando intil, pero gracias a las tuberas y redireccionamientos se convierte en un comando indispensable.
time
Haciendo uso del comando time, sirve para medir el tiempo que demora un comando en ejecutarse.
root@fenix:/home/knx# time ls Documentos Downloads Escritorio Imgenes Msica Plantillas programas
Tuberas y Redireccionamientos
Las tuberas o pipeline son interesantes, si bien no haremos un uso detallado de ellas aqu, la idea es dejar el concepto e inquietud para el estudio profundo personal. La gracia de esto, es que la salida de un comando puede ser la entrada de otro (tubera) o bien que en ves de mostrar algo por pantalla (o la salida o entrada predeterminada) podemos modificar el dispositivo de salida (o entrada).
Tuberas (pipeline)
Transformando el flujo de los datos... se lee de izquierda a derecha, la salida del comando de la derecha, es la entrada del comando de la izquierda, el smbolo de la tubera es | Ejemplo de tubera yes y rm -i Veamos un ejemplo, supongamos que hemos creado el alias para borrar confirmando
alias rm='rm -i'
Pero deseo borrar todos los archivos de respaldo (terminados en ~) con lo que obviamente hara un
rm *~
pero comenzara a preguntar si quiero borrar cada uno de ellos, a lo que tendra que ir respondiendo que si (algo bastante tedioso) y terminaramos odiando el rm -i ...para que ello no ocurra podemos usar una tubera y decir que si a todo gracias al comando yes.
yes | rm *~
Esto har que para cada pregunta de confirmacin, yes le dir que si. Ejemplo de tubera, bsqueda de archivo Supongamos que hemos creado un documento en OpenOffice.org (OOo) y que no sabemos donde lo dejamos (caso ficticio, nunca sucede), recordamos que el ttulo del documento tenia la palabra resumen, pues se trata del resumen del libro que hemos ledo, por lo que tenemos dos filtros de bsqueda, la palabra resumen y el formato odt, con ello hacemos lo siguiente:
find | grep resumen | grep odt
con lo que decimos que buscara, dicha bsqueda se la pasa a grep resumen (para filtrar) y lo que encuentre grep resumen se lo entrega a grep odt (para el segundo filtro).
Redireccionamiento
El simbolo que se usa para cambiar la direccin es > para direccionar una salida y de < para una entrada. Ejemplo, copiando un archivo con cat Como vimos anteriormente, cat despliega un archivo en pantalla, para copiar un archivo usando cat, lo que hacemos es direccionar la salida de pantalla a un archivo.
cat README.txt > LEEME.txt
Ejemplo, creando un archivo con cat cat no es un editor de texto, pero cuando no se le entrega el parmetro (uno o varios archivo), hace un eco de lo que escribimos en pantalla, dicho eco lo podemos redireccionar a un archivo y as crearlo con lo que estamos escribiendo.
cat > creandoArchivoConCAT.txt
Una vez hecho esto escribe lo que quieras, para terminar de escribir presiona <ctrl>+<d> lo que enviar un fin de archivo, luego puedes hacer un
cat creandoArchivoConCAT.txt
Dado a que cat despliega uno o varios archivos que se le entregue, estos se pueden concatenar en uno solo redireccionando la salida, es as como por ejemplo podemos hacer:
cat capitulo1.txt capitulo2.txt capitulo3.txt > libro.txt
A veces necesitamos ejecutar un comando mientras estamos trabajando con otro, por ejemplo, supongamos que estamos modificando los permisos de un usuario en visudo y olvidamos como era el login del usuario, en ves de cerrar visudo y abrirlo mas tarde, podemos suspender su ejecucin con control Z
jobs
Con jobs podemos ver todas las tareas que tenemos suspendidas, por ejemplo en el caso anterior, nos entrega
[1]+ Stopped visudo
fg
Lo prctico de la suspensin es poder retomar lo que hemos dejado en segundo plano, esto lo hacemos con el comando fg y el nmero del proceso suspendido. En nuestro ejemplo
fg 1
&
El & se usa para dejar inmediatamente una ejecucin en segundo plano, por ejemplo, supongamos que queremos crear un indice de nuestro equipo, pero queremos dejar el terminal libre por si necesitamos ejecutar otra accin. Lo que haramos sera:
find / > indice.txt &
bg
El comando bg permite enviar a segundo plano un proceso que se encuentre en estado de suspensin. Veamos un ejemplo: ejecutamos el siguiente comando de prueba
ping www.google.cl
Luego si deseamos , lo podemos enviar a segundo plano ( con lo que perderemos el control que tenamos sobre el proceso)
bg 1
y tendremos la siguiente salida por consola ( tambin se comenzaran a ver los mensajes de la salida del comando )
[1]+ ping www.google.cl &
Para visualizar que versin del kernel usamos actualmente, consultamos mediante el comando:
uname -a
Si queremos ver todos los paquetes de kernel que tenemos instalados, podemos utilizar:
rpm -qa| grep kernel
La versin del ncleo Linux actualmente consta de cuatro nmeros. Por ejemplo, asumamos que el nmero de la versin est compuesta de esta forma: A.B.C[.D] (ej.: 2.2.1, 2.4.13 2.6.30.6). El nmero A denota la versin del ncleo. Es el que cambia con menor frecuencia y solo lo hace cuando se produce un gran cambio en el cdigo o en el concepto del ncleo. Histricamente slo ha sido modificado dos veces: en 1994 (versin 1.0) y en 1996 (versin 2.0). El nmero B denota la subversin del ncleo. Antes de la serie de Linux 2.6.x, los nmeros pares indicaban la versin estable lanzada. Por ejemplo una para uso de fabricacin, como el 1.2, 2.4 2.6. Los nmeros impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de produccin. Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los nmeros pares o impares con respecto a las nuevas herramientas desarrolladas en la misma serie del ncleo. Linus Torvalds dictamin que este ser el modelo en el futuro.
tem 4. El kernel de Linux - 35
El nmero C indica una revisin mayor en el ncleo. En la forma anterior de versiones con tres nmeros, esto fue cambiado cuando se implementaron en el ncleo los parches de seguridad, bugfixes, nuevas caractersticas o drivers. Con la nueva poltica, solo es cambiado cuando se introducen nuevos drivers o caractersticas; cambios menores se reflejan en el nmero D. El nmero D se produjo cuando un grave error, que requiere de un arreglo inmediato, se encontr en el cdigo NFS de la versin 2.6.8. Sin embargo, no haban otros cambios como para lanzar una nueva revisin (la cual hubiera sido 2.6.9). Entonces se lanz la versin 2.6.8.1, con el error arreglado como nico cambio. Con 2.6.11, esto fue adoptado como la nueva poltica de versiones. Bug-fixes y parches de seguridad son actualmente manejados por el cuarto nmero dejando los cambios mayores para el nmero C.
Normalmente despus del nmero de la versin del kernel se especifica la arquitectura, esta puede ser algna de las siguientes: x86_64 para las arquitecturas AMD64 e Intel EM64T ia64 para la arquitectura Intel Itanium. ppc64pseries para la arquitectura IBM eServer pSeries. s390 para la arquitectura IBM S/390. s390x para la arquitectura IBM eServer System z. i686 para sistemas Intel Pentium II, Intel Pentium III, Intel Pentium 4, AMD Athlon y sistemas AMD Duron.
GRUB
Confirme que el archivo /boot/grub/grub.conf contiene una seccin title con la misma versin que el paquete kernel que acaba de instalar
# Note that you do not have to rerun grub after making changes to this file # NOTICE: # # # # You have a /boot partition. This means that
all kernel and initrd paths are relative to /boot/, eg. root (hd0,0) kernel /vmlinuz-version ro root=/dev/hda2 initrd /initrd-version.img
#boot=/dev/hda default=1 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Enterprise Linux (2.6.9-5.EL) root (hd0,0) kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/ initrd /initrd-2.6.9-5.EL.img title Red Hat Enterprise Linux (2.6.9-1.906_EL) root (hd0,0) kernel /vmlinuz-2.6.9-1.906_EL ro root=LABEL=/ initrd /initrd-2.6.9-1.906_EL.img
Si ha creado una particin separada para /boot/ la ruta al kernel y la imagen initrd sern relativas a /boot/. Observe que el nuevo kernel no est configurado para ser el kernel por defecto. Para configurar GRUB para que arranque el nuevo kernel por defecto, cambie el valor de la variable default al nmero del ttulo de la seccin que contiene el nuevo kernel. La cuenta comienza con 0. Por ejemplo, si el nuevo kernel es el primer ttulo en la seccin, configure default a 0. Comience evaluando el nuevo kernel reiniciando el computador y vigilando los mensajes para asegurarase de que el hardware es detectado adecuadamente.
Este estndar del sistema de archivos Linux sigue el mismo principio bsico que la mayora de los sistemas de archivos UNIX siguen, sin embargo que este estndar no intenta concordar en cada aspecto posible con algna implementacin particular del sistema UNIX. De cualquier forma, muchos de los aspectos de este estndar estn basados en ideas encontradas en UNIX y sistemas similares a UNIX. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema UNIX no est ligado de una forma directa con la estructura del Hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 7 discos duros para crear las unidades c:, d: o m:. Todos el sistema de archivos de UNIX tiene un origen nico la raz o root representada por /. Bajo este directorio se encuentran todos los archivos a los que puede acceder el sistema operativo. Estos archivos se organizan en distintos directorios cuya misin y nombre son estndar para todos los sistema UNIX.
/ Raz del sistema de archivos. /dev Contiene archivos del sistema representando los dispositivos que estn fsicamente instalados en el ordenador. /etc Este directorio esta reservado para los archivos de configuracin del sistema. En este directorio no debe aparecer ningn archivo binario (programas). Bajo este deben aparecer otros dos subdirectorios: /etc/X11 archivos de configuracin de X Window /etc/skel archivos de configuracin bsica que son copiados al directorio del usuario cuando se crea uno nuevo. /lib Contiene las libreras necesarias para que se ejecuten los programas que residen en /bin (no las libreras de los programas de los usuarios). /proc Contiene archivos especiales que o bien reciben o envan informacin al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus archivos). /sbin Contiene programas que son nicamente accesibles al superusuario o root. /usr Este es uno de los directorios ms importantes del sistema puesto que contiene los programas de uso comn para todos los usuarios. Su estructura suele ser similar a la siguiente: /usr/bin Programas de uso general, lo que incluye el compilador de C/C++. /usr/doc Documentacin general del sistema. /usr/etc archivos de configuracin generales. /usr/include archivos de cabecera de C/C++ (.h). /usr/lib Libreras generales de los programas. /usr/sbin Programas de administracin del sistema. /usr/src Cdigo fuente de programas. /var Este directorio contiene informacin temporal de los programas (lo cual no implica que se pueda borrar su contenido)
Libre
Los primeros 1024 bytes del dispositivo de bloques no se utilizan para nada. La idea es que el principio de la particin suele utilizarse para instalar algn tipo de sistema de arranque o de tabla de particiones. Otros sistemas, como FAT, hacen malabarismos para integrar varias estructuras no relacionadas en el primer sector del disco sin que se pisen entre s.
Superbloque
En la posicin 1024 de la particin se encuentra el superbloque. Este contiene informacin clave del sistema, tanto esttica (tamao de las estructuras) como dinmica (espacio libre). Tan importante es esta estructura que se mantienen copias de ella desperdigadas por el disco, de manera que si se destruyera el comienzo del sistema se pudiera recuperar la mayor informacin posible (ms sobre eso ms adelante). Como unas cuantas lneas de cdigo valen ms que mil palabras, aqu est la estructura del superbloque escrita en C (ntese que todos los datos en disco se guardan en Little-Endian, aunque no se indique en el cdigo):
struct Superblock { uint32_t inodes; uint32_t blocks; uint32_t reserved_blocks; uint32_t free_blocks; uint32_t free_inodes; uint32_t first_data_block; uint32_t log_block_size; uint32_t fragment_size; uint32_t blocks_per_group; uint32_t fragments_per_group; uint32_t inodes_per_group; uint32_t mount_time; uint32_t write_time; uint16_t mount_count; uint16_t max_mount; uint16_t magic; uint16_t state; uint16_t errors; uint16_t minor; uint32_t last_check; uint32_t check_int; uint32_t creator_os; uint32_t rev_level; uint16_t resv_uid; uint16_t resv_gid; //rev_level == 1 uint32_t first_inode; uint16_t inode_size; uint16_t block_group; uint32_t feature_compat; uint32_t feature_incompat; uint32_t feature_ro_compat; uint8_t uuid[16]; };
Los campos a partir del comentario rev_level == 1 solo existen si rev_level es mayor o igual a 1 (tu disco es realmente viejo si tienes rev_level a 0). Y hay ms campos a continuacin de estos, pero que solo se usan con features particulares y no las comentar aqu.
Los campos del superbloque significan lo siguiente: inodes: El nmero total de inodos en el sistema de archivos. blocks: El nmero total de bloques en el sistema de archivos. reserved_blocks: El nmero de bloques reservados para el usuaro root. free_blocks: El nmero de bloques libres. free_inodes: El nmero de inodos libres. first_data_block: El primer bloque utilizable para datos. log_block_size: El logaritmo base 2 del tamao de bloque, menos 10. Es decir, 0 es 1024, 1 es 2048, 2 es 4096, 3 es 8192, etc. fragment_size: Los fragmentos son una obsolescencia, as que esto no sirve para nada. blocks_per_group: El nmero de bloques de datos por grupo de bloques. fragments_per_group: Vase dos ms arriba. inodes_per_group: El nmero de inodos por grupo de bloques. mount_time: La fecha/hora de la ltima vez que se mont el sistema en lectura/escritura (como time_t). write_time: La fecha/hora de la ltima vez que se desmont el sistema habindolo montado como lectura/escritura. mount_count: El nmero de veces que se mont el sistema desde el ltimo chequeo. max_mount: Cuando el sistema se monta este nmero de veces se fuerza un chequeo de mantenimiento. magic: Un nmero fijo que identifica esta estructura. Debe ser 0xEF53. state: El estado general del sistema. 1 es correcto, otro valor indica errores. errors: Qu hacer si se encuentran errores en el formato de disco. 1 indica continuar como si nada; 2 conmuna el sistema a solo lectura; 3 genera un panic y bloquea el sistema operativo. Puede cambiarse con la opcin de montaje errors. minor: El nmero menor de la revisin del formato. Bsicamente no sirve para nada. last_check: La fecha/hora del ltimo chequeo. check_int: Si el ltimo chequeo ha sido hace ms de este nmero de segundos se fuerza un chequeo de mantenimiento. creator_os: El sistema operativo en el que se cre este sistema. 0 es Linux, 1 es Hurd, 3 es FreeBSD. rev_level: Si es 1 o superior existen los campos posteriores a resv_gid. Es 1 siempre salvo en sistemas prehistricos. resv_uid: El usuario para el que se reservan los reserved_blocks. Normalmente es 0 (root) resv_gid: Lo mismo que el anterior, pero el grupo. first_inode: El primero inodo disponible para uso general. Casi siempre es 11, que es el valor por defecto si rev_level==0.
tem 5. Sistemas de archivos - 41
inode_size: El tamao de la estructura de inodo en disco. Suele ser 128 o 256, pero puede ser cualquier potencia de 2 mayor. Si rev_level==0 es 128. block_group: Identifica la copia de este superbloque. Solo es til para el diagnsticos. feature_compat: Features compatibles. Vase ms abajo. feature_incompat: Features incompatibles. Vase ms abajo. feature_ro_compat: Features compatibles en modo de solo lectura. Vase ms abajo.
Features
Se llaman features (o caractersticas) a las modificaciones en el formato de archivos respecto a la implementacin Ext2 original. Se clasifican en tres tipos segn cmo afectan a la compatibilidad hacia atrs, es decir, a cmo debe comportarse un driver que no conozca esa feature. Compatibles: El driver puede funcionar perfectamente ignorando esta caracterstica. Incompatibles: El driver no debe utilizar el sistema de archivos si no conoce esta caracterstica. RO-compatibles: (ReadOnly o solo lectura) El driver puede leer el sistema de archivos ignorando esta caracterstica, pero no debe modificarlo. Cada una de estas features se representa con un bit en el campo del superbloque correspondiente. algnas features se pueden activar y/o desactivar de un sistema de archivos existente usando el comando tune2fs. La diferencia entre los distintos drivers Ext2, Ext3 y Ext4 radica principalmente en las features disponibles y activadas por defecto. As, Ext3 es bsicamente igual que Ext2, pero con journal; y Ext4 es Ext3 con extents y flex_bg.
Los campos de esta estructura son: block_bitmap: El nmero de bloque donde comienza el bitmap de bloques de datos de este grupo. inode_bitmap: El nmero de bloque donde comienza el bitmap de inodos de este grupo. inode_table: El nmero de bloque donde comienza la tabla de inodos de este grupo. free_blocks_count: El nmero de bloques de datos libres en este grupo. free_inodes_count: El nmero de inodos libres en este grupo.
tem 5. Sistemas de archivos - 42
used_dirs_count: Cantos directorios hay en este grupo. dummy: Relleno para alinear la estructura. algnas features utilizan algno de estos bytes.
La idea es que el driver disponga de estos datos para decidir en qu grupo de bloques crear un archivo minimizando el riesgo de fragmentacin.
Grupo de bloques
Un grupo de bloques viene descrito por el descriptor de grupo de bloques correspondiente. Los bloques de datos que corresponden a un grupo no se guardan en el descriptor porque se deducen directamente del campo blocks_per_group del superbloque: el grupo 0 va del 0 a blocks_per_group-1; el grupo 1 va de blocks_per_group a 2*blocks_per_group 1; el grupo N va de N*blocks_per_group a (N+1)*blocks_per_group 1. Naturalmente, puesto que los bitmaps y los inodos tambin son parte del grupo se solapan con los bloques de datos. Para evitar que se machaquen estas estructuras se marcan permanentemente como ocupados en el block_bitmap al crear el sistema de archivos. En algnos grupos de bloques, al principio de los bloques de datos se guarda una copia del superbloque y de los descriptores de grupos. Naturalmente, en el block_bitmap se marcan estos bloques como ocupados. La longitud de las estructuras de un grupo de bloques se deduce de campos del superbloque: el bitmap de bloques tiene blocks_per_group bits, alineado hacia arriba a un nmero entero de bloques; el bitmap de inodos tiene un inodes_per_group bits, alineado de la misma manera; la tabla de inodos tiene inodes_per_group inodos de inode_size bytes cada uno, alineado igualmente.
Tabla de inodos
La tabla de inodos de un grupo de bloques consiste simplemente en un array de inodos, uno tras otro, de inode_size bytes cada uno. La estructura de un inodo es:
struct INode { uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint16_t uint16_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t uint32_t }; mode; uid; size; atime; ctime; mtime; dtime; gid; links; nr_blocks; flags; reserved1; blocks[12]; iblock; iiblock; iiiblock; generation; file_acl; size_hi; reserved2[4];
Los contenidos de esta estructura son intencionadamente similares a varios de los campos de la estructura stat devuelta por las llamadas al sistema stat y fstat (vase man 2 stat para ms informacin). El significado de los campos es el siguiente: mode: El tipo de inodo y los permisos, en un campo de bits. Los 9 bits menos significativos son los permisos (3 para el propietario, 3 para el grupo y 3 para otros), otros 3 bits son para opciones varias, y 4 bits ms indican el tipo de inodo. uid: El identificador de usuario (uid) propietario del archivo.
tem 5. Sistemas de archivos - 43
size: Los 32 bits menos significativos del tamao del archivo, en bytes. atime: La fecha/hora del ltimo acceso a los datos del archivo. ctime: La fecha/hora del ltimo cambio al contenido de esta estructura (el inodo, no los datos del archivo). mtime: La fecha/hora del ltimo cambio a los datos del archivo. dtime: La fecha/hora en la que se borr el inodo. Debe ser 0 para inodos existentes y distinto de 0 para inodos borrados. gid: El identificador de grupo (gid) propietario del archivo. links: El numero de enlaces (links) a este inodo. Se refiere a hard links, no links simblicos. nr_blocks: El nmero de bloques total que ocupa este inodo. Es, ms o menos, el dato devuelto por el comando du. flags: Bits varios. La mayora solo pueden existir si est activada la feature correspondiente. reserved1: Este valor se usa en algnos sistemas operativos, para tareas particulares, pero en Linux no se usa para nada. blocks: Nmeros de bloques de datos. iblock: Nmero de bloque indirecto. iiblock: Nmero de bloque doble-indirecto. iiiblock: Nmero de bloque triple-indirecto. generation: Este es un nmero secuencial que se incrementa cada vez que se reutiliza el inodo despus de borrarlo. Lo necesitan algnos programas como NFS. file_acl: El nmero de bloque donde se guardan los attributos extendidos, si es que existen. size_hi: Los 32 bits ms significativos del tamao del archivo (para archivos de ms de 4 GB). reserved2: Esto sirve para hacer el tamao de la estructura exactamente 128 bytes. Estos y los siguientes, si el inodo es mayor de 128 sirven para guardar attributos extendidos y otra informacin adicional.
Los campos blocks, iblock, iiblock y iiiblock merecen una mencin especial. Los primeros 12 bloques de datos se guardan directamente en los valores blocks[0] a blocks[11]. A archivos ms grandes se les asigna un bloque de datos llamado bloque indirecto<, y se guarda su nmero en iblock. Este bloque se llena con los siguientes nmeros de bloques de datos del archivo. As, si el tamao de bloque es de 4 KB, y puesto que cada nmero de bloque son 4 bytes, en el bloque indirecto caben 1024 referencias a bloques de datos. Para archivos que necesiten ms espacio se utiliza un bloque doble-indirecto y se guarda su nmero en iiblock. Este contiene nmeros de bloques indirectos, as que con bloques de 4 KB puede referenciar 1024 bloques indirectos que son 1024 * 1024 = 1048576 bloques de datos. Y para archivos que necesiten an ms espacio existe el bloque triple-indirecto, que es fcil imaginar para qu sirve. Como optimizacin especial, si el inodo es un link simblico, y el tamao es menor de 60 bytes (casi todos lo son) entonces no se guardan los datos en un bloque de datos, sino que se utiliza directamente el array blocks y los tres campos siguientes como si fuera un array de bytes. Tiene sentido hacerlo para los link simblicos porque son inmutables, es decir, una vez creados no se pueden modificar.
tem 5. Sistemas de archivos - 44
Directorios
Un directorio es similar a un archivo ordinario, excepto que el campo mode del inodo indica que es un directorio ((mode & 0170000) == 0040000) y que el contenido de datos debe tener un formato particular. Bsicamente contiene una lista de entradas de directorio o (direntries), que asocian un nombre con un nmero de inodo. Los directorios tienen un tamao variable, pero cumplen la siguiente estructura:
struct DirEntry { uint32_t inode; uint16_t entry_len; uint8_t name_len; uint8_t type; char name[]; };
inode es el nmero de inodo al que corresponde esta entrada de directorio. Contando entry_len bytes desde el comienzo de una entrada de directorio se encuentra la siguiente, hasta encontrar una de longitud 0 que marca el final. name_len es el nmero de bytes en del nombre (debe ser menor o igual a entry_len 8, adivina por qu). Finalmente, type indica de qu tipo es el inodo al que apunta esta direntry (puede ser 0 si no se conoce). El uso de este campo est condicionado a la feature filetype, que est presente casi siempre.
tem 6. Uso de vi
El vi es un editor de textos. Se puede observar en la pantalla una ventana del archivo que se esta editando, y los cambios que se hagan se veran en pantalla. La sintaxis es:
vi archivo
y el archivo se editar en pantalla. Para las distintas opciones que ir detallando ms abajo, hay que apretar primero Esc, tanto para comenzar a usar la opcin como para terminar la anterior.
Para insertar
I Inserta texto al comienzo de la lnea. a Inserta texto despues del cursor. A Inserta texto al final de la lnea. o Inserta lineas de texto despues de la lnea actual. O Inserta lineas de texto antes de la lnea actual.
tem 6. Uso de vi - 46
Salidas
:x,y w archivo :w :w archivo :q :q! :wq :x :zz :e! :e archivo :e# Escribe las lneas entre x e y en el archivo dado. Graba. Graba con ese nombre de archivo. Sale (antes se debe grabar). Sale sin grabar los cambios. Graba y sale. Graba y sale. Graba y sale. Recupera lo ultimo que se hizo (Undo total). Abre un segundo archivo sin cerrar el que tenemos en pantalla. Vuelve al primer archivo
Se puede poner nombre al buffer precediendo el comando por " y cualquier letra. Se pueden abrir hasta 9 buffers.
dfx
Comandos desde vi
:! comando :!ls -l :r! comando :& Ejecuta el comando. Ejecuta el comando y lo lee. Lee la salida del comando. Repite el ltimo comando :S efectuado.
Sustituciones
:S/vieja cadena/nueva cadena/opciones Sustituye una cadena por otra. Si apretamos n, sustituye la siguiente cadena vieja por la nueva.
Opciones
/g /c /p /gc :& Cambia todas las apariciones de la vieja cadena en la lnea. Solicita confirmacin de cada cambio. Imprime las lneas corregidas. Lo hace todo globalmente pero pide confirmacin ante cada sustitucin. Repite el ltimo comando :S efectuado.
Tambin se puede dar la orden como una expresin regular, por ejemplo as: :1,$ s/cadena vieja/cadena nueva/gc Donde 1,$ le dice que lea el texto desde el primer caracter hasta el final ($) y que vaya sustituyendo a la cadena vieja por la cadena nueva, pero pidiendo confirmacin cada vez que lo vaya a hacer.
tem 6. Uso de vi - 48
con lo que crea un usuario en /home/ que es el directorio predeterminado para los usuarios, al ejecutar un ls -al /home/ deberamos visualizarlo en una linea como sigue:
drwxr-xr-x drwxr-xr-x drwx-----12 root 23 root root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..
Ahora, puede que se pregunten, y eso que me dice? o eso que es?, en palabras simples las dos primeras lineas se refieren al directorio actual y al directorio padre respectivamente, la tercer linea se refiere al directorio de trabajo de nuestro usuario. De izquierda a derecha nos encontramos con: drwx------: d = directorio, rwx = permiso del usuario de lectura(r), escritura(w), ejecucin(x), ------ = sin permiso para el grupo y para los demas. 4: nmero de enlaces duros. usuario: dueo de la carpeta. usuario: grupo al que pertenece. 4096: tamao en bytes. dic 14 13:14: marca horaria. usuario: nombre de la carpeta. En pocas palabras, el usuario usuario tiene una carpeta con su nombre y con un grupo propio con su nombre. Esto puede llegar a ser prctico si queremos que cada usuario sea especial, pero no en casos en que deseamos agrupar usuarios. Algo que no debemos olvidar cuando creamos un usuario es asignarle una clave, esto, de forma simple se puede hacer con el comando passwd de la siguiente manera:
passwd usuario
Esto a continuacin preguntar dos veces la clave, y si coinciden tienes una nueva clave para tu usuario.
Ahora, cabe destacar que no me sirve tener grupos si no creo usuarios que pertenezcan a ese grupo.
Con ello al hacer un ls -al /home/ nos debera dar como resultado:
drwxr-xr-x drwxr-xr-x drwx-----drwx-----12 root 23 root 4 padre root root 4096 dic 13 22:56 . 4096 dic 14 11:19 ..
Con ello leemos que la carpeta padre tiene por propietario al padre, pero que pertenece al grupo familia. Ahora, al tener mas de un usuario dentro del mismo grupo, por ejemplo a padre, madre e hijo dentro del grupo familia pueden compartir archivos y carpetas entre ellos protegindola de que las visitas puedan ver su contenido.
familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre
4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino
Al mirar este resultado vemos que existen los grupos y los usuarios que hemos descrito anteriormente, dado a que la 4 columna me muestra los grupos, la 3 los propietarios y la ultima el nombre de sus carpetas (que coincide con su nombre de usuario). Ahora, en la primer columna podemos notar el tipo y los permisos del archivo o directorio, la primer letra indica que es, lo ms comn es: d: directorio o carpeta. -: archivo l: link o enlace simblico. Existen otros tipos, pero no los detallar aqu. Los siguientes caracteres de esta columna lo podemos dividir en tres grupos de a tres, cada grupo esta compuesto por tres tipos de permiso: Activo r: lectura w: escritura x: ejecucin No activo -: sin permiso Estos permisos se repiten en este orden (rwx) para el usuario, para el grupo y para los otros. Teniendo lo anterior relativamente claro, de seguro se preguntan cmo cambiar los permisos?, los permisos se cambian con el comando chmod. Para agregar un permiso lo hacemos con + y para quitarlo con - especificando a quien, que permiso y a quien, por ejemplo, para agregar permiso de lectura y ejecucin al grupo al usuario padre se hara as:
cd /home/ chmod g+rx padre
familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre
4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino
Al mirar este resultado podemos apreciar como figuran ahora r y x en el permiso para el grupo. Como hemos hecho esto, hijo y madre pueden entrar a ver el contenido de la carpeta del usuario padre, pero no vecino y vecina (ni usuario), pues pertenecen a distinto grupo, ahora, por ejemplo, si el vecino quiere que los del grupo familia (o cualquiera que no pertenece a su grupo) vean su carpeta, el debe hacer lo siguiente:
cd /home/ chmod o+rx vecino
familia 4096 dic 14 13:59 hijo familia 4096 dic 14 13:58 madre familia 4096 dic 14 13:57 padre
4 usuario usuario 4096 dic 14 13:14 usuario 4 vecina 4 vecino visita visita 4096 dic 14 14:01 vecina 4096 dic 14 14:00 vecino
Con ello, vemos que vecino le ha dado permiso a otros para ver el contenido de su carpeta, es decir, madre, padre, hijo y usuario pueden ver lo de vecino, pero no vecina, pues vecina pertenece a su mismo grupo de vecino. Cabe destacar que uno, como dueo de su carpeta y de los archivos que en ella estn, se puede cambiar permisos sin necesidad de ser root, pero no es posible cambiar el permiso de una carpeta o archivo que uno no haya creado, para ello si son necesarios permisos especiales.
Como se pueden dar cuenta, la linea empieza con el usuario al que se desea habilitar, seguida por el host en donde lo autorizamos (si es uno solo da lo mismo localhost o ALL) luego, decimos que no le solicitar contrasea para ejecutar los comandos y finalmente la lista de comandos separados por coma (,). Despus de esto, el usuario padre, por ejemplo, puede cambiarle la contrasea al hijo mediante el comando:
sudo /usr/bin/passwd hijo
Notemos que la diferencia entre dar permiso a un usuario v/s un grupo en lo nico que cambia es que al grupo se le antepone el caracter %
tem 8. Redes
Introduccin
Dentro de los protocolos de red, el ms comn es TCP/IP, TCP/IP fue desarrollado y presentado por el Departamento de Defensa de EE.UU. En 1972 y fue aplicado en ARPANET, que era la red de rea extensa del Departamento de Defensa como medio de comunicacin para los diferentes organismos de EE.UU. La transicin hacia TCP/IP en ARPANET se concret en 1983. Se conoce como familia de protocolos de Internet al conjunto de protocolos de red que son implementados por la pila de protocolos sobre los cuales se fundamenta Internet y que permiten la transmisin de datos entre las redes de computadoras. Los dos protocolos ms importantes, y que fueron tambin los primeros en definirse y tambin los ms utilizados, son TCP (Protocolo de Control de Transmisin o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol), de ah que se denomine tambin como Conjunto de Protocolos TCP/IP. Los tipos de protocolos existentes superan los cien, ente los cuales podemos mencionar como los ms conocidos a HTTP, FTP, SMTP, POP, ARP, etc. TCP/IP es la plataforma que sostiene Internet y que permite la comunicacin entre diferentes sistemas operativos en diferentes computadoras, ya sea sobre redes de rea local (LAN) o redes de rea extensa (WAN).
Niveles de pila.
En la actualidad contina la discusin respecto a si el modelo TCP/IP de cinco niveles encaja dentro del modelo OSI de siete niveles.
Niveles 5 4 3 2 1 7 6 5 4 3 2 1 Nombre Aplicacin Transporte Red Enlace Fsico. Modelo OSI Aplicacin Presentacin Sesin Transporte Red Enlace de datos Fsico Modelo TCP/IP
El Conjunto de Protocolos TCP/IP (y su correspondiente pila) han sido utilizados antes de que se estableciera el modelo OSI (Open Systems Interconnection) y desde entonces el modelo TCP/IP ha sido comparado con el modelo OSI tanto en libros como en instituciones educativas. Ambas se relacionan pero no son equiparables. El modelo OSI utiliza siete niveles, mientras que el modelo TCP/IP utiliza cinco niveles. Los dos niveles que hacen la diferencia en el Modelo OSI son el Nivel de Presentacin y el Nivel de Sesin, mismo que podran ser equivalentes al Nivel de Aplicacin del modelo TCP/IP.
tem 8. Redes - 54
El modelo TCP
Nivel 5 Nombre Aplicacin Detalle Se compone de diversos protocolos de servicios como: DNS (Domain Name System) TLS/SSL (Transport Layer Security) TFTP (Trivial File Transfer Protocol) FTP (File Transfer Protocol) HTTP (Hyper Text Transfer Protocol) IMAP (Internet Messsage Access Protocol) NNTP (Network News Transfer Protocol) POP3 (Post Office Protocol) SIP (Session Iniciation Protocol) SMTP (Simple Mail Transfer Protocol) SNMP (Simple Network Management Protcol) SSH (Secure Shell) BitTorrent RTP (Real-time Transport Protocol) ENRP (Endpoint Handlespace Redundancy Protocol)
Los protocolos de encaminamiento como BGP (Border Gateway Protocol) y RIP (Routing Information Protocol) que utilizan transporte por TCP y UDP respectivamente pueden ser considerados como parte de esta capa. 4 Transporte Se compone de diversos protocolos de servicios como: TCP (Transmision Control Protocol) UDP (User Datagram Protocol), DCCP (Datagram Congestion Control Protocol) SCTP (Stream Control Transmision Protococol) IL (Internet Link Protocol, similar a TCP pero ms simple) RUDP (Reliable User Datagram Protocol), etc.
Los protocolos como OSPF (Open Shortest Path First), que corren sobre IP, pueden ser tambin considerados como parte de esta capa. ICMP (Internet Control Message Protocol) e IGMP (Internet Group Management Protocol) que tambin utilizan IP pueden ser considerados parte del Nivel de Red. 3 Red Se compone de diversos protocolos de servicios como IP (incluyendo IPv4 e IPv6). Protocolos como ARP (Address Resolution Protocol) y RARP (Reverse Address Resolution Protocol) operan por debajo de IP, pero arriba del Nivel de enlace, de modo que pertenecen a un punto intermedio entre el Nivel de Red y el Nivel de Enlace. Compuesto de protocolos como: 1 Fsico Ethernet Wi-Fi Token ring PPP (Point-to-Point Protocol) SLIP (Serial Line Internet Protocol) FDDI (Fiber Distributed Data Interface) ATM (Asynchronous Transfer Protocol) Frame Relay SMDS (Switched Multi-megabit Data Services)
Enlace
Medio fsico.
tem 8. Redes - 55
/etc/hosts
El principal propsito de este archivo es resolver los nombres de hosts que no pueden ser resueltos de otra manera. Tambin se puede usar para resolver nombres de hosts en pequeas redes sin servidor DNS. Sin tener en cuenta el tipo de red en que se encuentre el ordenador, este archivo debe contener un lnea que especifica la direccin IP del dispositivo loopback (127.0.0.1) como por ejemplo localhost.localdomain. Para mayor informacin consulte la pgina man de hosts.
/etc/resolv.conf
Este archivo especifica las direcciones IP de los servidores DNS y el dominio de bsqueda. A menos que se haya configurado para algo diferente, los scripts de inicializacin de la red llenan este archivo. Para mayor informacin consulte la pgina man de resolv.conf.
/etc/sysconfig/network-scripts/ifcfg-<interface-name>
Para cada interfaz de red, existe un script de configuracin de interfaz correspondiente. Cada uno de estos archivos proporcionan informacin especfica para una interfaz de red en particular. Uno de los archivos de interfaz ms comunes es ifcfg-eth0, que controla la primera red Ethernet de la tarjeta de interfaz o NIC en el sistema. En un sistema con varias tarjetas de red, hay varios archivos ifcfg-eth<X> (donde <X> es un nmero nico correspondiente a una interfaz especfica). Debido a que cada dispositivo tiene su propio archivo de configuracin, un administrador puede controlar cmo cada interfaz funciona individualmente.
El siguiente es un ejemplo de un archivo ifcfg-eth0 para un sistema que usa una direccin IP fija:
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes NETWORK=10.0.1.0 NETMASK=255.255.255.0 IPADDR=10.0.1.27 USERCTL=no
Los valores requeridos en un archivo de configuracin de interfaz pueden cambiar basndose en otros valores. Por ejemplo, el archivo ifcfg-eth0 para una interfaz que use DHCP se ver bastante diferente ya que la informacin IP es proporcionada por el servidor DHCP:
DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes
Sin embargo, tambin es posible modificar manualmente los archivos de configuracin para una interfaz de red dada. Los parmetros ms comunes del archivo de configuracin del script de interface son: BOOTPROTO=<none | bootp | dhcp> BROADCAST=<address> DEVICE=<name> GATEWAY=<address> HWADDR=<MAC-address>, la MAC-address posee la forma AA:BB:CC:DD:EE:FF IPADDR=<address> NETMASK=<mask> NETWORK=<address> ONBOOT=<yes | no> PEERDNS=<yes | no> Modifica /etc/resolv.conf si est activada. Si usa DCHP, yes es predeterminada. USERCTL=<yes | no> Los usuarios que no sean root pueden controlar este dispositivo. Es posible configurar muchas de estas opciones de forma automatizada mediante el comando
system-config-network
Si se conecta a una red, como Internet, a travs de la conexin de acceso telefnico, necesitar un archivo de configuracin para la interfaz. Los archivos de interfaz PPP son nombrados utilizando el siguiente formato: ifcfg-ppp<X> donde <X> corresponde al nmero de interfaz. El archivo de configuracin de la interfaz PPP es creado automticamente cuando se usa wvdial, la Herramienta de Administracin de Red o Kppp para crear una cuenta de marcado telefnico, o bien pppoe-setup para una red de marcado. Tambin es posible crear y modificar este archivo manualmente.
tem 9. Configuracin de red - 57
El Protocolo SLIP (siglas en ingls de Serial Line Internet Protocol) es otra interfaz de acceso telefnico menos usada. Los archivos SLIP tienen nombres de archivos de configuracin de interfaz tales como ifcfg-sl0. Otras opciones que se pueden utilizar en estos archivos incluyen: DEFROUTE=<yes | no> Establece esta interfaz como la ruta por defecto o no. DEMAND=<yes | no> Se debe establecer una conexin que inicie cuando alguien intente usarla IDLETIMEOUT=<value> donde value es el nmero de segundos sin actividad antes que se desconecte INITSTRING=<string> donde <string> es la cadena de inicializacin se pasa al dispositivo del mdem. Esta opcin se utiliza sobre todo en relacin con las interfaces SLIP. LINESPEED=<value> donde <valor> es la velocidad de transmisin del dispositivo. Posibles valores estndar incluyen 57600, 38400, 19200, y 9600. MODEMPORT=<device> MTU=<value> donde <value> es la unidad mxima de transferencia (MTU) configurada para la interfaz. La MTU hace referencia al mayor nmero de bytes de datos pueden llevar a un marco, sin contar la informacin del encabezado. En algnas situaciones de acceso telefnico, configurarlo hasta un valor de 576 resultados en menos paquetes perdidos y una ligera mejora para el rendimiento de una conexin. NAME=<name> donde <name> es la referencia al ttulo dado a un conjunto de configuraciones de conexin de acceso telefnico. PAPNAME=<name> donde NOMBRE es el nombre de usuario dado durante el protocolo de autenticacin de contrasea (PAP) de cambio que se produce para permitir conexiones a un sistema remoto. PERSIST=<yes | no> Esta interfaz debera mantenerse siempre activa, incluso si se desactiva tras una desconexin del mdem o no WVDIALSECT=<name> donde <name> esta asociando con la interfaz de configuracin en /etc/wvdial.conf.
Tras haber verificado que se ha especificado una interfaz y que al usuario que ha ejecutado la peticin se le permite controlar la interfaz, el script correcto activa o desactiva la interfaz. Los siguientes scripts de control de interfaz son bastante comunes: ifup-aliases : Configura los alias IP desde los archivos de configuracin de la interfaz cuando se asocia ms de una direccin IP con una interfaz. ifup-ippp y ifdown-ippp : Activa y desactiva una interfaz ISDN. ifup-ipsec y ifdown-ipsec : Activa y desactiva una interfaz IPsec. ifup-ipv6 y ifdown-ipv6 : Se usa para activar y desactivar una interfaz IPv6. ifup-ipx : Activa y desactiva una interfaz IPX. ifup-plip : Activa y desactiva una interfaz PLIP. ifup-plusb : Activa y desactiva una interfaz USB para conexiones de red. ifup-post y ifdown-post : Contiene comandos que son ejecutados despus de que una interfaz ha sido activada o desactivada. ifup-ppp y ifdown-ppp : Activa o desactiva una interfaz PPP. ifup-routes : Aade rutas estticas para un dispositivo como si se activase su interfaz. ifdown-sit y ifup-sit : Contiene llamadas de funciones relacionadas con la activacin y desactivacin de un tnel IPv6 dentro de una conexin IPv4. ifup-sl y ifdown-sl : Activa o desactiva una interfaz SLIP. ifup-wireless : Activa una interfaz inalmbrica.
La forma ms fcil de manipular todos los scripts de red simultneamente es con el comando /sbin/service en el servicio de red (/etc/rc.d/init.d/network), como se ilustra en el comando siguiente:
/sbin/service network <action>
Donde, <action> puede ser: start, stop, o restart. Para ver una lista de los dispositivos configurados y las interfaces de red actualmente activas, utilice el comando:
/sbin/service network status
Donde <options> pueden ser: start : inicia iptables cargando las reglas stop : detiene iptables restart / force-reload : carga nuevamente las reglas status : revisa si iptables esta activo o no panic : cierra todos los puertos al exterior (nunca se debe ejecutar de forma remota pues se pierde el control de la mquina)
El comando iptables
iptables [-t table] [options] [parameters]
Donde las tablas ms comunes son: filter : tabla de filtros nat : Reglas de redireccionamiento o nateo Las opciones ms comunes son: -A : Agregar. -D : Borrar. -R : Remplazar. -L : Listar. -F : Borrar todas las reglas.
-Z : Colocar los contadores de paquetes en cero. Los parmetros ms comunes son: -p protocolo : el protocolo puede ser tcp, udp, icmp, esp, ah, entre otros. -s address[/mask] : direcciones de origen -d address[/mask] : direcciones de destino -i interface : interfaz de entrada -o interface : interfaz de salida
-j target : especifica el target de la regla, donde los target pueden ser ACCEPT, DROP, REJECT, MASQUERADE, DNAT, SNAT, MARK, entre otros. Para mayor informacin de cada una de las opciones, parmetros y tablas se recomienda fuertemente revisar el manual de iptables.
tem 10. Configuracin de Firewall - 60
Ejemplos:
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
En la primer linea abrimos el puerto 80 de forma universal, en la segunda, abrimos el puerto 22 solamente para la red privada 192.168.1.0/24
iptables-save e iptables-restore
Una ves que son creadas las reglas, estas se pueden revisar y si uno est conforme guardar en un archivo de reglas de iptables, estas reglas se pueden restaurar en cualquier momento desde el archivo. El comando iptables-save despliega por pantalla el esquema de archivo de configuracin, si uno desea guardar en un archivo se utiliza el redireccionamiento de la salida.
iptables-save > /etc/sysconfig/iptables
De similar forma iptables-restore espera el esquema desde la entrada estndar, sin embargo, se le puede entregar el archivo mediante direccionamiento.
iptables-restore < /etc/sysconfig/iptables
Configuracin Manual
La configuracin manual se hace a travs de un editor de texto (como vi), editando los archivos involucrados en la configuracin del firewall, dichos archivos son: /etc/sysconfig/iptables /etc/sysconfig/iptables-config /etc/sysconfig/ip6tables /etc/sysconfig/ip6tables-config
La configuracin de iptables se encuentra en los archivos terminados en -config, mientras que en los otros se encuentran las reglas del firewall, que son quienes ms nos interesan, en /etc/sysconfig/iptables se encuentran las reglas para IPv4 y en /etc/sysconfig/ip6tables las reglas para IPv6. Las tablas se encuentran en el archivo de reglas entre el *nombreDeTabla y COMMIT, a la cabecera de cada una de estas secciones, el tipo de reglas como por ejemplo INPUT / OUTPUT, a continuacin las reglas de iptables sin especificar ni la tabla ni el comando en s.
# Generated by iptables-save v1.4.9 on Thu May 12 15:29:40 2011 *nat :PREROUTING ACCEPT [6971:2143349] :OUTPUT ACCEPT [6614:351729] :POSTROUTING ACCEPT [1248:86307] -A POSTROUTING -s 172.16.2.0/24 -j MASQUERADE -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE COMMIT
# Completed on Thu May 12 15:29:40 2011 # Generated by iptables-save v1.4.9 on Thu May 12 15:29:40 2011 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [233:54560] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited #-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Thu May 12 15:29:40 2011
En el esquema anterior se puede apreciar la existencia de dos tablas (nat y filter), en cada tabla vemos el tipo de reglas que corresponde, en nat PREROUTING, POSTROUTING y OUTPUT, y en filter INPUT, OUTPUT y FORWARD. Los comentarios comienzan con #, notaremos que la ltima linea de filter se encuentra comentada. Las reglas de la tabla nat estn directamente asociadas a los direccionamientos o labores de router que puede cumplir un servidor, las reglas de la tabla filter es el firewall propio del servidor, por lo que si deseamos que nuestra red tenga puertos habilitados o bloqueados debemos crear estas reglas en nat. Es importante recalcar que las reglas de iptables tienen prioridad de arriba hacia abajo, siendo las ms prioritarias las superiores, esto quiere decir que si escribo una regla abriendo un puerto y en la linea siguiente otra regla cerrndolo, el puerto queda abierto. Por este motivo es normal encontrar lineas que hacen DROP o REJECT al final de las tablas, pues ellas cerrarn todo lo que no est explcitamente abierto. Es importante recordar que si poseemos algn servicio en nuestro servidor, para que l est disponible en nuestra red, se deben abrir los puertos correspondientes a los servicios prestados. Tener solamente abiertos los puertos de los servicios disponibles, reduce la superficie de ataque del servidor, por lo que es fuertemente recomendable, es ms, si tenemos servicios que nicamente deberan estar visibles para nuestra Intranet es fuertemente recomendable agregar una regla que especifique aquello, abriendo solamente el puerto para nuestra red interna dejando ste cerrado para la red externa.
Existen muchos administradores de red que cambian el puerto 22 predeterminado por algn otro con el objetivo de burlar ataques automticos, sin embargo existen mltiples herramientas para detectar puertos abiertos y el servicio al cual pertenecen, por lo que esta prctica no es tan recomendable, es mejor aumentar el tiempo del parmetro LoginGraceTime y filtrar la lista de quienes pueden acceder con el parmetro AllowUsers, o bien prohibir el acceso con usuario y contrasea PasswordAuthentication no y usar el acceso mediante llaves.
El comando creara un par de llaves de tipo RSA de 4096 bytes, es recomendable usar llaves de 2048 bytes o superior. La clave pblica deber agregarla en el servidor en el $HOME/.ssh/authorized_keys y la privada mantenerla en $HOME/.ssh/id_rsa
tem 11. Configuracin de SSH - 63
Recuerde abrir los puertos en el firewall con protocolo tcp 137, 138,139 y 445. Ahora, para configurar samba modificamos los archivos: /etc/samba/lmhosts /etc/samba/smb.conf
El archivo /etc/samba/lmhost es el equivalente al archivo /etc/hosts la nica diferencia es que los nombres de la columna derecha son nombres NetBIOS y solo son usados en linux por samba y su estructura es idntica a la que se muestra a continuacin:
192.168.220.100 192.168.220.101 desarrollo ventas
La configuracin bsica de Samba se hace en /etc/samba/smb.conf workgroup = MYGROUP : indica el grupo de que pertenece. server string = Samba Server Version %v : es el mensaje de bienvenida al servidor netbios name = MYSERVER : es el nombre del servidor en la red NetBios interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 : interfaces y subred que est escuchando hosts allow = 127. 192.168.12. 192.168.13. : subred que est escuchando Para iniciar/reiniciar/detener el servicio de samba ejecutamos:
service smb start service smb restart service smb stop
algnas de las opciones que podemos agregar a esta estructura son las siguientes: Directiva encrypt passwords invalid users valid users admin users read list write list guest ok comment path browseable Valor yes | no usuario | grupo usuario usuario usuario usuario yes | no Comentario /ruta/del/recurso yes | no Accin Esta directiva indica si las contraseas sern cifradas cuando el usuario se autentique Lista a los usuarios o grupos a los cuales les negara el acceso Lista a los usuarios a los cuales el servidor les dar acceso Lista a los usuarios que asumirn el rol de administrador Lista a los usuarios que solo podrn leer el recurso compartido Lista a los usuarios que podrn escribir en el recurso compartido Define si se permitir el acceso como usuario invitado o no En esta seccin podrs poner un comentario acerca del recurso que estas compartiendo En esta seccin debers especificar la ruta del recurso que compartes Define si el recurso podr ser visible o no
Otros parmetros adicionales, como el sufijo del dominio DNS, o el propio servidor DNS, servidor de tiempo, entre otros. En una red pueden convivir equipos que sean clientes DHCP con otros cuya configuracin se haya establecido manualmente. Aquellos que estn configurados como clientes DHCP necesitarn encontrar en la red local un servidor DHCP para que les proporciones los parmetros TCP/IP. La instalacin de un servidor dhcp en CentOS es:
yum install dhcp
Recuerde abrir los puetos 67 y 68 del firewall con protocolo udp. Edite el archivo de configuracin /etc/dhcpd.conf de una forma similar a la siguiente:
# Esto reescribira cualquier configuracin previa del cliente. authoritative; ignore client-updates; # ddns-updates - Activa la actualizacin DNS mediante los valores asignados por DHCP. ddns-updates on; # ddns-update-style - Define el mtodo de actualizacin automtica de los DNS. ddns-update-style ad-hoc; option ntp-servers 200.54.149.19; # servidor de tiempo ntp.shoa.cl option domain-name-servers 172.16.1.1, 172.16.2.1; shared-network zoneClient{ subnet 172.16.2.0 netmask 255.255.255.0 { option routers 172.16.2.1; option subnet-mask 255.255.255.0; range dynamic-bootp 172.16.2.128 172.16.2.254; default-lease-time 2160; max-lease-time 4320; } subnet 172.16.1.0 netmask 255.255.255.0 { option routers 172.16.1.1; option netbios-name-servers 172.16.1.11; option subnet-mask 255.255.255.0; default-lease-time 2160; max-lease-time 4320; } group { host cel { hardware ethernet 00:01:f1:33:22:22; fixed-address 172.16.2.7; } } }
Dentro del archivo de ejemplo podemos notar el esquema seguido, en la cabecera todas las directivas y opciones comunes a nuestra red, despus se crea una zona que administra nuestro dispositivo fsico de red, en este caso zonaClient, en su interior se pueden crear una o varias subredes (aunque una sola podr entregar IP dinmica por interfaz) y grupos en donde se pueden configurar varios dispositivos de red asignando diversas opciones adems de la posibilidad de asignarle siempre una misma IP. Dentro de las opciones y directivas ms utilizadas encontramos: option domain-name-servers option ntp-servers option routers option subnet-mask option netbios-name-servers range dynamic-bootp hardware ethernet fixed-address servidores DNS asignados al cliente. servidor de tiempo asignado al cliente puerta de enlace de la red o subred mascara de la subred servidor WINS rango en que repartir las IP MAC de una tarjeta de red de algn cliente IP que se asigna a una mquina
Finalmente, editaremos /etc/sysconfig/dhcpd en donde seleccionamos el dispositivo de red que dar usar nuestro servidor.
DHCPDARGS=eth1
Esta ltima configuracin es muy importante para restringir por que interfaz de red atender las solicitudes y as no causar posibles conflictos de red.
Para leer cmo un FQDN es resuelto para encontrar la direccin IP que se relaciona a un sistema particular, lea el nombre de derecha a izquierda, con cada nivel de la jerarqua dividido por puntos (.). En nuestro ejemplo, com define el dominio de nivel superior para este FQDN. El nombre example es un subdominio bajo com, mientras que sales es un subdominio bajo example. El nombre a la izquierda, bob, identifica el nombre de una mquina especfica. Aparte del nombre del dominio, cada seccin se llama zona, la cual define un espacio de nombre particular. Un espacio de nombre, controla los nombres de los subdominios de la izquierda. Aunque en el ejemplo solamente hay dos subdominios, un FQDN tiene que contener al menos un subdominio, pero puede incluir muchos ms dependiendo de la organizacin del espacio de nombres elegido.
Es recomendable crear el archivo /etc/squid/squid.conf, veamos como hacer este archivo paso a paso
proxy transparente
http_port 10.69.0.1:3128 transparent
Esta primer instruccin dice que usaremos el puerto 3128 en nuestro servidor 10.69.0.1, ademas de ello que nuestro proxy ser transparente.
el cache
cache_mem 64 MB cache_swap_low 90 cache_swap_high 95 maximum_object_size 4096 KB cache_dir aufs /var/spool/squid 1024 16 256 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log
Esta es la configuracin del cache hablar ac un poco de estas lineas: cache_mem: memoria de objetos calientes (de forma predeterminada esta en 256, pero si su equipo es pequeo debe bajar, el tope recomendado es RAM/3). cache_swap_low y cache_swap_high: son el rango de porcentajes de memoria cache que se dedica para el intercambio. maximum_object_size: el tamao mximo del objeto que va a ser almacenado en cache, los objetos mas grandes que estos no se almacenarn, en este caso 4M que es lo predeterminado. cache_dir: directorio donde almacenar el cache, el parmetro aufs es mejor que ufs debido a que maneja multihilo aumentando el rendimiento... 1024 es la cantidad de megas que usar en disco, en nuestro caso 1G y el resto es la figura de 16 directorios o carpetas con 256 directorios cada uno, este valor es el predeterminado (16 256). cache_access_log, cache_log, cache_store_log son los logs que informan el acceso, el log del sistema de cache y el del uso del almacenamiento.
el refresco
Despus del cache definimos cuanto tiempo lo guardamos, bsicamente la expresin regular, el tiempo mnimo antes de descargar de nuevo (en minutos), el porcentaje de envejecimiento y el tiempo mximo para considerarse viejo (en minutos)
# Paquetes Debian y RedHat 1 dia refresh_pattern -i \.deb$ 1440 100% 1440 refresh_pattern -i \.rpm$ 1440 100% 1440 # Actualizaciones de windows 10 a 20 dias refresh_pattern -i \.cab$ 14400 80% 28800 # Ejecutables 10 a 30 dias refresh_pattern -i \.exe$ 14400 80% 43200 # Imagenes minimo 1 dia maximo 3 antes de descargar de nuevo refresh_pattern -i \.gif$ 1440 80% 4320 refresh_pattern -i \.tiff?$ 1440 80% 4320 refresh_pattern -i \.bmp$ 1440 80% 4320 refresh_pattern -i \.jpe?g$ 1440 80% 4320 refresh_pattern -i \.xbm$ 1440 80% 4320 refresh_pattern -i \.png$ 1440 80% 4320 refresh_pattern -i \.wrl$ 1440 80% 4320 refresh_pattern -i \.ico$ 1440 80% 4320 refresh_pattern -i \.pnm$ 1440 80% 4320 refresh_pattern -i \.pbm$ 1440 80% 4320 refresh_pattern -i \.pgm$ 1440 80% 4320 refresh_pattern -i \.ppm$ 1440 80% 4320 refresh_pattern -i \.rgb$ 1440 80% 4320 refresh_pattern -i \.ppm$ 1440 80% 4320 refresh_pattern -i \.rgb$ 1440 80% 4320 refresh_pattern -i \.xpm$ 1440 80% 4320 refresh_pattern -i \.xwd$ 1440 80% 4320 refresh_pattern -i \.pict?$ 1440 80% 4320 # Video minimo 10 dias, maximo 30 refresh_pattern -i \.mov$ 14400 80% 43200 refresh_pattern -i \.mpe?g?$ 14400 80% 43200 refresh_pattern -i \.avi$ 14400 80% 43200 refresh_pattern -i \.qtm?$ 14400 80% 43200 refresh_pattern -i \.viv$ 14400 80% 43200 refresh_pattern -i \.swf$ 14400 80% 43200 refresh_pattern -i \.flv$ 14400 80% 43200 # Sonido idem que video refresh_pattern -i \.wav$ 14400 80% 43200 refresh_pattern -i \.aiff?$ 14400 80% 43200 refresh_pattern -i \.au$ 14400 80% 43200 refresh_pattern -i \.ram?$ 14400 80% 43200 refresh_pattern -i \.snd$ 14400 80% 43200 refresh_pattern -i \.mid$ 14400 80% 43200 refresh_pattern -i \.mp2$ 14400 80% 43200 refresh_pattern -i \.mp3$ 14400 80% 43200 refresh_pattern -i \.ogg$ 14400 80% 43200 # Default refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern . 0 20% 4320
El tiempo que deseemos mantener almacenado algo es relativo a nuestro trabajo, en todo caso por motivos de actualizaciones lo ideal no es dejar muy alto los valores de los archivos .deb .rpm, y si la gente de Microsoft trabajara en serio en parches, deberia acortarse ese tiempo, pero como no es as... Recordemos que slo almacenar los archivos que estn dentro del maximum_object_size
Control de Acceso
Ahora, a crear las listas de control de acceso (acl : access control list), en ellas bsicamente decimos que o a quien permitimos o denegamos. En este lugar tambin usamos el http_access que permite o provee el acceso a las reglas de acceso http. Una cosa importante a recordar es que estas reglas se aplican de arriba a abajo, siendo las superiores sobre las inferiores, es decir, si permito abc arriba y luego deniego todo abajo, significa que solamente estoy permitiendo abc y nada ms.
tem 15. Configuracin de Servidor Proxy (Squid) - 71
acl all src 0.0.0.0/0.0.0.0 # todo acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 # maquina local acl SSL_ports port 443 873 # https, rsync acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl CONNECT method CONNECT # metodo Connect acl padres src 10.69.0.0/255.255.255.0 # red padres acl hijos src 10.69.1.0/255.255.255.0 # red hijos acl palabrasNo url_regex "/etc/squid/palabras_no" acl palabrasSi url_regex "/etc/squid/palabras_si" acl horario time MTWHF 18:30-20:00 acl finsemana time AS 15:00-20:00 http_access allow manager localhost http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow palabrasSi http_access allow padres http_access allow horario finsemana hijos !palabrasNo http_access deny all
Me detendr ac a explicar solo un par de reglas, src hace referencia a una o un rango de ip, time hace referencia a dias de la semana (MTWHFAS) y rango horario (00:00-23:59). acl palabrasNo url_regex "/etc/squid/palabras_no" y acl palabrasSi url_regex "/etc/squid/palabras_si" hacen referencia a url_regex que busca una expresin regular en una url, y la lista de expresiones regulares esta en los archivos /etc/squid/palabras_no y /etc/squid/palabras_si. Un ejemplo de palabras_no es:
ardiente ass bdsm bestialismo bitch bizarre bizarro blowjob boobies boobs bukkake chochito cum exnovia ex\+novia hot
Un ejemplo de palabras_si seria aquel que tiene como parte algna denegada, por ejemplo "cum"
cumple document acumula ecumenico
Otras configuraciones
Finalmente es bueno dejar los mensajes del proxy en espaol y cambiar el nombre del host a algno que queramos.
error_directory /usr/share/squid/errors/Spanish visible_hostname proxy.gulix.local
Configuracin de PHP
Para un correcto funcionamiento de las aplicaciones web (por ejemplo, TYPO3), se deben modificar algnos valores en la configuracin de PHP. Para ello se debe editar el archivo /etc/php.ini y modificar los siguientes valores:
max_execution_time = 60 max_input_time = 90 memory_limit = 128M post_max_size = 16M upload_max_filesize = 16M
Es recomendable agregar cada servidor virtual en archivos propios en el directorio /etc/httpd/conf.d/, el archivo debe terminar en .conf para que sea cargado al hacer
service httpd reload
Instalacin
yum install vsftpd
Recordamos abrir los puertos 20 y 21 en tcp para la conexin FTP y los puertos superiores para la trasnferencia de archivos. Los archivos instalados son: /etc/vsftpd/vsftpd.conf el archivo de configuracin de vsftpd. /etc/vsftpd.ftpusers Una lista de los usuarios que no tienen permitido conectarse a vsftpd. Por defecto esta lista incluye a los usuarios root, bin y daemon, entre otros. /etc/vsftpd.user_list Este archivo se puede configurar para negar o permitir el acceso a los usuarios listados, dependiendo de si la directriz userlist_deny est configurada a YES (por defecto) o a NO en /etc/vsftpd/vsftpd.conf. Si se utiliza /etc/vsftpd.user_list para permitir acceso a los usuarios, los nombres de usuarios listados no deben aparecer en /etc/vsftpd.ftpusers. El directorio /var/ftp/ El directorio que contiene los archivos servidos por vsftpd. Tambin contiene el directorio /var/ftp/pub/ para los usuarios annimos. Ambos directorios estn disponibles para la lectura de todos, pero slo el superusuario o root puede escribir en el.
Configuracin
Editar /etc/vsftpd/vsftpd.conf y usar para eliminar los usuarios annimos el siguiente valor:
anonymous_enable=NO
Si se desea restringir el acceso FTP a un grupo especfico de usuarios, se debe agregar la siguiente lnea
userlist_deny=NO
Luego se debe editar el archivo /etc/vsftpd/user_list y dejar slo los usuarios que pueden acceder por FTP.
tem 17. Configuracin de FTP (vsftpd) - 74
Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendr acceso a su propio directorio personal y lo que este contenga. No olvide crear el archivo /etc/vsftpd/chroot_list, ya que de otro modo no arrancar el servicio vsftpd.
El archivo /etc/xinetd.conf
El archivo /etc/xinetd.conf contiene parmetros de configuracin generales que afectan a todos los servicios bajo el control de xinetd. Se lee cuando el servicio xinetd inicia, as que para los cambios de configuracin surtan efecto, es necesario reiniciar el servicio xinetd. La siguiente es una muestra del archivo /etc/xinetd.conf:
defaults { instances log_type log_on_success log_on_failure cps } includedir /etc/xinetd.d = = = = = 60 SYSLOG HOST PID HOST 25 30
authpriv
Estas lneas controlan los siguientes aspectos de xinetd: instances Configura el mximo nmero de peticiones que xinetd puede manejar simultneamente. log_type Configura xinetd para usar la facilidad de registro authpriv, el cual escribe las entradas de registro al archivo /var/log/secure. Al agregar una directiva tal como FILE /var/log/xinetdlog aqu, crear un archivo de registro personalizado llamado xinetdlog en el directorio /var/log/. log_on_success Configures xinetd to log successful connection attempts. By default, the remote host's IP address and the process ID of the server processing the request are recorded. log_on_failure Configura xinetd para registrar si hay una falla de conexin o si la conexin no es permitida. cps Configura xinetd para no permitir ms de 25 conexiones por segundo a cualquier servicio dado. Si se alcanza este lmite, el servicio es retirado por 30 segundos. includedir /etc/xinetd.d/ incluye los archivos especficos ubicados en el directorio /etc/xinetd.d/ directory
Estas lneas controlan varios aspectos del servicio telnet: service Define el nombre del servicio, usualmente uno listado en el archivo /etc/services. flags Configura cualquier nmero de atributos para la conexin. REUSE instruye xinetd a reutilizar el socket para una conexin Telnet. socket_type Configura el socket de red a escribir a stream. wait Define si el servicio es de un slo hilo (yes) o de mltiples hilos (no). user Define bajo qu ID de usuario se ejecutar el proceso. server Define el binario ejecutable a lanzar. log_on_failure Define los parmetros de registro para log_on_failure adems de aquellos ya definidos en xinetd.conf. disable Define si el servicio est activo o no.
y agregar
vsftpd: ALL
a /etc/hosts.allow
Protocolo SMTP
Simple Mail Transfer Protocol (SMTP) Protocolo Simple de Transferencia de Correo, es un protocolo de la capa de aplicacin. Protocolo de red basado en texto utilizado para el intercambio de mensajes de correo electrnico entre computadoras u otros dispositivos. SMTP se basa en el modelo cliente-servidor, donde un cliente enva un mensaje a uno o varios receptores. La comunicacin entre el cliente y el servidor consiste enteramente en lneas de texto compuestas por caracteres ASCII. El tamao mximo permitido para estas lneas es de 1000 caracteres. Las respuestas del servidor constan de un cdigo numrico de tres digitos, seguido de un texto explicativo. El nmero va dirigido a un procesado automtico de la respuesta por autmata, mientras que el texto permite que un humano interprete la respuesta. En el protocolo SMTP todas las rdenes, rplicas o datos son lneas de texto, delimitadas por el carcter <CRLF>. Todas las rplicas tienen un cdigo numrico al comienzo de la lnea. En el conjunto de protocolos TCP/IP, el SMTP va por encima del TCP, usando normalmente el puerto 25 en el servidor para establecer la conexin.
Protocolo POP3
POP3 est diseado para recibir correo, no para enviarlo; le permite a los usuarios con conexiones intermitentes muy lentas (tales como las conexiones por mdem), descargar su correo electrnico mientras tienen conexin y revisarlo posteriormente incluso estando desconectados. Cabe mencionar que la mayora de los clientes de correo incluyen la opcin de dejar los mensajes en el servidor, de manera tal que, un cliente que utilice POP3 se conecta, obtiene todos los mensajes, los almacena en la computadora del usuario como mensajes nuevos, los elimina del servidor y finalmente se desconecta. En contraste, el protocolo IMAP permite los modos de operacin conectado y desconectado. Los clientes de correo electrnico que utilizan IMAP dejan por lo general los mensajes en el servidor hasta que el usuario los elimina directamente. Esto y otros factores hacen que la operacin de IMAP permita a mltiples clientes acceder al mismo buzn de correo. La mayora de los clientes de correo electrnico soportan POP3 IMAP; sin embargo, solo unos cuantos proveedores de internet ofrecen IMAP como valor agregado de sus servicios.
Protocolo IMAP
Internet Message Access Protocol, o su acrnimo IMAP, es un protocolo de red de acceso a mensajes electrnicos almacenados en un servidor. Mediante IMAP se puede tener acceso al correo electrnico desde cualquier equipo que tenga una conexin a Internet. IMAP tiene varias ventajas sobre POP, que es el otro protocolo empleado para obtener correo desde un servidor. Por ejemplo, es posible especificar en IMAP carpetas del lado servidor. Por otro lado, es ms complejo que POP ya que
tem 19. Configuracin de Correo electrnico (sendmail) - 79
permite visualizar los mensajes de manera remota y no descargando los mensajes como lo hace POP.
Instalacin de Sendmail
El proceso de instalacion de Sendmail requiere de los siguientes paquetes sendmail sendmail.cf dovecot cyrus cyrus-sasl-mmd5 cyrus-sasl-plain make m4
El archivo relay-domains no existe por lo que tendr que ser creado por usted mismo Estos archivos los puedes localizar en: /etc/mail/
Configuracin de /etc/mail/access
En este archivo se definen los dominios o conjunto de direcciones IP que podran hacer uso o no del servidor de correo. La sintaxis de este archivo es el siguiente
Connect:midominio1.net Connect:midominio2.net Connect:midominio3.net Connect:midominio4.net [accion] [accion] [accion] [accion]
Los valores que puede tomar el parametro (accion) son los siguientes: RELAY REJECT Permite el envio de correo a travez de nuestro servidor Niega el uso de nuestro servidor para la entrega de correo
Ejemplo:
# Check the /usr/share/doc/sendmail/README.cf file for a description # of the format of this file. (search for access_db in that file) # The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc # package. # # If you want to use AuthInfo with "M:PLAIN LOGIN", make sure to have the # cyrus-sasl-plain package installed. # # By default we allow relaying from localhost... Connect:localhost.localdomain RELAY Connect:localhost RELAY Connect:127.0.0.1 RELAY #IP Publica de su Servidor de correo Connect: 207.249.24.30 #Nombre de su Dominio Connect: midominio.com.mx #Nombre de su Equipo Connect: correo.midominio.com.mx #IP Local de su Servidor de correo Connect: 192.168.1.10 RELAY RELAY RELAY RELAY
#Dominios y direcciones IP a quienes se les negara el envio de correo Connect:spammers.com.ar REJECT Connect:yourporn.net REJECT Connect:207.46.197.32 REJECT Connect:207.46.197.32 REJECT
Como podemos observar, solo permitimos el envo de correo a nuestro propio dominio as como tambin a la direccin IP publica que tiene asignada nuestro dominio, as mismo estamos denegando el uso de nuestro servidor de correo a dominios como spammers.com.ar , yourporn.net y a las direcciones IP 207.46.197.32 y 207.46.197.32.
Configuracin de /etc/mail/relay-domains
En este archivo se introducirn los nombres de los equipos, redes o dominios desde o hacia las que podemos hacer transmisin de correo. Por ejemplo:
midominio.com.mx correoomidominio.com.mx
Como podemos observar estamos permitiendo la transmisin a cualquier correo que venga de o vaya hacia el dominio midominio.com.mx , asi como tambien al dominio correo.midominio.com.mx. Practicamente es una copia del archivo /etc/mail/local-host-names
Configuracin de /etc/mail/sendmail.mc
Este archivo contiene la configuracin completa del servidor de correo, es por ello que debe ser cuidadoso al momento de editarlo.
Activando interfaces de red
Por defecto sendmail esta configurado para enviar correos desde la interfaz loopback 127.0.0.1,esto quiere decir que unicamente el servidor envia correos a si mismo, para cambiar este comportamiento solo debers ubicar la siguiente linea:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
y eliminar el parametro Addr=127.0.0.1 , es decir, al final, la linea deber quedar de la siguiente manera
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
Con esta accin sendmail asumir que podr enviar correos desde cualquier IP. As mismo tambin podrs declarar cada una de las direcciones IP por las cuales se podr enviar correo Ejemplo:
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.1 Name=MTA')dnl DAEMON_OPTIONS(`Port=smtp,Addr=172.16.0.10 Name=MTA')dnl
Por defecto, Sendmail esta configurado para aceptar correos de dominios no resueltos. Una forma de cambiar este comportamiento es comentando la siguiente linea del archivo /etc/mail/sendmail.mc.
FEATURE(`accept_unresolvable_domains')dnl
Solo tendr que agregar la palabra dnl al comienzo de la linea, al finalizar deber quedar de la siguiente forma
dnl FEATURE(`accept_unresolvable_domains')dnl
Con esta accin usted estar restringiendo el paso de spam a su servidor de correo
Enmascarar dominios
Si tu intencin es enviar correo con solo un dominio lo conveniente es enmascarar todos los correos emitidos desde el servidor con el nombre de tu dominio. Para ello ubica la siguiente linea:
dnl MASQUERADE_AS(`mydomain.com')dnl
descomente la linea eliminando la palabra dnl que se encuentra al principio de la linea y luego introduce el nombre de tu dominio como se a muestra a continuacin
dnl MASQUERADE_AS(`midominio.com.mx')dnl
Con esta accin lograras que tus correos salgan con la terminacin @midominio.com.mx Igualmente ubique las siguientes lineas y tambin descomentelas
FEATURE(masquerade_envelope)dnl FEATURE(masquerade_entire_domain)dnl
Recomendamos abrir el puerto alternativo 587 de SMTP para el envo de correo en su servidor. Para hacerlo, busque la siguiente linea
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
descomente la linea eliminando la palabra dnl que se encuentra al principio de la linea, con eso tendr habilitado el envo por el puerto 587
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
La linea
define(`confAUTH_OPTIONS', `A')dnl
se encuentra habilitada por defecto permite realizar autenticacin de usuarios por el mtodo PLAIN o mediante cifrado. El mtodo PLAIN consiste en autenticacin en texto plano Dejar esta linea activada presenta cierto riesgo de seguridad ya que todas las contraseas de los usuarios viajan en texto claro lo cual podra ser aprovechado por algn analizador de protocolos y robar las contraseas. Una manera de solucionar este problema seria comentando la anterior linea y en su lugar descomentar la siguiente.
define(`confAUTH_OPTIONS', `A p')dnl
Esta accin desactiva la autenticacin en texto plano y en su lugar activa la autenticacin mediante cifrado, el nico inconveniente es que obligara a sus clientes o usuarios a utilizar clientes de correo con soporte para autenticacin mediante cifrado. No lo olvide Adicionalmente ubique las siguientes lineas y tambin descomentelas
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
Y solo borre la almohadilla de # y las palabras imaps pop3s. Al final deber lucir de la siguiente manera:
protocols = imap pop3
El numero 10 hace referencia al numero mximo de destinatarios para un mensaje de coreo, tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl
El numero 10240 es equivalente a 10Kb (Kilo Bytes), tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
define(`confMAX_RCPTS_PER_MESSAGE', `10')dnl define(`confMAX_HEADERS_LENGTH', `10240')dnl
El numero 3075000 es equivalente a 3Mb (Mega Bytes),tu puedes modificar este valor segn tu conveniencia Al finalizar deber lucir de la siguiente manera
define(`confMAX_HEADERS_LENGTH', `10240')dnl define(`confMAX_MESSAGE_SIZE', `3075000')dnl
Cada lnea del archivo /etc/crontab representa una tarea y tiene el formato siguiente: minute hour day month dayofweek command minute nmero entero entre 0 y 59 hour nmero entero entre 0 y 23 day nmero entero entre 1 y 31 (debe ser un da vlido si se especifica un mes) month nmero entero entre 1 y 12 (o nombre corto del mes, por ejemplo, ene, feb, etc.) dayofweek nmero entero entre 0 y 7, donde 0 o 7 corresponde a Domingo (o el nombre corto del da de la semana, por ejemplo, dom, lun, etc.) command comando a ejecutar
En cualquiera de los valores antes indicados, se puede utilizar un asterisco (*) para especificar todos los valores vlidos. Por ejemplo, un asterisco para el valor de mes significa que el comando se ejecutar cada mes dentro de las limitaciones del resto de los valores. Un guin (-) entre los nmeros enteros indica un intervalo de nmeros enteros. Por ejemplo, 1-4 significa los nmeros enteros 1, 2, 3 y 4. Una lista de valores separados por comas (,) especifica una lista. Por ejemplo, 3, 4, 6, 8 indica esos cuatro nmeros enteros. El demonio cron controla el fichero etc/crontab, el directorio etc/cron.d/ y el directorio /var/spool/cron cada minuto para cada cambio. Si se encuentra algn cambio, estos se cargan en la memoria. De este modo, el demonio no necesita ser reiniciado si se cambia un fichero crontab.
El argumento time puede ser uno de los siguientes: Formato HH:MM Por ejemplo,04:00 seala las 4:00AM. Si se inserta el tiempo, se ejecuta en la hora especfica del siguiente da. midnight Especifica 12:00 a.m. noon Especifica 12:00 p.m. teatime Especifica las 4:00 p.m. Formato del nombre-mes, da y ao Por ejemplo, Enero 15 del ao 2002. El ao es opcional. Formato MMDDYY, MM/DD/YY, o MM.DD.YY Por ejemplo, 011502 para el da 15 de Enero del 2002. now + time el tiempo est en minutos, horas, das o semanas. Por ejemplo, now + 5 das, especifica que el comando debera ser ejecutado a la misma hora en 5 das.
Documentacin
El presente manual es una recopilacin de informacin de diferentes sitios de Internet, la mayor parte de ellos bajo licencias que permiten compartir dicha informacin, otros que no se encontraban licenciados (como la wiki de Lazos), a continuacin se nombran ellos. Documentacin de CentOS : http://www.centos.org/docs/5 Documentacin de RedHat : http://docs.redhat.com Wiki del Grupo de Usuarios Linux de la IX Regin : http://gulix.cl/wiki Base de Conocimiento de la Comunidad Linux Para Todos : http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento Documentacion de ArchLinux : http://www.archlinux.org Wikipedia en Espaol : http://es.wikipedia.org Wiki de Lazos : http://wiki.lazos.cl Instituto de Tecnologa de Massachusett : http://web.mit.edu
El licenciamiento ms apropiado tomando en cuenta la voluntad de licenciamiento de cada uno de dichos sitios, su documentacin, licencias y la informacin recopilada, modificada y agregada aparentemente la ms compatible es Creative Commons BY-SA 3.0
Documentacin - 90
INDICES
ndice de contenido
tem 1. Instalacin y Configuracin de Sistema Operativo Linux.............................................................2 Pasos previos a la Instalacin................................................................................................................2 Instalando el Sistema.............................................................................................................................2 Modo Grfico....................................................................................................................................2 Modo Texto....................................................................................................................................11 Configuracin de Servicios.................................................................................................................11 tem 2. Instalacin de software................................................................................................................12 RPM.....................................................................................................................................................12 Sintaxis del comando rpm..............................................................................................................12 Consultar Y Verificar Los Paquetes..........................................................................................12 Instalacin, Actualizacin, Y Eliminacin De Paquetes...........................................................12 YUM....................................................................................................................................................13 Sintaxis del comando yum es.........................................................................................................13 tem 3. La Shell de Linux.........................................................................................................................14 Introduccin.........................................................................................................................................14 Comandos Bsicos..............................................................................................................................14 man.................................................................................................................................................14 ls......................................................................................................................................................14 cd.....................................................................................................................................................17 pwd.................................................................................................................................................18 cp.....................................................................................................................................................18 mv...................................................................................................................................................19 rm....................................................................................................................................................19 cat....................................................................................................................................................19 more................................................................................................................................................20 tail...................................................................................................................................................20 head.................................................................................................................................................20 ps.....................................................................................................................................................21 kill...................................................................................................................................................22 killall...............................................................................................................................................23 top...................................................................................................................................................23 alias.................................................................................................................................................24 Comandos Bsicos Avanzados............................................................................................................25 chmod.............................................................................................................................................25 chgrp...............................................................................................................................................26 chown..............................................................................................................................................26 df.....................................................................................................................................................26 du....................................................................................................................................................26 find..................................................................................................................................................27 grep.................................................................................................................................................27 ifconfig............................................................................................................................................28 ln.....................................................................................................................................................29 passwd.............................................................................................................................................29 ping.................................................................................................................................................29 route................................................................................................................................................29
INDICES - 91
scp...................................................................................................................................................30 ssh...................................................................................................................................................30 su.....................................................................................................................................................31 yes...................................................................................................................................................31 time.................................................................................................................................................31 Tuberas y Redireccionamientos.........................................................................................................31 Tuberas (pipeline)..........................................................................................................................31 Redireccionamiento........................................................................................................................32 Trabajos en segundo plano.............................................................................................................33 control Z.....................................................................................................................................33 jobs.............................................................................................................................................33 fg................................................................................................................................................33 &................................................................................................................................................33 bg................................................................................................................................................33 tem 4. El kernel de Linux........................................................................................................................35 Configuracin del gestor de arranque para un nuevo kernel...............................................................36 GRUB.............................................................................................................................................37 tem 5. Sistemas de archivos....................................................................................................................38 Estructura del sistema de Archivos.....................................................................................................39 Libre................................................................................................................................................40 Superbloque....................................................................................................................................40 Features...........................................................................................................................................42 Descriptores de grupos de bloques.................................................................................................42 Grupo de bloques............................................................................................................................43 Tabla de inodos...............................................................................................................................43 Directorios......................................................................................................................................45 tem 6. Uso de vi......................................................................................................................................46 Para insertar.........................................................................................................................................46 Para hacer correcciones.......................................................................................................................46 Salidas.................................................................................................................................................47 Mover y pegar texto............................................................................................................................47 Repetir y deshacer cambios.................................................................................................................47 Comandos desde vi..............................................................................................................................48 Sustituciones........................................................................................................................................48 Opciones.........................................................................................................................................48 tem 7. Administracin de usuarios.........................................................................................................49 Creando usuarios de forma bsica.......................................................................................................49 Creando Grupos de Usuario................................................................................................................50 Creando usuarios en Grupos................................................................................................................50 Dando permiso a carpetas y archivos de Usuarios..............................................................................50 Dando permisos especiales (sudo)......................................................................................................53 Dando permiso especial a Usuario.................................................................................................53 Dando permiso especial a Grupos de Usuario................................................................................53 tem 8. Redes............................................................................................................................................54 Introduccin.........................................................................................................................................54 Niveles de pila................................................................................................................................54 El modelo TCP....................................................................................................................................55 tem 9. Configuracin de red...................................................................................................................56 Archivos de configuracin de red.......................................................................................................56 /etc/hosts ........................................................................................................................................56 /etc/resolv.conf ...............................................................................................................................56
INDICES - 92
/etc/sysconfig/network-scripts/ifcfg-<interface-name> .................................................................56 Interfaces de acceso telefnico o red de marcado......................................................................57 Scripts de control de interfaz...............................................................................................................59 tem 10. Configuracin de Firewall.........................................................................................................60 Comandos para manejar el firewall.....................................................................................................60 El servicio iptables..........................................................................................................................60 El comando iptables........................................................................................................................60 iptables-save e iptables-restore.......................................................................................................61 Configuracin Manual.........................................................................................................................61 Opciones extras de seguridad..............................................................................................................62 tem 11. Configuracin de SSH...............................................................................................................63 Configurando el servicio.....................................................................................................................63 Autentificacin Usando llaves.............................................................................................................63 Creando llaves RSA........................................................................................................................63 tem 12. Configuracin de Servidor Samba.............................................................................................64 Configuracin de recursos compartidos..............................................................................................64 tem 13. Configuracin de Servidor DHCP.............................................................................................66 tem 14. Configuracin de Servidor DNS................................................................................................68 Configurando un servidor DNS solo Cache........................................................................................68 Configurando un servidor DNS maestro.............................................................................................68 Instalacin y configuracin de BIND.............................................................................................69 tem 15. Configuracin de Servidor Proxy (Squid).................................................................................70 proxy transparente...............................................................................................................................70 el cache................................................................................................................................................70 el refresco............................................................................................................................................71 Control de Acceso...............................................................................................................................71 Otras configuraciones..........................................................................................................................72 tem 16. Servidor Web (Apache).............................................................................................................73 Instalacin de los paquetes bsicos.....................................................................................................73 Configuracin de PHP....................................................................................................................73 Configuracin de Apache VirtualHost por omisin............................................................................73 tem 17. Configuracin de FTP (vsftpd)..................................................................................................74 Configuracin......................................................................................................................................74 Estableciendo jaulas para los usuarios............................................................................................75 algnas directivas importantes de considerar.................................................................................75 tem 18. xinetd.........................................................................................................................................76 Conceptos bsicos de TCP wrappers...................................................................................................76 Archivos de configuracin de xinetd...................................................................................................76 El archivo /etc/xinetd.conf..............................................................................................................77 Ejemplo usando xinit para control vsftpd............................................................................................77 tem 19. Configuracin de Correo electrnico (sendmail).......................................................................79 Protocolo SMTP..................................................................................................................................79 Protocolo POP3...................................................................................................................................79 Protocolo IMAP..................................................................................................................................79 Ventajas sobre POP3...........................................................................................................................80 Instalacin de Sendmail.......................................................................................................................80 Sobre el paquete sendmail y senmail.cf..........................................................................................80 Sobre el paquete dovecot................................................................................................................80 Sobre el paquete cyrus-sasl.............................................................................................................81 Configuracin Bsica de Sendmail.....................................................................................................81 Configuracin de /etc/mail/access..................................................................................................81
INDICES - 93
Configuracin del /etc/mail/local-host-names................................................................................82 Configuracin de /etc/mail/relay-domains.....................................................................................82 Configuracin de /etc/mail/sendmail.mc........................................................................................83 Activando interfaces de red.......................................................................................................83 Filtrado de dominios no validos.................................................................................................83 Enmascarar dominios.................................................................................................................83 Habilitar el puerto 587 para el envo de correo..........................................................................84 Habilitar la autenticacin de los usuarios de correo..................................................................84 Configuracin del servidor dovecot....................................................................................................84 Configuracin Avanzada de Sendmail................................................................................................85 Limitando el numero de destinatarios de correo.............................................................................85 Limitando el tamao de la cabecera de un correo..........................................................................85 Limitando el tamao para un mensaje de correo............................................................................85 Limitando el nmero de procesos hijos en el servidor de correo...................................................86 Limitando el nmero de conexiones...............................................................................................86 Alta de cuentas de correo....................................................................................................................86 Asignando contraseas a las cuentas de correo...................................................................................86 Iniciar , detener o reiniciar el servidor de Correo................................................................................87 Iniciar , detener o reiniciar el servidor Dovecot..................................................................................87 Iniciar , detener o reiniciar el servicio de autenticacin......................................................................87 tem 20. Programacin de tareas..............................................................................................................88 Configuracin de una tarea repetitiva con Cron..................................................................................88 Configuracin de una tarea nica con At............................................................................................88 Documentacin........................................................................................................................................90 INDICES..................................................................................................................................................91
INDICES - 94