Laman » bagaimana untuk » Lepas Lebih Banyak Kuasa dari Penghala Utama Anda dengan Mod-Kit DD-WRT

    Lepas Lebih Banyak Kuasa dari Penghala Utama Anda dengan Mod-Kit DD-WRT


    Kami telah menunjukkan kepada anda bagaimana untuk mengubah penghala rumah anda dengan firmware alternatif DD-WRT untuk prestasi yang lebih baik, dan hari ini kami akan menunjukkan kepada anda cara untuk mengambilnya lebih lanjut dengan Mod-Kit DD-WRT.

    Jika anda belum lagi, pastikan dan semak dua artikel sebelumnya dalam siri ini:

    • Hidupkan Penghala Rumah Anda Ke Router Super-Powered dengan DD-WRT
    • Bagaimana Meningkatkan Isyarat Rangkaian Wi-Fi dan Meningkatkan Julat dengan DD-WRT

    Dengan mengandaikan anda sudah biasa dengan topik tersebut, teruskan membaca. Perlu diingat bahawa panduan ini sedikit lebih teknikal, dan pemula harus berhati-hati semasa memodifikasi penghala mereka.

    Gambaran keseluruhan

    Panduan ini akan memberi satu langkah demi langkah tentang cara membuat firmware DD-WRT anda sendiri dengan pengubahsuaian dan penambahan menggunakan "kit pengubahsuaian firmware".

    Kit pengubahsuaian firmware membolehkan seseorang membuat pengubahsuaian pada firmware tanpa menyusunnya daripada sumber. Membuat perubahan dengan cara ini, dengan bantuan skrip yang disediakan, menjadi perkara yang mudah untuk memuat turun, menggantikan dan memadam beberapa fail.

    Alasan yang paling utama untuk menggunakan kaedah ini adalah kerana sokongan DD-WRT untuk pakej IPKG Openwrt telah beralih ke arah router yang mempunyai pemacu keras (melalui USB), yang menjadikan mod-kit satu-satunya cara yang berfungsi secara konsisten untuk memasang pakej IPKG dengan jayanya untuk kes di mana HD tidak tersedia. Di samping itu, kaedah ini mempunyai kelebihan tambahan untuk melepaskan anda dari pergantungan JFFS untuk pemasangan pakej, yang untuk router dengan hanya 4MB flash adalah masalah yang sebenar.

    Gambar oleh pensyarah

    Matlamat

    Semasa arahan untuk prosedur ini, terperinci mengenai wiki DD-WRT dan di laman pembangun, kami bertujuan untuk membuat panduan ini satu salinan & tampalan prosedur yang sesiapa sahaja boleh gunakan untuk mencapai matlamat berikut:

    • Pasang pakej ketukan dan kebergantungannya.
    • Pasang pakej ssmtp dengan konfigurasi yang dihasilkan berdasarkan NVRAM.
      • Opsyenal dengan sokongan untuk TLS smtp (a.k.a. Gmail support).

    Sebaik sahaja anda mengikuti prosedur ini, ia sepatutnya mudah untuk menyesuaikannya untuk pemasangan pakej lain.

    Amaran: Tapak perlahan-lahan ... perlu diingat bahawa penggunaan salah kit modifikasi yang salah, boleh meninggalkan anda dengan penghala yang memerlukan de-brick-ing (sebaliknya ia menjadi bata yang tidak berguna). Walau bagaimanapun, jika anda seorang geek yang benar anda mungkin melanggan ideologi itu, dia yang boleh memusnahkan sesuatu, mengawal sesuatu, dan hanya geeks yang benar melakukannya

    Prasyarat

    1. Menggunakan prosedur ini boleh bata penghala anda, seperti dalam membuat penghala anda tidak boleh digunakan, kami tidak bertanggungjawab untuk sebarang kerosakan yang mungkin disebabkan secara langsung atau bijak lain disebabkan penggunaan prosedur di bawah.
    2. Prosedur ini dilakukan pada sistem berasaskan Debian (Lenny, Squeeze dan Mint) dan arahan di bawah menganggap anda menggunakan satu sama lain.
    3. Prosedur ini hanya disyorkan untuk orang yang mempunyai pengalaman dengan menghidupkan penghala mereka dengan DD-WRT, dengan semua prasyarat, kaitan dan batasan yang dikenakan untuk persediaan perkakasan mereka. tempat yang baik untuk memulakan adalah Turn kami Home Router Ke Router Super-Powered dengan panduan DD-WRT.
    4. Penghala anda perlu menyokong sekurang-kurangnya versi "mini" DD-WRT.
    5. Prosedur ini dibuat dan diuji pada router Linksys WRT54GS / L, jika anda menggunakan router dari vendor lain, perbatuan anda mungkin sangat.

    Persediaan

    Memasang pakej yang diperlukan

    Kit pengubahsuaian firmware mempunyai beberapa kebergantungan untuk mengkompilasi dan berfungsi. Untuk memasang / mengemas kini mereka sekali gus Mengeluarkan arahan ini dalam terminal:

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

    Muat turun mod-kit

    Buat sub-folder, dan dapatkan kit dari SVN rasmi:

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

    Muat turun firmware untuk berfungsi

    Perkara pertama yang perlu dipertimbangkan ialah versi yang anda mahu gunakan?
    Peraturan praktikal ialah: apabila ragu-ragu menggunakan "mini". Ini kerana selagi router anda menyokong sekurang-kurangnya versi "mini", menggunakannya memberikan anda semua ciri yang paling biasa digunakan tanpa sebarang penguncupan. dengan itu meninggalkan kedua-dua ruang untuk prosedur dan juga beberapa ruang JFFS untuk kegunaan lain dalam kebanyakan kes.

    Sebaik sahaja anda telah memutuskan versi, disyorkan untuk menggunakan semakan terkini firmware yang tersedia, kerana mereka cenderung mempunyai banyak masalah pepijat berbanding rakan-rakan mereka yang "stabil".
    Pada masa penulisan ini terkini adalah "03-17-11-r16454" dan semakan ini digunakan dalam perintah yang mengikuti.

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

    Untuk menjadikannya lebih mudah untuk menjejaki versi yang kami gunakan, menamakan semula fail yang dimuat turun untuk mewakili nombor versinya:

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

    Ini sudah tentu pilihan, tetapi arahan di bawah mengandaikan bahawa anda telah menamakan semula fail itu.

    Mengeluarkan firmware

    Untuk dapat menukar fail dalam firmware, kita perlu mengekstrak kandungannya ke dalam direktori sementara.
    Sintaks perintah ini ialah:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    Dalam kes kami, ini akan diterjemahkan ke:

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

    Nota: Kali pertama anda menjalankan arahan ini, ia membina alat mod-kit pada sistem anda. ini berlaku hanya sekali dan mungkin mengambil sedikit masa ... jadi bersabar ...

    Memasang pakej

    Sekarang bahawa firmware diekstrak kita boleh memasang pakej kepadanya.
    Secara umum, prosedurnya adalah untuk memuat turun pakej dan dependensinya dalam bentuk fail ipk dari repository openWRT. Setelah dimuat turun, pasangnya ke firmware yang diekstrak menggunakan skrip yang disediakan.

    Pakej ketukan

    Arahan terperinci mengenai cara mengkonfigurasi dan menggunakan Knockd akan terperinci dalam artikel masa depan, sehingga anda mungkin memilih untuk melewati langkah ini untuk sekarang atau melakukannya untuk persiapan untuk masa depan karena Knockd tidak mengambil banyak ruang bagaimanapun.

    Knockd adalah daemon yang mendengarkan peristiwa komunikasi di lapisan pautan untuk urutan kemudian bertindak ke atasnya.
    Apa ini bermakna bahawa anda boleh mempunyai peranti yang menjalankan daemon ini tidak "mendengar" di pelabuhan (imbasan port tidak akan melihatnya terbuka) dan masih membuatnya melakukan sesuatu yang anda perlukan, dari satu arahan ke atas untuk skrip penuh. Menggunakan teknik ini, anda boleh mencetuskan pelayan untuk melakukan apa-apa jenis operasi yang anda perlukan dari jauh (merentas internet) tanpa mendedahkan rangkaian rumah anda.

    Knockd hanya mempunyai satu ketergantungan tersenarai, jadi muat turun pakej dan ketergantungannya dengan mengeluarkan:

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

    Pasang "knock daemon" (knockd) ipk ke firmware:

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

    Pasang "packet capture" (libpcap) ipk ke firmware:

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

    Sebagai "knockd" boleh digunakan dengan fail konfigurasi alternatif (bagaimana dijelaskan dalam artikel masa depan), tidak perlu melakukan apa-apa operasi lain dan anda boleh melangkau ke bahagian bangunan firmware, jika semua yang anda ingin pasang.

    Pakej SSMTP

    Pakej SSMTP membolehkan penghala anda menghantar mesej E-mel seperti yang ditunjukkan dalam Cara Menyediakan Isu E-mel di Linux Menggunakan Gmail atau SMTP untuk pelayan. Kami menjanjikan anda kembali bahawa kami akan menunjukkan cara untuk mengkonfigurasi ini untuk DD-WRT dan kami akan menyampaikannya.
    Ini berguna terutamanya jika anda akan membuat skrip pada penghala yang anda ingin menerima maklum balas mengenai operasi mereka melalui e-mel.

    Persediaan pakej ini agak lebih rumit maka ia adalah pada sistem Linux biasa kerana batasan yang dikenakan oleh sistem tertanam, jadi ambillah dalam ... siap? .... Mari pergi… :)

    Muat turun pakej:

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

    Pasang "ssmtp" ipk ke firmware:

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

    Sokongan TLS (Pilihan)
    SSMTP tidak menyenaraikan mana-mana pakej lain sebagai kebergantungannya, tetapi jika anda ingin menggunakan smtp gateway yang memerlukan pengesahan TLS (i.e. Gmail), anda perlu memasang pakage openSSL juga.
    Catatan: Terdapat BESAR kelemahan untuk melakukan ini dalam bentuk ruang yang jauh dikurangkan pada penghala untuk JFFS di kemudian hari. Iaitu, pakej openSSL mengambil kira 500K ruang dari jumlah anda sebanyak 4MB (untuk router tanpa sokongan "mega" yang normal), mengkompaun bahawa overhead JFFS dan anda akan mengetahui bahawa kiri anda, tetapi beberapa yang berharga, blok ruang JFFS percuma (kira-kira 60KB pada WRT54GL).

    Oleh kerana masih ada TLS yang memerlukan pelayan smtp di luar sana (biasanya ISP anda), saya cadangkan untuk mengambil satu minit untuk berfikir jika anda benar-benar perlu menggunakan TLS yang memerlukan pintu masuk.

    Jika anda telah memutuskan untuk mendayakan sokongan TLS walaupun kelemahannya, muat turun pakej openSSL:

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

    Pasang "openSSL" (libopenssl) ipk ke firmware:

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

    Konfigurasi
    Terdapat batasan dengan pakej SSMTP, bahawa tidak mungkin untuk memanggilnya dengan fail konfigurasi alternatif.
    Kerana firmware dibaca hanya apabila di penghala, itu bermakna bahawa di luar kotak kita hanya boleh hardcode konfigurasi ke firmware.
    Bagaimanapun, bagaimana jika kita tidak mahu melalui semua langkah pengubahsuaian firmware, hanya untuk menukar tetapan E-mel? (contohnya menukar kata laluan).

    Untuk itu, kedua-dua Jeremy (pencipta mod pembuat perisian) dan saya sendiri mencapai kesimpulan (secara mandatori jika saya dengan rendah hati menambah) bahawa satu-satunya cara yang waras untuk melakukan ini ialah:

    1. Buat lokasi fail konfigurasi yang pakej ssmtp menunjuk ke lokasi baca sahaja di bawah dan sebagainya, tunjuk kepada direktori tmp yang boleh ditulis pada masa runtime.
    2. Buat skrip yang secara dinamik akan menghasilkan konfigurasi berasaskan pembolehubah NVRAM pada permulaan.

    Untuk mencapai itu, beberapa langkah tambahan diperlukan ...

    Symlink direktori konfigurasi ssmtp
    Sebagaimana dijelaskan di atas, kita perlu membuat / etc / ssmtp lokasi di penghala, arahkan ke / tmp direktori sebagai satu-satunya tempat yang boleh ditulis di router semasa berjalan. Untuk melakukan ini, padam direktori ssmtp yang dicipta oleh pemasang ipk:

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

    Buat pautan simbolik baru yang menunjuk / etc / ssmtp pada sistem fail root router, untuk menunjuk ke / tmp / etc / ssmtp sebagai jalan mutlak:

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

    Catatan: Walaupun ini kelihatan tidak logik sekarang, kerana kami menunjuk direktori konfigurasi pakej ke lokasi di luar direktori kerja kit pengubahsuaian firmware, saya memberi jaminan bahawa ini kelihatan sama sekali dari sudut pandangan router pada waktu larian.

    Skrip init
    Walaupun benar-benar tidak boleh menyuntik skrip ini ke firmware dan jalankannya sebagai skrip permulaan kemudian, saya rasa sesuai untuk meletakkannya di sini jika hanya sebagai contoh untuk kegunaan masa depan.
    Pada asalnya Jeremy mencipta skrip yang disesuaikan dengan permintaan seseorang, kemudian, saya menyesuaikan dan menambahnya agar lebih serasi dengan laporan DD-WRT dan syslog.

    Buat skrip init (permulaan) baru:

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

    Nota: Anda boleh menggunakan editor lain, saya menggunakan vi kerana konsisten dengan apa yang ada pada router ...
    Jadikan ini kandungannya:

    #! / bin / sh
    #
    # tajuk: ssmtp_nvram.sh
    # pengarang: Jeremy Collake dan Aviad Raviv
    # laman web: http://www.bitsum.com, http://howtogeek.com
    #
    # skrip untuk membina fail config dari var nvram.
    # akan berfungsi untuk sebarang fail konfigurasi yang digunakan
    # var = pasangan jenis nilai.
    #
    # menggunakan awalan untuk pembolehubah nvram.
    #
    # i.e.
    # ssmtp_hostname = sesuatu
    # diterjemahkan ke ssmtp.conf
    # hostname = sesuatu
    #
    logger_func ()

    logger -s -p local0.notice -t SSMTP_init $ 1

    logger_func "########### Mula menjalankan SSMTP init ###########"
    logger_func "Membuat direktori dsb di / 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 "Menjana $ CONFIG_FILE untuk pakej $ PACKAGE_NAME"
    #echo $ 0: menghasilkan $ CONFIG_FILE untuk pakej $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# auto dijana berdasarkan nvram oleh $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    jika persembahan [-z "'nvram | grep ssmtp'"]
    kemudian
    logger_func "Nampaknya anda tidak menetapkan pembolehubah NVRAM yang diperlukan untuk menjana fail conf"
    logger_func "** Pertimbangkan ** menggunakan arahan ini dalam skrip permulaan:"
    logger_func "set nvram [email protected]"
    logger_func "set nvram ssmtp_mailhub = smtp.gmail.com: 587"
    logger_func "set nvram [email protected]"
    logger_func "set nvram ssmtp_UseSTARTTLS = YA"
    logger_func "set nvram ssmtp_AuthUser = username"
    logger_func "set nvram ssmtp_AuthPass = kata laluan"
    logger_func "set nvram ssmtp_FromLineOverride = YES"
    logger_func "buat pembolehubah NVRAM dan jalan semula skrip init atau but semula untuk tetapan untuk mengambil kesan."
    keluar 0
    fi

    @@@ #########
    #
    # gelung utama
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "menunjukkan nvram | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    untuk saya dalam $ CONFIG_VARS; buat
    echo $ i >> $ CONFIG_FILE
    dilakukan

    @@@ #########
    #
    # pemeriksaan kewarasan
    #
    jika [! -f "$ CONFIG_FILE"]; kemudian
    # echo "$ 0: ERROR - tidak dapat mencipta $ CONFIG_FILE. Mungkin tidak ada symink / etc / XXXX -> / tmp / etc / XXXX?"
    logger_func "ERROR - tidak dapat mencipta $ CONFIG_FILE. Mungkin tidak ada symink / etc / XXXX -> / tmp / etc / XXXX?"
    fi
    logger_func "########### Selesai menjalankan SSMTP init ###########"

    Buatnya boleh laku:

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

    Ambil perhatian pemboleh ubah menunggu NVRAM dalam skrip, adalah tanggungjawab kami untuk memberi mereka sesuatu untuk berfungsi dengan sebaik mungkin setelah kami memasang firmware yang diubah suai pada penghala.

    Bina Firmware yang diubahsuai

    Sekarang segala-galanya sudah ada, sudah tiba masanya untuk membungkus semula firmware yang diubahsuai menjadi binari termampat yang boleh kita flash ke router.
    Sintaks skrip "build.sh" adalah:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Untuk melakukan ini kita menggunakan skrip yang dibekalkan, jadi isu:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Apabila operasi "membina" selesai, akan terdapat beberapa imej firmware yang menunggu untuk digunakan dalam direktori "output".

    Anda kini boleh memaparkan fail yang dipanggil "custom_image_00001-generic.bin" ke router anda kerana anda biasanya akan menggunakan firmware DD-WRT.

    Catatan: Jangan lupa untuk memulihkan kepada "lalai kilang" sebelum, semasa dan selepas kilat firmware.

    Pasang langkah kilat

    Kerana kami membuat pakej SSMTP mencari pembolehubah NVRAM untuk menghasilkan fail konfigurasi ssmtp, kami kini perlu membekalkannya dengan maklumat yang hilang.
    Kami akan melaksanakannya dengan menggunakan fungsi "Run commands" GUI web.

    Pergi ke web-GUI -> "pentadbiran" -> "perintah" -> tampal dalam kotak teks yang berikut:

    nvram set [email protected]
    nvram set ssmtp_mailhub = smtp.gmail.com: 587
    set nvram [email protected]
    nvram set ssmtp_UseSTARTTLS = YES
    nvram set ssmtp_AuthUser = your-gmail-user-name (tanpa @ gmail.com)
    nvram set ssmtp_AuthPass = anda-gmail-password
    nvram set ssmtp_FromLineOverride = YES
    komitmen nvram

    Gantikan teks selepas tanda sama (=), dengan maklumat sebenar anda, Kemudian Tekan "Run command".
    Catatan: jika anda menggunakan biasa, bukan TLS menggunakan, pelayan smtp pelabuhan untuk digunakan adalah 25 bukan 587.

    Sekarang bahawa maklumat SSMTP sedia untuk digunakan, anda perlu menggunakan skrip init. Oleh itu, anda sama ada boleh reboot router, Atau tampal ini ke kotak teks "perintah":

    /etc/init.d/S80ssmtp

    Kemudian tekan "Jalankan perintah" sekali lagi.
    Output arahan ini sepatutnya seperti:

    Uji bahawa anda boleh menghantar E-mel
    Lagi paste ini ke dalam "perintah" teks-kotak arahan berikut dengan alamat e-mel anda:

    echo "menguji penyalinan tisu 123 qwe" | ssmtp -vvv [email protected]

    Kemudian tekan "Jalankan perintah" sekali lagi.
    Kerana kami menggunakan pilihan -v untuk kelonggaran tambahan, output arahan ini sepatutnya seperti:

    Sekiranya semuanya berjalan lancar, anda perlu mendapatkan e-mel ujian dalam beberapa saat.

    Kami berharap anda boleh menggunakan maklumat ini untuk menolak had penghala rumah anda lebih jauh kemudian anda fikir mungkin dan anda kini benar-benar mengawal penghala rumah anda, dan DD-WRT ...


    Linux memanjangkan hayat, Linux memperluaskan kesedaran ... Linux sangat penting untuk perjalanan paket