Scatena ancora più energia dal tuo router di casa con il DD-WRT Mod-Kit

Sommario:

Scatena ancora più energia dal tuo router di casa con il DD-WRT Mod-Kit
Scatena ancora più energia dal tuo router di casa con il DD-WRT Mod-Kit

Video: Scatena ancora più energia dal tuo router di casa con il DD-WRT Mod-Kit

Video: Scatena ancora più energia dal tuo router di casa con il DD-WRT Mod-Kit
Video: This Week In Hospitality Marketing Live Show 303 Recorded Broadcast - YouTube 2024, Novembre
Anonim
 Ti abbiamo già mostrato come modare il tuo router di casa con il firmware alternativo DD-WRT per prestazioni notevolmente migliorate, e oggi ti mostreremo come portarlo ulteriormente con il DD-WRT Mod-Kit.
Ti abbiamo già mostrato come modare il tuo router di casa con il firmware alternativo DD-WRT per prestazioni notevolmente migliorate, e oggi ti mostreremo come portarlo ulteriormente con il DD-WRT Mod-Kit.

Se non lo hai già fatto, assicurati di controllare i due articoli precedenti della serie:

  • Trasforma il tuo router di casa in un router Super-Powered con DD-WRT
  • Come potenziare il segnale di rete Wi-Fi e aumentare la portata con DD-WRT

Supponendo che tu abbia familiarità con questi argomenti, continua a leggere. Tieni presente che questa guida è un po 'più tecnica e che i principianti dovrebbero prestare attenzione durante la modifica del router.

Panoramica

Questa guida fornirà una panoramica passo passo su come creare il proprio firmware DD-WRT con modifiche e aggiunte utilizzando il "kit di modifica del firmware".

Il kit di modifica del firmware consente di apportare modifiche al firmware senza compilarlo dalla sorgente. Apportare modifiche in questo modo, con l'aiuto degli script forniti, diventa una semplice questione di download, sostituzione e cancellazione di alcuni file.

Il motivo predominante per usare questo metodo è perché ultimamente il supporto di DD-WRT per i pacchetti Openwrt IPKG si è spostato verso i router dotati di hard disk (tramite USB), il che rende il mod-kit l'unico modo funzionante per installare correttamente i pacchetti IPKG per i casi in cui un HD non è disponibile. Inoltre, questo metodo ha il vantaggio di alleviare la dipendenza da JFFS per l'installazione dei pacchetti, che per i router con solo 4 MB di flash è un problema reale.

Foto di publicenergy

obiettivi

