BASH compilacion de mini-scripts


BASH es la shell de preferencia, que por default se usa en Linuxes (quizas la mas frecuente), aqui presento algunos mini-scripts que he recopilado al paso del tiempo, algunos bastante interezantes, otros sin sentido, y otros simplemente tontos, una parte de ellos han sido copiados de paginas, irc.

La primera linea es un comentario, como haz de saber los comentarios comienzan con un #, enseguida el codigo, algunos de ellos muentran 2 o mas variaciones de lo mismo.

Indiscutiblemente como casi todos los sistemas operativos tipo *nixes, esta no es ni sera la unica forma de hacerlo, pueden existir miles variaciones de la misma idea, te invito que comentes como las podrias mejorar, simplificar, etc.

# Si aun no estan definidas, define Enviromental variables
: ${HOSTNAME?} ${USER?} ${HOME?} ${PATH}

# Lista Authores y Correo Electronico
# de programas en /usr/bin (este pruede ser cambiado).
# Todavia sale basura en algunas lineas, alguna sugerencia
# de como mejorarlo?
for file in $( find /usr/bin/ -type f -name '*' | sort );do strings -f $file | sed -e "s%/usr/bin/%%" | grep @| grep ""|grep -e "[a-Z0-9\:][_-9a-Z]@[0-9a-Z].[a-Z]"; done

# lista todos los usuarios
for name in $(awk 'BEGIN{FS=":"}{print $1}' < "/etc/passwd" ) ; do echo -n "$name "; done;echo

# Lista todos los usuarios y asignalo a una variable.
lista_usuarios=$(for name in $(awk 'BEGIN{FS=":"}{print $1}' < "/etc/passwd" ) ; do echo -n "$name "; done);echo $lista_usuarios

# Buscando una cadena en un archivo binario.
for i in $( strings "/bin/ls" | grep "mem" ) ; do echo $i; done
for i in $( strings "/bin/ls" | grep "mem" | tr -s "$IFS" '[\n*]') ; do echo $i ; done

# Un ls mas bello.
ls -al | awk '{ print $1, "(" $5 " letras)",n,$8}'

# Un alias a ls tonto que finge toos los archivos son .exe (estas en windows o que?)
alias ls='for i in $(ls${*%.*c}); do echo "${i%.*c}.exe";done'

# Un alias a ls con listado simplificado.
alias ls='echo $(ls${*%.*c})'

#devuelveme mi alias a ls!
alias ls=/bin/ls
alias ls=ls
alias ls=`which ls -al` #que pasa si haces esto?
alias ls='`which ls` -al'
alias ls='$(which ls) -al'

# Renombra archivos *.DOC por *.doc
for i in $(ls *.DOC); do mv -f $i ${i%.DOC}.doc; done

# crea una contrase~a aleatoria
passwordtmp=$(echo $RANDOM | md5sum | md5sum) ; password=$(echo "${passwordtmp:2:9}");echo $password

# Crea una contrase~a aleatoria y asignala como nueva passwd
# Posiblemente no trabajara en tu version de passwd
passwordtmp=$(echo $RANDOM | md5sum | md5sum) ; password=$(echo “${passwordtmp:2:9}”);echo “$password” | passwd –stdin “$USER”;echo “USER: $user Password: $password”

# lista “broken links” en $HOME
find "$HOME" -type l -print0|xargs -r0 file|grep "broken symbolic"|sed -e 's/^\|: *broken symbolic.*$/"/g'

# Otras formas de listar archivos.
`which ls` $PWD/*
for i in $PWD/*; do echo $i; done
/bin/ls -al $PWD/*
ls | xargs -n 8
(printf "Permisos Enlaces Usuario Grupo Bytes Fecha Hora Archivo\n" 7 ; ls -al | sed 1d) | column -t
vdir -a
getfacl *

# Mostrar contenido de los /etc
/bin/cat /etc/* | more
more /etc/*

# Mueve (mv) usando cpio Directorio1 a directorio2
find "directorio1" -depth | cpio -admvp "directorio2"

# Cual es mi IP externa
echo `lynx -dump http://www.whatismyip.com.au | grep Your | cut -f 2 -d :`- | tr -d '-'
ip=$(echo `lynx -dump http://www.whatismyip.com.au | grep Your | cut -f 2 -d :`- | tr -d '-');echo $ip

# Hazme un nmblookup
nmblookup -A `lynx -dump http://www.whatismyip.com.au | grep Your | cut -f 2 -d :`

# Que google?
echo $(dig http://www.google.com | grep "ANSWER SECTION" -A 1 | grep IN | tr '\t' ' ')
lynx -dump "www.google.com" | sed -n '/^References$/,$p' | grep -E '[[:digit:]]+\.' | awk '{print $2}' | cut -d\? -f1 | eval grep \"^$basedomain\" | sed \"s|$basedomain||g\" | sort | uniq

# Descarga fotos de un index
for i in `lynx -dump http://www.adamandevedoll.com/adamandevedolls/pic/1387-lesbian-22/|grep http://|cut -f 4 -d ' '`;do wget $i;done;
grep -Eo '\'r -np http://www.tower-productions.co.uk/naturism/images/?C=S;O=D
wget -r -np http://www.tower-productions.co.uk/naturism/images/?C=S;O=D

# copia archivos via ssh
rsync -avz -e ssh usuario@foo.com:/home/i/ircadmin/Unreal3.2.7/* ./.

# Conexiones Abiertas
netstat -an | grep ESTABLISHED

# Manda un HUP signal a X server 🙂
ps aux | grep X | grep -v "grep" | awk '{ print $2}' | xargs kill -HUP $1

# Encuentra archivos de cierto tama~o
find $HOME/ -type f -size +100000k -exec ls -lh {} \; | awk '{ print $8 ": " $5 }'

# Lista los ultimos 10000 comandos mas usados
history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
history | awk '{print $2}' | awk 'BEGIN {FS="|"}{print $1}' | sort | uniq -c | sort -n | tail | sort -nr

# Un puntero bello
export PS1="\n\u@\H($PWD):"

# Convertir archivos a avi
# Convierte todos *.flvs en $PWD a .avis
# Para convertir otra clase nomas cambia la extencion .flv (ocupas mencoder)
for i in *.flv; do mencoder -ovc lavc -oac mp3lame -o "$i.avi" "$i"; done

# hacer un playlist en escritorio
rm ~/Desktop/misrolas.m3u
find ~/music/ -iname "*.mp3" -print >> ~/Desktop/misrolas.m3u
find ~/music/ -iname "*.ogg" -print >> ~/Desktop/misrolas.m3u

# Muestra nombre de maquina en network
nmblookup -A

# Borrar Archivo(s)
find . -name '._*' -exec rm {} \;
# Con confirmacion (mejor cholo que mal arrepentido)
find . -name '._*' -ok rm {} \;

# Despliega una bella fecha/hora
echo $(date '+%A, %B %e, %Y, a las %l:%M %p')

# Ver Zonas de tiempo
find /usr/share/zoneinfo/* -type f -print | xargs -n 2 | awk '{ printf " %-38s %-38s\n", $1, $2 }' | more
find /usr/share/zoneinfo/* -type f -print | xargs -n 2 | awk '{print $1}' | more

# Salida violenta (sin decir adios)
killall -s HUP -u $(whoami)

# lista todos los links de la URI
lynx -dump "www.google.com" | sed -n '/^References$/,$p' | grep -E '[[:digit:]]+\.' | awk '{print ""$2"\n"}' | cut -d\? -f1
lynx -dump "www.freebsd.org" | sed -n '/^References$/,$p' | grep -E '[[:digit:]]+\.' | awk '{print ""$2"\n"}' | cut -d\? -f1
lynx -dump "www.debian.org" | sed -n '/^References$/,$p' | grep -E '[[:digit:]]+\.' | awk '{print ""$2"
\n"}' | cut -d\? -f1 > ~/Desktop/debianlinks.html

# Lista manpages con el Hippie de Stallman dentro
find /usr/share/man -name '*.gz' -exec zgrep -il stallman {} \; | sed -r 's@.*/@@g; s@\..*@@'
find /usr/share/man* -name '*.gz' -exec zgrep -il "richard.*stallman" {} \; | sed -r 's@.*/@@g; s@\..*@@' | sort -u

# Renombrando multiples extenciones
for old in *.png; do cp $old `basename $old .png`.gif; done

#crackear wifi (simplificado)
cd; mkdir captura;cd captura; sudo wlanconfig destroy; sudo wlanconfig create wlandev wifi0 wlanmode monitor; sudo airodump-ng ; y vez que canal quieres monitorear y: sudo airodump-ng -c CANAL -w dump ; sudo aircrack-ng -b ARCHIVO_CREADO.cap

## Lo siguiente de WIFI aplica a mi Atheros de mi Lappie
## Tengo instalado madwifi.
## COMO root ###########################################

# Lista las AP disponibles (Atheros)
su
wlanconfig ath0 list scan
exit

# Pone mi Atheros en modo monitor
su
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode monitor
ifconfig ath0 up
exit

# Crack con wesside-ng
su
oldpwd=$PWD
cd
cd micaptura
rm wep.cap prga.log key.log
wesside-ng -i ath0 -k 1
cd $oldpwd
exit

# Jugando con airoplay-ng
su
aireplay-ng -3 -b BROADCAST-MAC -h HOST_MAC ath0
airodump-ng -w ARCHIVO_A_GRABAR -c NUMERO_CANAL --bssid BSSID_MAC ath0
airdecap-ng ARCHIVO_A_GRABAR.cap
exit

# Prueba si Atheros puede hacer injection
aireplay-ng --test ath0

#regresarlo a modo normal
su
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode sta
ifconfig ath0 up
wlanconfig ath0 list scan
exit

# Cambiando MAC con macchanger
su
ifconfig ath0 down
macchanger -r ath0 # Randomizada
macchanger -m XX:XX:XX:XX:XX:XX ath0 # Clonada (mensione Clonada? maldicion!)
ifconfig ath0 up
exit

# nmap scaneando
nmap -sS -p 1-64000
nmap -sT -p 1-6400
nmap -A -p 1-65535

# Lista casi hasta composicion quimica de memoria
lshw -C Memory

# CPU info
lshw -C CPU

# Matando firefox Pidgin
pgrep pidgin|xargs kill -s 9
pgrep firefox|xargs kill -s 9

# Espacio Ocupado
du -sh $HOME

# Regresando el gnome panels y menus a default
gconftool --recursive-unset /apps/panel && killall gnome-panel »
# si no funciona, puedes borrarle todo menus y dejarlo bien default.
sudo rm -rf ~/.gconf/apps/panel
killall -s HUP -u $(whoami)

# Lista Contrase~as username en cache de pidgin.
cat ~/.purple/accounts.xml | grep ""; cat ~/.purple/accounts.xml | grep word

# resuelve que arch usa
uname -m | tr [:upper:] [:lower:] | tr -d [:blank:]

# resuelve os:
uname -s | tr [:upper:] [:lower:] | tr -d [:blank:]

# Que version?
cat /etc/issue

# muestra windows shares
smbclient -N -L

# bloquea youtube localmente
#block main youtube site
echo "127.0.0.1 localhost" > /etc/hosts
echo "127.0.0.1 http://www.youtube.com" >> /etc/hosts
echo "127.0.0.1 youtube.com" >> /etc/hosts

# bloquea youtube con iptables
iptables -I FORWARD -d youtube-ui.l.google.com -j DROP

#Para iptables block youtube , para borrarla -D
iptables -A FORWARD -d 74.125.0.0/16 -j DROP
iptables -I FORWARD -d 74.125.0.0/16 -j DROP

# Bloquea todo el subnet
iptables -I FORWARD -d 66.102.9.0/24 -j DROP

#bloquear un puerto
iptables -A INPUT -p udp --dport 2299 -j DROP
iptables -A OUTPUT -p tcp --dport 2299 -j DROP

# dump todo relacionado gconf
gconftool-2 --dump /

# Inicializa el random seed aleatoriamente
SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }')

# Mira si eres root
if [ "X`id -u`" = "X0" -a -z "$RUN_AS_USER" ]; then echo "Tienes superpoderes";fi

# un for-loop
for i in `echo {1..9} 255`; do echo "$i"; done

# si no existe crea directorio
[[ ! -d direct ]] && mkdir `echo direct`

# Si existe borra directorio
[[ -d direct ]] && rmdir `echo direct`

# Verifica si hay pings a google
[[ `ping -c1 -W3 http://www.google.com >/dev/null 2>&1` ]] && echo "Tienes internet" || echo "No tienes Internet"

# Si existe midirectorio y si existen archivos .jpg; copialos a otrolado
[[ -d midirectorio ]] && ( [[ `ls midirectorio/*.jpg 2> /dev/null` ]] && cp midirectorio/*.jpg otrolado/ )

# Forma mas segura de asignar lista de archivos
# a un array.
shopt -s nullglob
textfile_listing=( *.txt )

# lista IP’s en /etc
find /etc -type f -exec cat ‘{}’ \; | tr -c ‘.[:digit:]’ ‘\n’ | grep ‘^[^.][^.]*\.[^.][^.]*\.[^.][^.]*\.[^.][^.]*$’

# List archivos con suid a root (+4000)
for file in $( find /usr/bin /sbin /bin /usr/local/bin -perm +4000 ); do ls -ltF –author “$file”;done

# Creando un respaldo de archivos en $PWD hacia otro directorio
ls . | xargs -i -t cp ./{} otro_directorio

# Ejecuta un ‘reverse DNS lookup’ a IP
ipcalc -h IP

# Usando banner
banner -w 60 Hola Mundo

# Leyendo en voz alta /etc/issue
espeak -v es-la -l 10 -s 170 -p 15 < /etc/issue

# Analizando un archivo en HEX
dd if=/bin/ls | hexdump -C | less

# Des-ensamblando un archivo binario
objdump -d /bin/ls | more

# Deja de echo a terminal
stty -echo
stty echo #muestra echoes en terminal (default)

# Lista services
`which service` --status-all

# Lista interfaces
echo $(/sbin/ifconfig | sed -e 's/ .*//')
echo $(/sbin/ifconfig | awk '/^[a-z]/ { print $1 }')

Borednomore-0.02b Release


Nueva version de mi herramienta, esta incorpora soporte para Google, Flickr y DevianArt, Algunos Bugs se han arreglado y nuevas cosas adicionadas.

Que es Borednomore? Es una herramienta que permite hacer que el escritorio cambie de imagen cada determinado tiempo, usando tus propias fotos o bajadas al azar desde Google, Flickr u DevianArt.

Instalacion:
Baja la version mas nueva desde BOX.NET (a tu derecha), luego:
tar xvf Borednomore-
cd Borednomore
chmod +x Borednomore
./Borednomore -help

Todo lo que metas en el subdirectorio ‘wallpapers’ sera parte de tu show, aqui unos ejmplos de uso.

No descarga, pone un retrazo en cada fondo cada 10 minutos.
./Borednomore -delay 600 -download

Forza descarga a DevianArt, muestra que hace
./Borednomore -v -force 3

Deinstala los fondos
./Borednomore -unset

Que tenga un buen dia =)


Borednomore-0.02b Release

I release a new version of my tool, this new version now have support for Google.com, Flicr.com and DevianArt.com, some bugs are been fix and features add, this next description was taken from the output.
./Borednomore -credits
Borednomore-0.02b

Creates a slide-show with wallpapers
from google.com, flickr.com, custom URI randomly
or if prefer from your own pictures by copy them.
to the wallpaper directory and run:

./Borednomore -download

Author: Alex R. Rodriguez ( dzupd@yahoo.com )
https://zzer.wordpress.com
Contributors: Cousteau (freenode @ #ubuntu-es)
Notes: This is the backend script.

To add your own wallpaper, add them to the 'wallpapers' directory and run:
./Borednomore -download

Use -help for more options.

Install:
Get the latest from Box.net, then

tar xvf Borednomore
cd Borednomore
chmod +x Borednomore
./Borednomore -help

To deinstall wallpapers:
./Borednomore -unset

Have a nice day! =)

New Borednomore-0.02b Release


It’s been a while since last work in my tool, now i had added support for Google.com Flickr.com and Devianart, this last one is complete new.

I fix some bugs and add some more, good new is the GUI interface is almost ready and am specting a release soon, i decide to use python and tk for that, i hope will continue to be very light as the bash.

If you dont know whats Borednomore, this is a copy/paste of the description:

./Borednomore -credits
Borednomore-0.02b

Creates a slide-show with wallpapers
from google.com, flickr.com, custom URI randomly
or if prefer from your own pictures by copy them.
to the wallpaper directory and run:

./Borednomore -download

Author: Alex R. Rodriguez ( dzupd@yahoo.com )
https://zzer.wordpress.com
Contributors: Cousteau freenode @ #ubuntu-es)
Notes: This is the backend script.

As you can see, in this Beta release am planning to add a custom URI, but am working in that, i been ask in how to build a slideshow with existing pictures you own, well the process goes like this.

copy the pictures into the ‘wallpapers’ directory and then run where ‘Borednomore’ is located:
./Borednomore -download

Here is how you install ‘Borednomore’
Download the latest from BOX.NET link in this page, here is the URI if you prefer:
http://www.box.net/shared/irvyo9t7or

Open you shell and run:
tar xvf Borednomore
cd Borednomore
chmod +x Borednomore
./Borednomore

Here are some examples of use:

Forcing download from Deviarnart.com
./Borednomore -force 3

Download at random location, do it verbose and put a delay in between wallpapers of 10 minutes:
./Borednomore -v -delay 600

Deinstall wallpapers
./Borednomore -unset

Have a nice day =)

Como construir un servidor de cuentas shell gratis en Linux Debian


Sun Sep 13 2009 at 2:19pm UTC

Como crear un mini servidor de shells gratis en Linux Debian

En este mini manual crearemos un servidor de cuentas
shell usando Linux Debian como nuestro sistema operativo, quizas
con un poco de modificaciones dependiendo de la distribucion
deseada podriamos lograr los mismos resultados en otros Linuxes.

Usaremos el mismo programa (‘script’) que usamos en el mini manual
para FreeBSD tambien publicado en este blog meses atraz, pero
adaptadolo para Linux Debian.

El software requerido es basicamente alguna version de apache,
openssh-server, fail2ban, harden, sudo, libpam-chroot y algunas mas utilerias.

Objetivo: El usuario accesa al servidor por medio de SSH usando
el username/password assignada a ‘newuser/newuser’ respecti-
vamente, al identificarse, el sistema ejecutara la shell asignada para
‘newuser’ ubicada en ‘/sbin/newshell.sh’, dicho programa creara el
usuario, permisos, restringira el usuario, creara su web en ‘$HOME/public_html’
ademas su espacio web sera accesible en:
http://dominio.com/~username

Caracteristicas del servicio:
Espacio: 20MB
Procesos: 10
Web Space: Incluido en $HOME/public_html

Nota: Indudablemente existen miles de formas de hacer un servidor
de shells gratis, estoy seguro que no soy el primero ni el ultimo que creara
un manual parecido, debes de recordar que crear un servidor de este tipo
implica demaciados riesgos, especialmente si lo piensas usar bajo el internet,
si eso piensas deberas de poner atencion en “hardening” el sistema, en la
web existen muchos manuales al respecto, ademas si estas leyendo este manual
algunos meses/dias despues de la fecha en que lo escribi debes
de recordar que la internet es un moustro dinamico, cambia cada dia y posible-
mente los conceptos y metodos manejados aqui no aplicaran a futuro.

Primero asumo que tienes instalado un debian sin nada mas que BASE.
No X, no nada inecesario, la regla es simple: “…mientras menos programas instalados,
menos cosas tendras de que preocuparte.” , asumo tambien que haz habilitado
user quotas y group quotas en el sistema.

Dicho lo anterior, comenzamos:
Primero hagamonos root:
su

Actualizamos sistema:
apt-get update; apt-get upgrade

Instalamos y configuramos apache2, sudo, sshd, openssh-server, harden,
fail2ban, libpam-chroot:
(si no sabes usar ‘fail2ban’ ‘libpam-chroot’ y ‘harden’ puedes instalar solo apache2, sudo
y openssh-server por ahora, si recomiendo instales esos paquetes a futuro)
apt-get install apache2 sudo openssh-server harden fail2ban libpam-chroot

Habilita web space para usuarios en ‘public_html’:
a2enmod userdir

Creamos grupo ‘newshell’
addgroup newshell

Creamos la entrada a nuestra shell en /etc/shells:
adiciona /sbin/newshell.sh en
nano /etc/shells

Creamos nuestra shell, crea un archivo llamado:
/sbin/newshell.sh, y dale permisos de ejecucion asi como
pertenecer a ‘newuser’

touch /sbin/newshell.sh
chown newuser /sbin/newshell.sh
chmod 700 /sbin/newshell.sh

A continuacion copia y pega este codigo en /sbin/newshell.sh
nano /sbin/newshell.sh

#!/bin/bash
# dzup ( zzerver [at] gmail.com )
# Sun sep 13 2009 at 4:55pt
#echo "http://example.com"
echo "Hello,
Welcome to a free shell service, you are welcome to do anything you would like, as long as you do not abuse this service or conduct any malicious act, we encourage users of all skill to give us a try. We offer a free subdomain with your subscription to our free service. Remember, it is important for you to respect our service, as other users do like using us. Also, you may freely browse the web by entering w3m then the url. If you have any questions or concerns, please email them us.

Thanks again for using our service, and have a safe day.

echo “Welcome to a free shell service, powered by Debian”
num2=`echo $RANDOM` # create a ramdom number to avoid floods.
echo “Magic Number: $num2”
echo “What is the Magic Number?”
read num1
if [ “$num2” != “$num1” ] ; then
# Avoid Flows
echo “Sorry, Wrong Magic Number, try again …”
read null
exit
fi
echo “Please enter your username”
echo “username: ”
read usuario
if [ “$usuario” = “” ] ; then
# username is null.
echo “Invalid username, try again…”
echo “Press Enter to exit.”
read null
exit
fi
hacklogin=`echo “$usuario” | tr -d “|;\1404247134176$”`
if [ ! “$usuario” == “$hacklogin” ] ; then
# dangerous caracteres.
echo “Invalid Username, try again …n”
echo “Press Enter to exit.”
read null
exit
fi
# verify if username already exist.
safelogin=`echo “$usuario”|tr -cd “[:alnum:]”`
password=`echo $RANDOM$RANDOM`
existe=`sudo cat /etc/shadow|sed ‘y/[:]/[ ]/’|awk ‘{print $1}’|grep $safelogin`
existe=`echo $?`
if [ “$existe” = 0 ] ; then
# username already in system.
echo “username: ‘ $safelogin ‘ already in our system, try again … ”
echo “Press Enter to exit.”
read null
exit
fi
respuesta=”y”
echo “Ready to add $usuario in our system.”
echo “confirm ‘y’ to yes, any other character to abort.”
echo “by answering ‘y’ you agree to our terms and policies.”
echo “Correct (y/n)?”
read correcto
if [ “$correcto” != “$respuesta” ] ; then
# didn’t not accept our terms, so …byebye.
echo “Aborting creation, thanks.”
echo “(if this is an error, we was expecting ‘ $respuesta ‘ to create your shell, try again).”
echo “Press Enter to exit.”
read null
exit
fi
# Lets create our new user.
echo “Creating $usuario …”
#sudo useradd -g newshell -s /bin/bash -p `mkpasswd xxx` test2
sudo useradd –home /home/$safelogin -g newshell -s /bin/bash -p `mkpasswd $password` $safelogin
sudo mkdir /home/$safelogin #create his/her home
echo “you been issue the password:”
echo $password
sudo mkdir /home/$safelogin/public_html #create his/her http space.
sudo chown -R $safelogin:newshell /home/$safelogin/ #he own everything in his home.
sudo chmod -R 705 /home/$safelogin #make sure nobody in our group can read my files
sudo chmod -R 775 /home/$safelogin/public_html/ #make sure apache can read public_html
sudo cp /etc/skel/.bashrc /home/$safelogin #cp skel(modify /etcskel/.bash_profile)
sudo chown -R $safelogin:newshell /home/$safelogin/.bashrc # he/her own this
sudo edquota -p newuser $safelogin #Copy user quotas from our userexample
#sudo quotacheck -a #lets update quotas database
echo “User succesfully created!”
echo “Thank you for registering with us.”
echo “to login into your new shell use: ssh -l $safelogin example.com”
echo -e “username: $safelogin”
echo “password: $password”
echo -e “Press Enter to exit.”
read null
exit

Crea usuario con estas caracteriscticas:
username: newuser
password: newuser
group: root newshell y sudo
shell: /sbin/newshell.sh

adduser newuser

Editamos /etc/sudoers y nos aseguramos que ‘newuser’ use sudo
sin necesidad de intercambio de passwords:
nano /etc/sudoers

Dentro de /etc/sudoers adiciona:

root ALL=NOPASSWD: ALL
%sudo ALL=NOPASSWD: ALL
sudo ALL=NOPASSWD: ALL
newuser ALL=NOPASSWD: ALL

Edita las quotas para ‘newuser’:
edquotas newuser

Dentro de quotas, assigna los siguientes valores, tu archivo debera
lucir algo similar a esto, ello reducira espacio a 20mb y 2mb extra
cuando sea necesario:

Disk quotas for user newuser (uid 1003):
Filesystem blocks soft hard inodes soft$
/dev/xvda 40 20480 2048 10 0$

Limitamos procesos y mas cosas en /etc/security/limits.conf
nano /etc/security/limits.conf

Adiciona estas lineas:

