Foros de daboweb
HARDWARE Y SISTEMAS OPERATIVOS, GNU/Linux, Windows, Mac => GNU/Linux, Unix, *BSD and Free Software, Android => Mensaje iniciado por: klondike en 16 de Febrero de 2006, 01:11:42 am
-
La situación es la siguiente:
ME conecto a internet a través del ordenador de mi hermano que comparte la conexión a través de windows XP ¿Se puede hacer con linux?, el caso es que tengo que usar dhcp, y se me desconfiguran los servidores, por ahora la única solución que he encontrado es ejecutar este script, pero siempre se me gripoa:
#!/bin/bash
while [ 1 ]
do
cp /etc/resolv2.conf /etc/resolv.conf
done
A ver si me decis como hacer que el dhcp no me desconfigure los DNS
-
¿ A que te refieres con que si se puede hacer con Linux ? ¿ Compartir la conexión ? ¿ De XP a Linux ? Instala Samba y dale caña al asunto , claro que se puede.
-
Bueno, me refería a compartir teniendo por host un linux, y por cliente un winxp, pero me preocupa más lo de las DNS
-
Si tienes el servidor montado en linux y necesitas conectarte a él para administrarlo puedes hacerlo desde SSH , con putty por ejemplo.
-
Por lo del DHCP, mira a ver si tienes bien configuradas las DNS en el servidor de DHCP
Para compartir conexion, basta con un pequeño script y unas reglas para el IPTABLES
Mirate este link que explica como hacer el NAT desde linux:
http://bulma.net/body.phtml?nIdNoticia=1522 (http://bulma.net/body.phtml?nIdNoticia=1522)
o este tambien
http://www.experts-exchange.com/Security/Linux_Security/Q_21071935.html (http://www.experts-exchange.com/Security/Linux_Security/Q_21071935.html)
Es simple y divertido...
Despues puedes ir ampliando reglas para que no te accedan a la maquina.
En mis tiempos de conexion via telefonica, tenia un script super guay que estaba muy bien, pero lo perdi ya hace un tiempo...
-
Hola, una GUI para configrar lo basico de iptables es Firestarter, yo lo usaba y esta muy bien, hay mas info aqui:
http://www.nautopia.net/archives/es/linux_cortafuegos_e_iptables/firestarter/firestarter.php (http://www.nautopia.net/archives/es/linux_cortafuegos_e_iptables/firestarter/firestarter.php)
respecto lo del DHCP, yo te diria que si puedes configurar todo con IP estaticas para mi gusto mucho mejor, y en el caso de server con linux, a la hora de configurar iptables todo mejor.
-
Hola, una GUI para configrar lo basico de iptables es Firestarter, yo lo usaba y esta muy bien, hay mas info aqui:
http://www.nautopia.net/archives/es/linux_cortafuegos_e_iptables/firestarter/firestarter.php (http://www.nautopia.net/archives/es/linux_cortafuegos_e_iptables/firestarter/firestarter.php)
Anda la leche, lo que ha dicho!!!!!!!! configurar el iptables con un GUI!!!!! Hereje!!!!! A la hoguera con el!!!!!! :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D
Estuve probando el firestarter hace tiempo, y no me termino de convencer.... prefiero tenerlo yo controlado, pero oye es otra opcion :destroyer: :destroyer:
-
xDDDDDDD
ya digo, no se puede sacar todo el jugo a iptables con firestarter pero lo basico si, ...y es muy bonico, no se porque no te gusto :-D :-D
que conste que a mi tambien me gusta editarlo a pelo :smoke:
salu2
-
Bueno dejemos lo del iptables, no hay manero, quiero encontrar la forma de que el dhcp, no me configure el dns, bajo windows es fácil, pero bajo linux..., por favor, decidme como se hace que estoy por tirar el pc por la ventana
-
quieres decir que has editado /etc/resolv.conf y despues el dhcp lo modifica?
-
de hecho tengo que tener el script de arriba activado para uqe no me lo modifique cada dos por 3
-
Prueba a editar /etc/dhcp3/dhclient.conf para forzar las DNS locales
-
buenas, al grano que ahi prisa :P
Tanto en dhcp3-client como en dhcp-client, tienes un script en /etc/dhclient-script (al menos en debian y ubuntu esta ahí) , que es el cabrón que te esta machacando el /etc/resolv.conf cada vez que el cliente dhcp considera oportuno.
El /etc/dhclient-script es un script en bash, la función que te jode es make_resolv_conf() , buscalá y cambia el código, pues hacer algo así
Código original
make_resolv_conf() {
if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
echo search $new_domain_name >/etc/resolv.conf
chmod 644 /etc/resolv.conf
for nameserver in $new_domain_name_servers; do
echo nameserver $nameserver >>/etc/resolv.conf
done
fi
}
Posible cambio, para solucionar tus problemas
make_resolv_conf() {
if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
echo search $new_domain_name > /dev/null
chmod 644 /etc/resolv.conf
for nameserver in $new_domain_name_servers; do
echo nameserver $nameserver >> /dev/null
done
fi
}
Bueno, pos a disfrutarlo, :dabo:
Un Saludo.
-
probaré a ver.
Que la prisa sea pasajera ;-)
-
Pues na que no hay manera, os dejo el script porque yo no lo entiendo :-(
#!/bin/bash
# dhclient-script for Linux. Dan Halbert, March, 1997.
# Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003
# Modified to remove useless tests for antiquated kernel versions that
# this doesn't even work with anyway, and introduces a dependency on /usr
# being mounted, which causes cosmetic errors on hosts that NFS mount /usr
# Andrew Pollock, February 2005
# Modified to work on point-to-point links. Andrew Pollock, June 2005
# The alias handling in here probably still sucks. -mdz
if [ -n "${dhc_dbus}" ]; then
/usr/bin/dbus-send \
--system \
--dest=com.redhat.dhcp \
--type=method_call \
/com/redhat/dhcp/$interface \
com.redhat.dhcp.set \
'string:'"`env | /bin/egrep -v '^(PATH|SHLVL|_|PWD|dhc_dbus)\='`";
if (( ( dhc_dbus & 31 ) == 31 )); then
exit 0;
fi;
fi;
make_resolv_conf() {
if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
local new_resolv_conf=/etc/resolv.conf.dhclient-new
rm -f $new_resolv_conf
if [ -n "$new_domain_name" ]; then
echo search $new_domain_name >> $new_resolv_conf
else # keep 'old' search/domain scope
egrep -i '^ *[:space:]*(search|domain)' /etc/resolv.conf >> \
$new_resolv_conf
fi
if [ -n "$new_domain_name_servers" ]; then
for nameserver in $new_domain_name_servers; do
echo nameserver $nameserver >>$new_resolv_conf
done
else # keep 'old' nameservers
egrep -i '^ *[:space:]*nameserver' /etc/resolv.conf >> \
$new_resolv_conf
fi
chown --reference=/etc/resolv.conf $new_resolv_conf
chmod --reference=/etc/resolv.conf $new_resolv_conf
mv $new_resolv_conf /etc/resolv.conf
fi
}
run_hook() {
local script="$1"
local exit_status
if [ -f $script ]; then
. $script
fi
if [ -n "$exit_status" ] && [ "$exit_status" -ne 0 ]; then
logger -p daemon.err "$script returned non-zero exit status $exit_status"
save_exit_status=$exit_status
fi
return $exit_status
}
run_hookdir() {
local dir="$1"
local exit_status
if [ -d "$dir" ]; then
for script in $(run-parts --list $dir); do
run_hook $script || true
exit_status=$?
done
fi
return $exit_status
}
# Must be used on exit. Invokes the local dhcp client exit hooks, if any.
exit_with_hooks() {
exit_status=$1
# Source the documented exit-hook script, if it exists
if ! run_hook /etc/dhcp3/dhclient-exit-hooks; then
exit_status=$?
fi
# Now run scripts in the Debian-specific directory.
if ! run_hookdir /etc/dhcp3/dhclient-exit-hooks.d; then
exit_status=$?
fi
exit $exit_status
}
set_hostname() {
local current_hostname=$(hostname)
if [ -z "$current_hostname" -o "$current_hostname" = "(none)" ]; then
hostname "$new_host_name"
fi
}
if [ -n "$new_broadcast_address" ]; then
new_broadcast_arg="broadcast $new_broadcast_address"
fi
if [ -n "$old_broadcast_address" ]; then
old_broadcast_arg="broadcast $old_broadcast_address"
fi
if [ -n "$new_subnet_mask" ]; then
new_subnet_arg="netmask $new_subnet_mask"
fi
if [ -n "$old_subnet_mask" ]; then
old_subnet_arg="netmask $old_subnet_mask"
fi
if [ -n "$alias_subnet_mask" ]; then
alias_subnet_arg="netmask $alias_subnet_mask"
fi
if [ -n "$new_interface_mtu" ]; then
mtu_arg="mtu $new_interface_mtu"
fi
if [ -n "$IF_METRIC" ]; then
metric_arg="metric $IF_METRIC" # interfaces(5), "metric" option
fi
# The action starts here
# Invoke the local dhcp client enter hooks, if they exist.
run_hook /etc/dhcp3/dhclient-enter-hooks
run_hookdir /etc/dhcp3/dhclient-enter-hooks.d
# Execute the operation
case "$reason" in
MEDIUM|ARPCHECK|ARPSEND)
# Do nothing
;;
PREINIT)
# The DHCP client is requesting that an interface be
# configured as required in order to send packets prior to
# receiving an actual address. - dhclient-script(8)
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
if [ -n "$alias_ip_address" ]; then
# Bring down alias interface. Its routes will disappear too.
ifconfig $interface:0- inet 0
fi
ifconfig $interface 0 up
fi
;;
BOUND|RENEW|REBIND|REBOOT)
set_hostname
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
if [ -n "$old_ip_address" -a -n "$alias_ip_address" -a \
"$alias_ip_address" != "$old_ip_address" ]; then
# Possible new alias. Remove old alias.
ifconfig $interface:0- inet 0
fi
if [ -n "$old_ip_address" -a \
"$old_ip_address" != "$new_ip_address" ]; then
# IP address changed. Bringing down the interface will delete all routes,
# and clear the ARP cache.
ifconfig $interface inet 0 down
fi
fi
if [ -z "$old_ip_address" -o "$old_ip_address" != "$new_ip_address" -o \
"$reason" = "BOUND" -o "$reason" = "REBOOT" ]; then
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
ifconfig $interface inet $new_ip_address $new_subnet_arg \
$new_broadcast_arg $mtu_arg
fi
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 4 ) != 4 )); then
for router in $new_routers; do
route add default dev $interface gw $router $metric_arg
done
fi
fi
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
if [ "$new_ip_address" != "$alias_ip_address" -a -n "$alias_ip_address" ];
then
ifconfig $interface:0- inet 0
ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
route add -host $alias_ip_address $interface:0
fi
fi
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 1 ) != 1 )); then
make_resolv_conf
fi
;;
EXPIRE|FAIL|RELEASE|STOP)
if [ -n "$alias_ip_address" ]; then
# Turn off alias interface.
ifconfig $interface:0- inet 0
fi
if [ -n "$old_ip_address" ]; then
# Shut down interface, which will delete routes and clear arp cache.
ifconfig $interface inet 0 down
fi
if [ -n "$alias_ip_address" ]; then
ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
route add -host $alias_ip_address $interface:0
fi
;;
TIMEOUT)
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
if [ -n "$alias_ip_address" ]; then
ifconfig $interface:0- inet 0
fi
ifconfig $interface inet $new_ip_address $new_subnet_arg \
$new_broadcast_arg $mtu_arg
fi
set -- $new_routers
first_router="$1"
if ping -q -c 1 $first_router; then
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
if [ "$new_ip_address" != "$alias_ip_address" -a \
-n "$alias_ip_address" ]; then
ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg
route add -host $alias_ip_address dev $interface:0
fi
fi
# point to point
if [ "$new_subnet_mask" == "255.255.255.255" ]; then
for router in $new_routers; do
route add -host $router dev $interface
done
fi
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 4 ) != 4 )); then
for router in $new_routers; do
route add default dev $interface gw $router $metric_arg
done
fi
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 1 ) != 1 )); then
make_resolv_conf
fi
else
# Changed from 'ifconfig $interface inet 0 down' - see Debian bug #144666
if [ -z "${dhc_dbus}" ] || (( ( dhc_dbus & 2 ) != 2 )); then
ifconfig $interface inet 0
fi
exit_with_hooks 2
fi
;;
esac
exit_with_hooks 0
-
Bueno el script de tu dhclient es distinto al de debian o ubuntu, pero básicamente es el mismo problema.
Si te fijas en la función make_resolv_conf() , en la variable new_resolv_conf, se crea lo que será el futuro nuevo fichero resolv.conf y luego al final se sobrescribe tu fichero /etc/resolv.conf con el nuevo. Para evitar esto solo tienes que cambiar la siguiente linea.
Código original
mv $new_resolv_conf /etc/resolv.conf
Código nuevo
mv $new_resolv_conf /etc/resolv.conf.dhcp
De esta forma, simplemente, tu cliente dchp te crear el fichero /etc/resolv.conf.dhcp y en tu fichero /etc/resolv.conf tendrás la información estática que tu configures y no sera reescrito por el cliente dhcp.
Un Saludo.. :)
-
Al fin, muchas gracias Raúl.
El retraso tiene una justificación; sólo puedo trabajar con Linux cuando tengo un poco de tiempo.
-
Así se hace monstruo , damos el tema por solucionado :-)
-
De acuerdo, que ya iba siendo siglo...
(al fin puedo conectarme desde mi Linux :-) )
-
Veennnga pues....
Cierro tema
-
Bien, por fin ! :destroyer: