OS-sw ver.: CCBot/2.0 (https://commoncrawl.org/faq/)
Login date: 24 Jun 19 - 11:57:29
IP Address: 54.227.157.163Cursore

Registrati

Per far sì che il router DGND4000 si prenda un file hosts con i nostri hosts e non con i suoi, dobbiamo creare uno script che killi il processo dnrd che la configurazione di default carica tramite il file /usr/etc/rc_apps.

nb Purtroppo è un eseguibile compilato e non modificabile.
Altra considerazione, la directory /etc/* viene ricreata copiando il contenuto della directory /usr/etc ad ogni boot. Quindi se modifichiamo i files contenuti in /etc al reboot verranno sostiutiti con quelli dell'/usr/etc.
Per ovviare a ciò ho deciso di creare lo script mod_hosts.sh in /usr/etc. Praticamente lo script sostituisce il file hosts di default con il nostro, cattura il processo dnrd_1 (egli gestisce la configurazione di rete del router) che ha caricato in memoria il file hosts di default e lo killa, facendolo poi ripartire correttamente.

Per prima cosa bisogna montare in scrittura la / e posizionarsi in /usr/etc:

# mount -n -o remount,rw /
# cd /usr/etc/



Creare ed editare il file mod_hosts.sh

# touch mod_hosts.sh
# vi mod_hosts.sh



sleep 15
/bin/cp /usr/etc/hosts /etc/hosts
kill -9 `ps -o pid | grep dnr | awk '{print $1}'`
/var/dnrd_1 -a 192.168.0.1 -m hosts -c off -r 0 -s 8.8.8.8 -s 8.8.4.4 -o 0 -q xxx

(l'opzione -s specifica i dns, io ho messo quelli di google)

Diamo eseguibilità allo script creato:

# chmod +x mod_hosts.sh



Ora modifichiamo il file hosts che si trova sotto /usr/etc/hosts:

# vi /usr/etc/hosts



Editandolo nel formato corretto

192.168.0.1 router.home
192.168.0.2 netbook.home
192.168.0.3 computer1.home


Ora creiamo un altro script che girarà in loop in modo che controlli che non torni il file hosts della netgear. Questa cosa perchè se il modem ha un problema di rete viene ricaricato il famigerato rc_apps:

# touch /usr/etc/check_local_dns.sh
# vi /usr/etc/check_local_dns.sh



while true; do
  if (cat /etc/hosts | grep "routerlogin.com")
    then
      mount -n -o remount,rw /
      /usr/etc/mod_hosts.sh
  fi
sleep 20
done


Inseriamo il nostro script per farlo partire al boot:


# vi rcS



Modifichiamo il file rcS mettendo in fondo al file l'esecuzione del nostro script:


.
.
.
# LED show we have boot finished
#/usr/sbin/led_app off 71 ; /usr/sbin/led_app on 70
#/usr/sbin/led_app off 74

#/bin/ps
#/bin/sleep 5
#/bin/sh

/bin/sleep 60
/sbin/insmod /lib/modules/usbserial_filter.ko
/sbin/insmod /lib/modules/GPL_NetUSB.ko
/sbin/insmod /lib/modules/NetUSB.ko

/bin/ps
#/bin/sleep 15
#/usr/sbin/rc check_fw start
/usr/etc/check_local_dns.sh &




Riavviamo il modem e vediamo se tutto è andato a buon fine pingando ai nostri hosts e con un ps vediamo se lo script rimane in esecuzione.

Extra

Per riavviare al volo il processo se abbiamo editato il file /usr/etc/hosts e non vogliamo riavviare il modem basta rilanciare da console telnet il comando:

# ./mod_hosts.sh



Visite totali76848
Questo sito web usa i cookies per gestire alcune funzionalità, quali navigazione, autenticazione, commenti, etc. Utilizzando il nostro sito web, accetti l'utilizzo dei cookies.