Mentre le istruzioni per questa procedura sono dettagliate sulla wiki di DD-WRT e sul sito dello sviluppatore, miriamo a rendere questa guida una procedura di copia e incolla che chiunque può utilizzare per raggiungere i seguenti obiettivi:

  • Installa il pacchetto knockd e le sue dipendenze.
  • Installa il pacchetto ssmtp con configurazioni generate da NVRAM.

    Opzionalmente con supporto per smtp TLS (a.k.a. supporto Gmail).

    Una volta che hai seguito questa procedura dovrebbe essere opportunamente semplice adattarla per altre installazioni di pacchetti.

    Avvertimento: Calpestare leggermente … tieni presente che l'uso scorretto del kit di modifica può lasciarti con un router che ha bisogno di essere sbrecciato (come a sua volta un mattone inutile). Tuttavia se sei un vero disadattato probabilmente sottoscrivi l'ideologia che, colui che può distruggere una cosa, controlla una cosa, e solo i veri fanatici lo fanno

    Image
    Image

    Prerequisiti

    1. Utilizzando questa procedura possibile mattone il tuo router, come nel fare il tuo router inutilizzabile, non ci assumiamo alcuna responsabilità per eventuali danni che possono essere causati direttamente o in altro modo a causa dell'uso delle procedure di seguito.
    2. Questa procedura è stata eseguita su sistemi basati su Debian (Lenny, Squeeze e Mint) e le istruzioni seguenti presuppongono che ne stiate usando uno.
    3. Questa procedura è consigliata solo per le persone che hanno esperienza con il flashing del router con DD-WRT, con tutti i prerequisiti, avvertimenti e limitazioni applicabili alla configurazione dell'hardware. un buon punto di partenza sarebbe il nostro Turn Your Router Home in un router Super-Powered con guida DD-WRT.
    4. Il tuo router deve supportare almeno la versione "mini" di DD-WRT.
    5. Questa procedura è stata creata e testata sui router Linksys WRT54GS / L, se si utilizzano router di altri fornitori, il chilometraggio potrebbe essere molto.

    Impostare

    Installazione dei pacchetti richiesti

    Il kit di modifica del firmware ha alcune dipendenze per la compilazione e il funzionamento. Per installarli / aggiornarli tutti in una volta Emettere questo comando in un terminale:

    sudo aptitude install gcc g++ binutils patch bzip2 flex bison make gettext unzip zlib1g-dev libc6 subversion

    Scarica il mod-kit

    Crea una sottocartella e prendi il kit dall'SVN ufficiale:

    mkdir firmware_mod_kit cd firmware_mod_kit svn checkout https://firmware-mod-kit.googlecode.com/svn/trunk/ firmware-mod-kit-read-only cd firmware-mod-kit-read-only/trunk/

    Scarica un firmware su cui lavorare

    La prima cosa da considerare è quale versione vuoi usare? Una regola generale è: in caso di dubbio utilizzare "mini". Questo perché finché il tuo router supporta almeno la versione "mini", usarlo ti dà tutte le funzionalità più comunemente utilizzate senza alcun bloatware. lasciando nella maggior parte dei casi spazio per le procedure e persino uno spazio JFFS per altri usi.

    Una volta che hai deciso una versione, si consiglia di utilizzare l'ultima versione del firmware disponibile, in quanto tendono ad avere un sacco di correzioni di bug rispetto alle loro controparti "stabili". Al momento della stesura di questo, l'ultima era "03-17-11-r16454" e questa revisione è usata nei comandi che seguono.

    wget https://www.dd-wrt.com/dd-wrtv2/downloads/others/eko/BrainSlayer-V24-preSP2/2011/03-17-11-r16454/broadcom/dd-wrt.v24_mini_generic.bin

    Per rendere più facile tenere traccia di quale versione stiamo usando, rinominare il file scaricato per rappresentare il suo numero di versione:

    mv dd-wrt.v24_mini_generic.bin dd-wrt.v24_mini_generic-03-17-11-r16454.bin

    Questo è ovviamente facoltativo, ma i comandi seguenti presuppongono che tu abbia rinominato il file.

    Estrazione del firmware

    Per poter modificare i file all'interno del firmware, è necessario estrarne il contenuto in una directory temporanea. La sintassi di questo comando è:./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY Nel nostro caso, ciò si tradurrebbe in:

    ./extract_firmware.sh dd-wrt.v24_mini_generic-03-17-11-r16454.bin./working_dir_mini1

    Nota: la prima volta che si esegue questo comando, vengono creati gli strumenti mod-kit sul proprio sistema. questo succede solo una volta e potrebbe richiedere un po 'di tempo … quindi sii paziente …

    Installazione dei pacchetti

    Ora che il firmware è estratto, possiamo installare i pacchetti su di esso. In generale, la procedura consiste nel scaricare il pacchetto e le sue dipendenze sotto forma di un file ipk dal repository openWRT. Una volta scaricati, installali nel firmware estratto usando lo script fornito.

    Il pacchetto knockd

    Le istruzioni dettagliate su come configurare e utilizzare Knockd saranno dettagliate in un prossimo articolo, quindi puoi scegliere di saltare questo passaggio per ora o farlo in preparazione per il futuro, dato che Knockd non occupa molto spazio.

    Knockd è un demone che ascolta gli eventi di comunicazione sul livello di collegamento per le sequenze, quindi agisce su di essi. Ciò significa che puoi far sì che il dispositivo che esegue il demone non "ascolti" nemmeno sulle porte (una scansione delle porte non le vedrà come aperte) e continui a farlo fare qualcosa di cui hai bisogno, da un singolo comando fino in fondo a una sceneggiatura completa. Utilizzando questa tecnica è possibile attivare il server per eseguire qualsiasi tipo di operazione necessaria in remoto (su Internet) senza esporre la rete domestica.

    Knockd ha solo una dipendenza elencata, quindi scarica il pacchetto e la sua dipendenza emettendo:

    wget https://downloads.openwrt.org/backports/rc5/knockd_0.5-1_mipsel.ipk wget https://downloads.openwrt.org/whiterussian/packages/libpcap_0.9.4-1_mipsel.ipk

    Installa il "knock daemon" (knockd) ipk nel firmware:

    ./ipkg_install.sh knockd_0.5-1_mipsel.ipk./working_dir_mini1/

    Installa l'IPK "packet capture" (libpcap) nel firmware:

    ./ipkg_install.sh libpcap_0.9.4-1_mipsel.ipk./working_dir_mini1/

    Poiché "knockd" può essere invocato con un file di configurazione alternativo (come verrà spiegato in un prossimo articolo), non è necessario eseguire altre operazioni e si può saltare alla sezione di costruzione del firmware, se è tutto ciò che si desidera installare.

    Il pacchetto SSMTP

    Il pacchetto SSMTP consente al router di inviare messaggi di posta elettronica proprio come mostrato nel nostro How To Setup Email Alerts su Linux utilizzando Gmail o SMTP per i server. A questo punto ti abbiamo promesso che mostreremo come configurarlo per DD-WRT e che ora forniremo. Questo è utile soprattutto se stai andando a creare script sul router che vorresti ricevere feedback sul loro funzionamento via email.

    L'installazione di questo pacchetto è un po 'più complessa dei normali sistemi Linux a causa delle limitazioni imposte da un sistema embedded, quindi fai un respiro profondo … pronto? …. Andiamo…:)

    Scarica il pacchetto:

    wget https://downloads.openwrt.org/backports/rc5/ssmtp_2.61-1_mipsel.ipk

    Installa l'ipk "ssmtp" nel firmware:

    ./ipkg_install.sh ssmtp_2.61-1_mipsel.ipk./working_dir_mini1/

    Supporto TLS (facoltativo) SSMTP non elenca nessun altro pacchetto come dipendenza, tuttavia se si vuole essere in grado di utilizzare un gateway smtp che richiede l'autenticazione TLS (ad es. Gmail), è necessario installare anche il pacchetto openSSL. Nota: C'è un ENORME inconveniente a fare questo in forma di spazio notevolmente ridotto sul router per JFFS in seguito. Cioè, il pacchetto openSS richiede circa 500K di spazio dal tuo totale di 4MB (per un normale router di supporto non "mega"), combinato con il sovraccarico del JFFS e scoprirai che la tua sinistra con, ma pochi preziosi, blocchi di spazio JFFS libero (circa 60 KB su WRT54GL).

    Dato che ci sono ancora non TLS che richiedono server smtp (di solito i tuoi ISP), ti suggerisco di dedicare un minuto a pensare se hai davvero bisogno di usare il TLS che richiede il gateway.

    Se hai deciso di abilitare il supporto TLS nonostante il suo svantaggio, scarica il pacchetto openSSL:

    wget https://downloads.openwrt.org/whiterussian/packages/libopenssl_0.9.8d-1_mipsel.ipk

    Installa l'IPK "openSSL" (libopenssl) nel firmware:

    ./ipkg_install.sh libopenssl_0.9.8d-1_mipsel.ipk./working_dir_mini1/

    configurazioni Esiste una limitazione con il pacchetto SSMTP, che non è possibile richiamarlo con un file di configurazione alternativo. Poiché il firmware è di sola lettura quando è sul router, ciò significa che è possibile eseguire l'hardcode della configurazione nel firmware solo dopo l'installazione. Tuttavia, cosa succede se non vogliamo passare attraverso tutti i passaggi di modifica del firmware, solo per modificare le impostazioni di posta elettronica? (ad esempio una modifica della password).

    A tal fine, sia Jeremy (il creatore del kit di mod firmware) sia io abbiamo raggiunto la conclusione (indipendentemente se posso aggiungere umilmente) che l'unico modo corretto per farlo sarebbe quello di:

    1. Rendere la posizione dei file di configurazione che il pacchetto ssmtp punta alla posizione di sola lettura sotto ecc., Puntare alla directory tmp che è scrivibile a runtime.
    2. Creare uno script che generi dinamicamente le configurazioni basate sulle variabili NVRAM all'avvio.

    Per ottenere ciò, sono necessari alcuni passaggi aggiuntivi …

    Symlink della directory di configurazione ssmtp Come spiegato sopra, dobbiamo fare il / Etc / ssmtp posizione sul router, puntare a / tmp directory come il solo posto scrivibile sul router in fase di esecuzione. Per fare ciò, eliminare la directory ssmtp creata dal programma di installazione di ipk:

    rm -rf./working_dir_mini1/rootfs/etc/ssmtp/

    Creare un nuovo collegamento simbolico che punti / etc / ssmtp sul file system root del router, in modo che punti a / tmp / etc / ssmtp come percorso assoluto:

    ln -s /tmp/etc/ssmtp/./working_dir_mini1/rootfs/etc/ssmtp

    Nota: Anche se questo sembra illogico in questo momento, perché stiamo indicando la directory di configurazione del pacchetto in una posizione esterna alla directory di lavoro del kit di modifica del firmware, ti assicuro che questo aspetto è assolutamente soddisfacente dal punto di vista dei router in fase di esecuzione.

    Uno script di init Mentre è completamente possibile non iniettare questo script nel firmware ed eseguirlo in seguito come script di avvio, ritengo opportuno inserirlo qui, se non altro per un uso futuro. Inizialmente Jeremy ha creato il copione su misura per la richiesta di qualcuno, in seguito l'ho adattato e aumentato per renderlo più compatibile con il DD-WRT e la segnalazione syslog.

    Crea il nuovo script di init (avvio):

    vi./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

    Nota: puoi usare un altro editor, io uso vi perché è coerente con ciò che è disponibile sul router … Rendi questo il suo contenuto:

    #!/bin/sh # # title: ssmtp_nvram.sh # author: Jeremy Collake and Aviad Raviv # site: https://www.bitsum.com, https://howtogeek.com # # script to build config file from nvram vars. # will work for any config file that uses # var=value type pairs. # # uses prefixes for nvram variables. # # i.e. # ssmtp_hostname=something # translates to ssmtp.conf # hostname=something # logger_func() { logger -s -p local0.notice -t SSMTP_init $1 }

    logger_func '###########Started the SSMTP init run###########' logger_func 'Creating the etc directory in /tmp' [ ! -d /etc/ssmtp/ ] && mkdir -p /tmp/etc/ssmtp/ CONFIG_FILE=/etc/ssmtp/ssmtp.conf NVRAM_PREFIX=ssmtp_ PACKAGE_NAME=`echo $NVRAM_PREFIX | sed 's/_/ /'`

    logger_func 'Generating $CONFIG_FILE for package $PACKAGE_NAME' #echo $0: generating $CONFIG_FILE for package $PACKAGE_NAME echo '#!/bin/sh' > $CONFIG_FILE echo '#' >> $CONFIG_FILE echo '# auto generated based on nvram by $0' >> $CONFIG_FILE echo '#' >> $CONFIG_FILE

    if [ -z '`nvram show | grep ssmtp`' ] then logger_func 'It appears that you have not set the NVRAM variables required to generate the conf file' logger_func '**Consider** using these commands in you startup script:' logger_func 'nvram set [email protected]' logger_func 'nvram set ssmtp_mailhub=smtp.gmail.com:587' logger_func 'nvram set [email protected]' logger_func 'nvram set ssmtp_UseSTARTTLS=YES' logger_func 'nvram set ssmtp_AuthUser=username' logger_func 'nvram set ssmtp_AuthPass=password' logger_func 'nvram set ssmtp_FromLineOverride=YES' logger_func 'create the NVRAM variables and re-run the init script or reboot for the settings to take affect.' exit 0 fi

    ########################################################### # # main loop # SED_COMMAND='s/$NVRAM_PREFIX/ /' CONFIG_VARS=`nvram show | grep $NVRAM_PREFIX | sed '$SED_COMMAND'` for i in $CONFIG_VARS; do echo $i >> $CONFIG_FILE done

    ########################################################### # # sanity check # if [ ! -f '$CONFIG_FILE' ]; then # echo '$0: ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?' logger_func 'ERROR - could not create $CONFIG_FILE. Perhaps there is no symink /etc/XXXX -> /tmp/etc/XXXX ?' fi logger_func '###########Finished the SSMTP init run###########'

    Rendilo eseguibile:

    chmod +x./working_dir_mini1/rootfs/etc/init.d/S80ssmtp

    Prendi nota delle variabili in attesa della NVRAM nello script, è nostra responsabilità dare loro qualcosa su cui lavorare dopo aver installato il nostro firmware modificato sul router.

    Costruisci il firmware modificato

    Ora che tutto è a posto, è ora di ricomprimere il firmware modificato in un file binario compresso che possiamo lampeggiare sul router. La sintassi dello script "build.sh" è:./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Per fare ciò usiamo lo script fornito, quindi invia:

    ./build_firmware.sh output_mini1./working_dir_mini1/

    Una volta eseguita l'operazione di "build", ci saranno diverse immagini del firmware in attesa di essere utilizzate nella directory "output".

    Ora puoi lampeggiare il file "custom_image_00001-generic.bin" sul tuo router come faresti normalmente con un firmware DD-WRT.

    Nota: Non dimenticare di ripristinare le "impostazioni di fabbrica" prima, durante e subito dopo il flash del firmware.

    Passi post flash

    Poiché abbiamo fatto in modo che il pacchetto SSMTP cercasse le variabili NVRAM per generare il file di configurazione ssmtp, ora dobbiamo fornirgli le informazioni mancanti. Lo faremo utilizzando la funzione GUI "Esegui comandi".

    Vai alla web-GUI -> "amministrazione" -> "comandi" -> incolla nella casella di testo quanto segue:

    nvram set [email protected] nvram set ssmtp_mailhub=smtp.gmail.com:587 nvram set [email protected] nvram set ssmtp_UseSTARTTLS=YES nvram set ssmtp_AuthUser=your-gmail-user-name(without the @gmail.com) nvram set ssmtp_AuthPass=you-gmail-password nvram set ssmtp_FromLineOverride=YES nvram commit

    Sostituisci il testo dopo il segno di uguale (=), con le tue informazioni reali, quindi premi "Esegui comandi". Nota: se si utilizza un server normale, non TLS utilizzando, smtp, la porta da utilizzare è 25 anziché 587.

    Ora che le informazioni SSMTP sono pronte per l'uso, è necessario richiamare lo script di init. Quindi puoi riavviare il router, oppure incollarlo nella casella di testo "comandi":

    /etc/init.d/S80ssmtp

    Quindi premi di nuovo "Esegui comandi". L'output di questo comando dovrebbe essere simile a:

    Verifica di poter inviare e-mail Incollalo nuovamente nella casella di testo "Comandi" con il seguente comando con il tuo indirizzo email:
    Verifica di poter inviare e-mail Incollalo nuovamente nella casella di testo "Comandi" con il seguente comando con il tuo indirizzo email:

    echo 'testing crucible emailing 123 qwe' | ssmtp -vvv [email protected]

    Quindi premi di nuovo "Esegui comandi". Poiché abbiamo usato l'opzione -vvv per la verbosità aggiuntiva, l'output di questo comando dovrebbe essere simile a:

    Se tutto è andato bene, dovresti ricevere l'e-mail di prova in pochi secondi.
    Se tutto è andato bene, dovresti ricevere l'e-mail di prova in pochi secondi.

    Ci auguriamo che tu possa utilizzare queste informazioni per spingere i limiti del tuo router di casa ancora più a lungo di quanto tu credessi possibile e ora controlli veramente il router di casa e DD-WRT …

    Linux estende la vita, Linux espande la consapevolezza … Linux è vitale per i viaggi a pacchetto

Consigliato: