26 marzo 2007
29 junio 2006
Servidor de correo
------------------
Software: sendmail
Conexión: ADSL (ip dinamica)
IP: Privada

Dionisio: Sendmail
Proxy: iptables
iptables -tnat -i $iF_Out=-dport 25 -p tcp -j DNAT --to-destination $dionisio:25
SuSE: rcsendmail start
Fedora: service sendmail start
Debian: invoke-rc.d sendmail start
netstat -ltn (Esta orden puede devolver lo siguiente...)
*:25 (Escucha en todos los dispositivos en el puerto 25)
localhost:25 (Esta corriendo solamente en la interface local)
0.0.0.0:25 (Esta escuchando en todas las interfaces)
/etc/send/sendmail.cf (Archivo de configuracion)
m4 (Precompilador para crear sendmail.cf)
/usr/share/sendmail/README (Readme de sendmail)
Domain(utubuceo.net.uy) dnl
MASQUERADE_DOMAIN(`estb.dyndns.org') dnl
MASQUERADE_AS(`estb.dyndns.org') dnl
FEATURE(allmasquerade) dnl
FEATURE(`masquerade_entire_domain') dnl
FEATURE(`masquerade_envelope') dnl
loquesea.mc
(parados en /usr/share/sendmail/cf/ hacemos lo siguiente)
m4 --/m4/cf.c4 loquesea.mc>sendmail.cf (este archivo hay que ponerlo en /etc en SuSE)
Luego se reinicia el servicio y tendria que quedar andando
/usr/share/sendmail/cf/utubuceo.mc
/usr/share/sendmail/cf/generic-linux.mc
(podriamos hacer lo siguiente)
cp generic-linux.mc utubuceo.mc (parados en /usr/share/sendmail/cf/)
(posibles alias para el servidor de correo se encuentran en...)
/etc/mail/local-host-names
Usuario para el dionisio
usuario: tecnicatura
passwd: cdtux
25 mayo 2006
Clase 25/5
Nuevos comandos utilizados
scp -> secure copy. Sirve para copiar archivos desde o hacia un host remoto. Esto lo hace mediante el protocolo ssh. Sintaxis: scp [-p Nº puerto ] usuario@host_origen:/directorio_origen/archivo /directorio_destino ó
scp [-p Nº puerto ] /directorio_origen/archivo usuario@host_destino:/directorio_destino
apt-get -> utilidad de manejo de paquetes Sintaxis: apt-get { update upgrade install paquete ... remove paquete source paquete ... build-dep paquete ... check clean }
Ejemplo: apt-get install ssh
tar -> utilidad de compresión y descompresión de archivos
Sintaxis: tar [ - ] c --create --delete r --append t --list u --update x --extract –get
Ejemplo: tar –xvfj linux_2.16.11.tar.bz2 ó tar –xzvf Linux_2.16.11.tar.gz
ln -> crea enlaces simbólicos (“Accesos directos”)
Ejemplo: ln –s Linux_2.16.11 /home/tritri/linux
Paquetes que hubo que instalar para poder compilar el kernel en Linux Ubuntu 5.04:
gcc – make – libncurses5-dev
Pasos para compilar el kernel
Descomprimir el archivo tar.bz2
tar –zvfj linux.tar.bz2 –C /usr/source
cd !$ (!$ repite el parámetro del último comando que se ejecutó)
Crear un enlace simbólico a la carpeta linux-2.6.16.16 llamado linux
ln –s Linux-2.6.16.16 linux
Se configuran los parámetros que queremos compilar
make { menuconfig xconfig }
make
cp arch/i386/boot/bzImage /boot/vmlinuz
make modules-install (los instala en /lib/modules/version-del-kernel)
Lo último que hay que hacer es crear el initrd con el comando
mkinitrd /boot/initrd.img-version-del-kernel
y luego editar el archivo /boot/grub/menu.lst para agregar nuestra imagen del kernel al menú de arranque del grub y agregar los siguientes líneas
title
root
kernel
initrd
boot
10 mayo 2006
Configurar GRUB
Para configurar la lista:
Ir a /boot/grub/menu.lst obvio que para porder editar el archivo hay que ser root.
Ir al a opción que dice default y ahí escribir el número de la opcion deseada para el arranque.
Les recomiendo leer el archivo ya que se aprende como funciona.
Numero Magico
Forma binaria de
55=01010101
Forma binaria de
AA=10101010
Al hacer un AND o un OR
55 + AA = 11111111
27 abril 2006
Sockets con bash
http://www.troubleshooters.com/codecorn/sockets/
para programar un servicio con inetd o xinetd solo con el shell bash.
09 abril 2006
Clase 06/3
test -> El comando test evalúa una expresión; si evalúa que es verdadera, devuelve un 0 (verdadero), de otro modo devuelve 1 (falso).
Si no hay expresión, test también devuelve 1 (falso)
Se pueden evaluar distintas clases de expresiones, numéricas, cadenas de caracteres, archivos.
cut -> El comando cut selecciona partes de cada línea de cada archivo y las escribe en la salida estándar. Si no hay un archivo especificado, cut lee de la entrada estándar con el parámetro -f le decimos que campo (field) queremos cortar, y con el parámetro -d le decimos el delimitador que queremos utilizar; ejemplo, cut -f1 -d: /tmp/archivo va a quedarse con la primer columna del archivo utilizando como delimitador los dos puntos.
mkpasswd -> Este comando pertenece al paquete whois. Lo que hace es; dada una palabra, la encripta con el algoritmo que le indiquemos (aunque podemos no indicárselo, y por defecto lo hará con md5)
useradd -> Comando que se utilizar para agregar usuarios. -m indica que se debe crear el directorio home; -c representa el comentario; -g el grupo por defecto que va a tener el usuario, -p toma el valor que le demos y lo coloca como password en el archivo /etc/passwd o /etc/shadow (según como hayamos planificado nuestro sistema); es por eso que antes de poner el password, debemos encriptarlo, si quisiéramos poner ... -p arturito, el comando interpretaría como que arturito ya es la palabra encriptada, entonces al tratar de hacer un login, no funcionaría.
#!/bin/bash
if test -f $1; then
i=1
cantidad=$(cat $1wc -l)
while test $i -le $cantidad; do
login=$(head -$i $1tail -1cut -f1 -d:)
comen=$(head -$i $1tail -1cut -f2 -d:)
passw=$(mkpasswd $login)
grupo=1001
useradd -m -c "$comen" -g $grupo -p $passw $login
echo $comen "agregado"
let i++
done
else
echo "No existe el archivo"
fi
¿Que es el Master Boot Record?
Es un sector de 512 bytes al principio del disco duro que contine una secuencia de comandos necesarios para cargar un sistema operativo. Es decir, es el primer registro del disco duro, el cual contiene un programa ejecutable y una tabla donde están definidas las particiones del disco duro.
También el primer sector de cada partición, en arquitectura del PC de IBM, tiene la misión de arrancar sistema operativo. Normalmente el MBR lo único que hace es ejecutar el sector de arranque de la partición marcada como arrancable.
Es el primer sector físico (Cilindro 0, Cabeza 0, Sector 1) asignado a un disco duro en un sistema (el primer disco duro con el número de periférico-BIOS 0x80). Cada disco duro recibe un MBR, pero no todas las BIOS pueden arrancar el sistema operativo desde cualquiera de los discos duros. Cuando se arranca desde el disco duro, la BIOS copia el contenido del MBR en una dirección fija de la memoria para luego darle el control. Este código arrancará seguidamente el sistema operativo, ya sea desde el disco duro o desde un Boot-Loader o cargador, algo más complejo, como por ejemplo LILO o GRUB.

El Magic number indica que la tabla de partición es válida.
La tabla de partición tiene cuatro entradas de 16 bytes cada una.
La siguiente tabla representa una de ellas
| 1B | AF | Bandera de partición activa (active flag) |
| 3B | CHS | Cilindro, cabeza y sector de donde empieza esta partición |
| 1B | ID | Identificador (Tipo de partición) |
| 3B | CHS | Cilindro, cabeza y sector del final de la partición |
| 4B | Offset LBA | Sector absoluto de inicio (Tiene que ser coherente con CHS) |
| 4B | Tamaño LBA | Tamaño en sectores absolutos |
En el disco duro hay solo 4 particiones primarias. Las particiones extendidas son contenedores de otras tablas de particiones.
Los sistemas operativos generalmente permiten solo una partición extendida.
Comando dd
El comando dd (disk dump o volcado de disco) copia de la entrada estándar a la salida estándar. Los datos de entrada son leídos y escritos en bloques por defecto de 512 bytes, aunque le podemos indicar que sean de otro tamaño con el parámetro bs (block size)
Ejemplo:
dd if=/dev/zero of=/dev/hda (copia el valor 0 en todo el disco duro)
dd if=/dev/random of=/dev/hda (copia numeros aleatorios en todo el disco duro)
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 (Copia el primer sector del disco duro, el MBR, al primer sector del diskette. Con el parámetro count le decimos que cantidad de bloques queremos que se copien, en este caso, solo uno. Esta es la forma de hacer un respaldo del MBR)
04 abril 2006
Segunda Clase 30/3
Sistemas de archivos:
- fat
- vfat
- fat32
- ntfs
- ufs
- ext2
- ext3
- raiserfs
- xfs
- iso9660
- minix
- codafs
(Hay un mail en la casilla de la clase que tiene las características de cada uno de estos sistemas de archivos)
¿Que es montar un sistema de archivos?
Montar un sistema de archivos consiste en asignar un directorio, o punto de montaje, a la unidad lógica. El montaje de un sistema de archivos se realiza con el comando mount, y el desmontaje con el comando umount
mount -> Monta sistemas de archivos. Sintaxis mount partición punto_de_montaje
¿Qué es una partición?
El particionamiento de discos duros es la creación de divisiones lógicas que permite aplicar el formato lógico de un sistema operativo especifico.
Una partición en la arquitectura IBM PC es una parte de una unidad de disco duro que puede tener un sistema de archivo independiente. Hay tres tipos de particiones principales:
1. Partición primaria
2. Partición extendida, que contiene una o más particiones lógicas
3. Partición lógica
Según la arquitectura PC, el disco duro solamente puede albergar 4 particiones primarias. Las particiones extendidas se consideran como particiones primarias. Es decir, se pueden tener 4 particiones primarias, o 3 primarias y 1 extendida, 2 primarias y 1 extendidas, etc. Nunca puede haber más de una partición extendida, lo que si ocurre es que dentro de esa zona del disco duro dedicada a las partición extendida se creen particiones o unidades lógicas, que al fin y al cabo son particiones lógicas pero dentro de la zona de la partición extendida. Resaltar que un disco duro tiene 4 particiones primarias y sólo una de ellas funciona como extendida, y dentro de esta partición extendida se crean a su vez particiones lógicas. Es decir un disco duro puede tener 3 particiones primarias, su partición extendida y 4 particiones lógicas (que forman parte de la extendida). Y entonces podríamos tener 7 sistemas de archivos diferentes (o iguales o repetidos) ya que la partición extendida no cuenta en sí, sino cuentan sus particiones lógicas.
Comandos Vistos en clase:
groupadd -> Agrega grupos Ejemplo: groupadd tux
getent -> Nos da información acerca de las entradas de las bases de datos administrativas. Por ejemplo getent group nos dice todos los grupos que existen en nuestro sistema. La diferencia que tiene esto con hacer cat /etc/group es que este último comando solo nos muestra los grupos de archivo, pero pueden existir usuarios o grupos LDAP, Windows, etc que son mostrados con getent
vigr -> Este comando nos permite editar el archivo de grupos
vipw -> Nos permite editar el archivo de password (/etc/passwd)
newusers -> Permite agregar usuarios masivamente, de los cuales toma la información de un archivo
awk -> Es un lenguaje de búsqueda y procesamiento de patrones. Esto quiere decir que awk es capaz de buscar un patrón dentro de un archivo (al igual que grep) y tratarlo según unas operaciones determinadas. Con awk se pueden desarrollar auténticos programas
Programa hecho con awk
BEGIN { fs=":";
ofs=":";
uid=1100;
gid="tux";
home="/home/";
shell="/bin/bash"; }
{print $1, $1, uid++, gid, $2, home $1, shell }
awk -f crealista /tmp/lista > nu.txt