@newshell hard nproc 10
@newshell soft nproc 10
@newshell hard cpu 5
@newshell hard nofile 100
@newshell hard memlock 32
@newshell hard stack 8192
@newshell hard` core 20480
@newshell hard data 20480
@newshell hard fsize 20480
#@newshell hard as 32
@newshell hard locks 8192

Limita algunos valores de sysctl:
sysctl kernel.randomize_va_space=2
sysctl net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl net.ipv4.icmp_ignore_bogus_error_responses=1
sysctl net.ipv4.conf.all.accept_redirects=0
sysctl net.ipv4.conf.default.accept_redirects=0
sysctl net.ipv4.conf.all.accept_source_route=0
sysctl net.ipv4.conf.default.accept_source_route=0
sysctl net.ipv4.ip_forward=0
sysctl kernel.sysrq=0
sysctl net.ipv4.tcp_syncookies=1
sysctl net.ipv4.conf.all.rp_filter=1
sysctl net.ipv4.conf.all.log_martians=1

Modifica tu /etc/motd para que se vea atractivo (opcional).
nano /etc/motd

Modifica motd de ‘sbin/newshell.sh’ para que se vea
atractivo (opcional), recuerda modifica solo los comandos
‘ echo “bla-bla” ‘, deja lo demas intacto.

(si tienes alguna mejora al codigo fuente, favor de
comentarlo en la seccion, para que otros usuarios tomen
nota de tu mejora, ademas podria ser adicionado al programa
original respetando tus creditos de programacion, gracias)
nano /sbin/newshell.sh

Restringe acceso ssh a root:

sudo nano /etc/ssh/sshd_config

Modifica el archivo de tal forma que quede asi:

# Authentication:
LoginGraceTime 90
PermitRootLogin no
StrictModes yes

Mira que mas programas son inecesarios:
find / -path /proc -prune -o -type f -perm +6000 -ls

…ya casi terminamos, ahora restringue algunos comandos
(adiciona mas si lo deseas):
chmod 750 `which ping`
chmod 750 `which yes`
chmod 750 `which netstat`
chmod 4750 `which sudo`

Sale de ‘root’
exit

Felicidades!! ya tienes un servidor ssh gratis, para probar si todo
funciona como se desea, entra al servidor usando ‘newuser/newuser’
ssh -l newuser

Si todo marcha bien, el script creara un usuario nuevo en sistema y
asignara un espacio web, restringira el nuevo usuario a 10 procesos
y 20mb de espacio como quota.

La diversion apenas empieza, ahora deberas de enfocarte en asegurar
tu servidor, mantener un servidor de este tipo requiere de mucho
tiempo y dedicacion, sobre todo debes de mantenerte al dia de los
nuevos ‘exploits’ que inevitablemente SI SURGIRAN, este mini manual
no asume que tu maquina estara completamente asegurada, eso dependera
del administrador, ni tampoco asume ser el metodo correcto, solo demuestra
entre otras cosas la simple idea general de como podras hacerlo, ESTAS ADVERTIDO!

Puntos notables: si php se instala en tu servidor, asegurate que limites los usuarios
de alguna forma, ya sea usando un ‘chroot’ o/y quitando ‘safe mode’, contempla
crear una ‘chroot’ para los usuarios, restringir retransmicion de emails, compiladores
entre infinidad de mas cosas, recuerda no caer en la “esquizofrenia” que
puedes hacer un sistema indespensablemente inutil y aburrido, recuerda que
los sistemas operativos *NIX son hechos relativamente seguros, algunas personas
aseguran tanto su sistema que lo hacen practicamente inutil, la regla de oro es
simple “…instala solo lo que necesites.” y olvidate de lo demas, mate.

Si crees que este manual es de utilidad u tienes alguna idea/sugerencia
que deseas compartir con la comunidad, favor dejar tu comentario, todas las
opiniones seran publicadas, recuerda que todos mantenemos la comunidad
*NIX libre siempre que muevamos ideas.

Suerte y disfruta! =)
dzup

Borednomore – Instalador de fondos de pantalla aleatorio


NUEVA VERSION DISPONIBLE

Borednomore-0.02b

Ahora disponible para descarga, se arreglaron bastantes bugs y adicionado ahora soporte para google, o flicks, proximamente devianart, te recomiendo que instales esta version pues esta mejorada y mejor organizada, deje la otra version para descarga alternativa, tu decides. aqui esta el link:

http://www.box.net/shared/irvyo9t7or

Si lo deseas bajalo de la ventanita de la derecha.

– version vieja – version vieja – version vieja

Borednomore Ver. 0.01
dzupd@yahoo.com
WebBlog: https://zzer.wordpress.com
Sat Mar 28, 2009 at 10am

Nota: Este script esta en constante evolucion, te recomiendo bajarlo de la caja derecha, haz click en Borednomore-VERSION esa sera la version mas actalizada.

En este momento, Borednomore necesita: *BSD / Linux, Gnome2, wget y lynx para funcionar.

El programa cambia aleatoriamente tu fondo de pantalla, las fotos las baja automaticamente de www.flickr.com, haciendo este programa bastante divertido.

Por defecto, Borednomore descargara hasta 20 nuevas fotos de http://flickr.com y pondra un “slide show” (rotacion automatica) de ellas como fondo de escritorio, cambiara cada 180 segundos por foto, es posible poner tus propias fotos metiendolas en el directorio donde esta Borednomore y instruir el programa a NO descargar nuevas fotos y regenerar un archivo XML nuevo, y puedes usar el argumento -d para cambiar el lapso de segundos, favor de ver -help para mas ayuda.

INSTALACION:

Descargue el programa de:
https://zzer.wordpress.com

Descomprimelo:
tar xvf Borednomore
cd Borednomore
chmod +x Borednomore


Si desea instalarlo para todos los usuarios, hagase root y:

cp Borednomore /usr/bin/Borednomore
chmod +x /usr/bin/Borednomore


Simplemente ejecutelo:
./Borednomore

Para ver su pagina de ayuda:
./Borednomore -help

Para desinstalar los wallpapers:
./Borednomore -unset

Si lo desea pongalo en crontab!, de esta forma descargara nuevas fotos automaticamente, recuerde que por defecto la duracion de cada fondo es 180 segundos, multiplique por 20 (que es el numero de fondos que descargara cada vez), eso le da 1 hr, ponga su crontab a ejecutar cada hora!

Para editar su crontab:
crontab -e

Adicione:

0 1 * * * /path/to/your/Borednomore/Borednomore

Eso ejecutara el programa cada hora.

Gracias por usar este programa, que se divierta!

Bajalo de aqui (SI ese enlace no funciona,quiere decir que he puesto una version nueva, favor de bajarlo de la caja negra de la derecha bajo el nombre “Borednomore-VERSION”):
http://www.box.net/shared/r83kc0tqnu

cat CHANGELOG
Para ver el sobre ultimos cambios.

Borednomore – Random wallpaper installer


Borednomore Ver. 0.01
WebBlog: https://zzer.wordpress.com
Sat Mar 28, 2009 at 10am

NOTE: This script is changing from time to time, please try to download it from the black “Box” on the right (Under Borednomore-VERSION) if for any reason the link in this post do not work.

At this time You Need: *BSD / Linux, gnome2, wget and lynx installed.

This script change randomly your wallpaper from www.flickr.com, the pictures are supply in random fashion from the site, making this little script fun to view and not too boring.

INSTALL:

Download the file from:
https://zzer.wordpress.com
…and look at the BOX window, click on Borednomore-VERSION

Unzip it:
tar xvf Borednomore
cd Borednomore
chmod +x Borednomore


if you like to installed for everybody on the system, become root and:

cp Borednomore /usr/bin/Borednomore
chmod +x /usr/bin/Borednomore


Simple execute the program:
./Borednomore

Try help:
./Borednomore -help

To uninstall wallpapers try:
./Borednomore -unset

Make sure you have write permits in the directory where Borednomore is located, this script by default will try to download up to 20 new pictures / wallpapers from www.flickr.com and do a 180 seconds per picture slide show in your Desktop, however you can put your own pictures and run Borednomore with the neccesary arguments to instruct the script to don’t download and regenerate your own XML file, you may use -d to change the time in seconds, please use -help to see how can you do that.

If you like, put it on crontab! that way will download new files automaticly, remember by default the wallpaper last 180 seconds, multiply that by 20 (number of wallpapers the script will download at one time), that equals 1 hr, set your crontab to 1hr and you are in business.
To edit your crontab do (if you want to do this …you must edit and modify Borednomore.sh to reflect your needs):
crontab -e

and add:
0 1 * * * /path/to/your/Borednomore/Borednomore.sh

This will run every 60 minutes.

Thank you for using this program, have fun!
Download Borednomore here:
http://www.box.net/shared/r83kc0tqnu