Beranda » bagaimana » Lepaskan Lebih Banyak Daya Dari Router Rumah Anda dengan DD-WRT Mod-Kit

    Lepaskan Lebih Banyak Daya Dari Router Rumah Anda dengan DD-WRT Mod-Kit


    Kami telah menunjukkan kepada Anda cara mod router rumah Anda dengan firmware alternatif DD-WRT untuk kinerja yang jauh lebih baik, dan hari ini kami akan menunjukkan kepada Anda bagaimana membawanya lebih jauh dengan DD-WRT Mod-Kit.

    Jika Anda belum melakukannya, pastikan dan periksa dua artikel sebelumnya dalam seri ini:

    • Ubah Router Rumah Anda Menjadi Router Super-Bertenaga dengan DD-WRT
    • Cara Meningkatkan Sinyal Jaringan Wi-Fi Anda dan Meningkatkan Jangkauan dengan DD-WRT

    Dengan asumsi Anda terbiasa dengan topik-topik itu, teruslah membaca. Ingatlah bahwa panduan ini sedikit lebih teknis, dan pemula harus berhati-hati saat memodifikasi router mereka.

    Ikhtisar

    Panduan ini akan memberikan langkah demi langkah ikhtisar tentang cara membuat firmware DD-WRT Anda sendiri dengan modifikasi dan tambahan menggunakan "kit modifikasi firmware".

    Kit modifikasi firmware memungkinkan seseorang untuk membuat modifikasi pada firmware tanpa mengkompilasinya dari sumber. Membuat perubahan dengan cara ini, dengan bantuan skrip yang disediakan, menjadi masalah sederhana mengunduh, mengganti, dan menghapus beberapa file.

    Alasan paling utama untuk menggunakan metode ini adalah karena akhir-akhir ini dukungan DD-WRT untuk paket Openwrt IPKG telah bergeser ke router yang memiliki hard drive (melalui USB), yang menjadikan mod-kit satu-satunya cara yang berhasil secara konsisten untuk menginstal paket IPKG dengan sukses untuk kasus di mana HD tidak tersedia. Selain itu, metode ini memiliki keuntungan tambahan untuk membebaskan Anda dari ketergantungan JFFS untuk instalasi paket, yang untuk router dengan hanya 4MB flash adalah masalah nyata..

    Gambar oleh publicenergy

    Tujuan

    Sementara instruksi untuk prosedur ini, dirinci pada wiki DD-WRT dan di situs pengembang, kami bertujuan untuk membuat panduan ini prosedur copy & paste yang dapat digunakan siapa pun untuk mencapai tujuan berikut:

    • Instal paket knockd dan dependensinya.
    • Instal paket ssmtp dengan konfigurasi yang dihasilkan berbasis NVRAM.
      • Opsional dengan dukungan untuk TLS smtp (a.k.a. dukungan Gmail).

    Setelah Anda mengikuti prosedur ini, haruslah relevan untuk menyesuaikannya untuk instalasi paket lain.

    Peringatan: Tapak dengan ringan ... perlu diingat bahwa penggunaan kit modifikasi yang salah, dapat meninggalkan Anda dengan router yang membutuhkan de-brick-ing (seperti pada gilirannya menjadi batu bata yang tidak berguna). Namun, jika Anda benar-benar geek, Anda mungkin menganut ideologi itu, dia yang dapat menghancurkan sesuatu, mengendalikan sesuatu, dan hanya geek sejati yang melakukan itu.

    Prasyarat

    1. Menggunakan prosedur ini bisa bata router Anda, seperti pada make router Anda tidak dapat digunakan, kami tidak bertanggung jawab atas segala kerusakan yang mungkin disebabkan secara langsung atau karena tindakan penggunaan prosedur di bawah ini.
    2. Prosedur ini dilakukan pada sistem berbasis Debian (Lenny, Squeeze, dan Mint) dan instruksi di bawah ini menganggap Anda juga menggunakan salah satunya.
    3. Prosedur ini hanya disarankan untuk orang yang memiliki pengalaman mem-flash router mereka dengan DD-WRT, dengan semua prasyarat, peringatan dan batasan yang berlaku untuk pengaturan perangkat keras mereka. tempat yang baik untuk memulai adalah Turn Your Home Router Menjadi Super-Powered Router dengan panduan DD-WRT.
    4. Perute Anda harus mendukung setidaknya versi "mini" dari DD-WRT.
    5. Prosedur ini dibuat dan diuji pada router Linksys WRT54GS / L, jika Anda menggunakan router dari vendor lain, jarak tempuh Anda mungkin sangat tinggi..

    Mempersiapkan

    Menginstal paket yang diperlukan

    Kit modifikasi firmware memiliki beberapa dependensi untuk dikompilasi dan berfungsi. Untuk menginstal / memperbarui semuanya sekaligus, keluarkan perintah ini di terminal:

    sudo aptitude menginstal gcc g ++ binutils patch bzip2 flex bison membuat gettext unzip zlib1g-dev libc6 subversi

    Unduh mod-kit

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

    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 /

    Unduh firmware untuk bekerja

    Hal pertama yang harus dipertimbangkan adalah versi mana yang ingin Anda gunakan?
    Aturan praktisnya adalah: ketika ragu gunakan "mini". Ini karena selama router Anda mendukung setidaknya versi "mini", menggunakannya akan memberi Anda semua fitur yang paling umum digunakan tanpa bloatware. dengan demikian menyisakan ruang untuk prosedur dan bahkan beberapa ruang JFFS untuk penggunaan lain dalam banyak kasus.

    Setelah Anda memutuskan versi, disarankan untuk menggunakan revisi terbaru dari firmware yang tersedia, karena mereka cenderung memiliki banyak perbaikan bug dibandingkan dengan rekan-rekan "stabil" mereka..
    Pada saat penulisan ini, yang terbaru adalah "03-17-11-r16454" dan revisi 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 mempermudah melacak versi apa yang kami gunakan, ganti nama file yang diunduh untuk mewakili nomor versinya:

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

    Ini tentu saja opsional, tetapi perintah di bawah ini menganggap bahwa Anda telah mengganti nama file.

    Mengekstrak firmware

    Untuk dapat mengubah file di dalam firmware, kita perlu mengekstrak isinya ke direktori sementara.
    Sintaks dari perintah ini adalah:
    ./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY
    Dalam kasus kami, ini akan diterjemahkan ke:

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

    Catatan: Pertama kali Anda menjalankan perintah ini, itu membangun alat mod-kit pada sistem Anda. ini terjadi hanya sekali dan mungkin perlu sedikit waktu ... jadi bersabarlah ...

    Menginstal paket

    Sekarang setelah firmware diekstraksi, kita dapat menginstal paket ke sana.
    Secara umum, prosedurnya adalah mengunduh paket dan dependensinya dalam bentuk file ipk dari repositori openWRT. Setelah diunduh, instal ke firmware yang diekstrak menggunakan skrip yang disediakan.

    Paket knockd

    Petunjuk terperinci tentang cara mengonfigurasi dan menggunakan Knockd akan dirinci dalam artikel mendatang, jadi Anda dapat memilih untuk melewati langkah ini untuk saat ini atau melakukannya sebagai persiapan untuk masa depan karena Knockd tidak memakan banyak ruang bagaimanapun.

    Knockd adalah daemon yang mendengarkan acara komunikasi di lapisan tautan untuk urutan kemudian bertindak atasnya.
    Apa artinya ini, adalah bahwa Anda dapat memiliki perangkat yang menjalankan daemon bahkan tidak "mendengarkan" pada port (pemindaian port tidak akan melihatnya sebagai terbuka) dan tetap membuatnya melakukan sesuatu yang Anda butuhkan, dari satu perintah sepanjang jalan ke skrip lengkap. Dengan menggunakan teknik ini, Anda dapat memicu server untuk melakukan segala jenis operasi yang Anda perlukan dari jarak jauh (di internet) tanpa memaparkan jaringan rumah Anda.

    Knockd hanya memiliki satu ketergantungan yang terdaftar, jadi unduh paket 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

    Instal "knock daemon" (knockd) ipk ke dalam firmware:

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

    Instal "packet capture" (libpcap) ipk ke dalam firmware:

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

    Karena "knockd" dapat dipanggil dengan file konfigurasi alternatif (bagaimana akan dijelaskan dalam artikel mendatang), tidak perlu melakukan operasi lain dan Anda dapat melompat ke bagian pembuatan firmware, jika hanya itu yang ingin Anda instal.

    Paket SSMTP

    Paket SSMTP memungkinkan router Anda untuk mengirim pesan Email seperti yang kami tunjukkan dalam Cara Mengatur Peringatan Email di Linux Menggunakan Gmail atau SMTP untuk server. Kami berjanji kepada Anda saat itu bahwa kami akan menunjukkan cara mengkonfigurasi ini untuk DD-WRT dan sekarang kami akan memberikannya.
    Ini terutama berguna jika Anda akan membuat skrip pada router yang ingin Anda terima umpan balik tentang operasi mereka melalui email.

    Setup paket ini sedikit lebih rumit daripada pada sistem Linux normal karena keterbatasan yang diberlakukan oleh sistem embedded, jadi ambil napas dalam-dalam ... siap? Ayo pergi… :)

    Unduh paket:

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

    Instal "ssmtp" ipk ke dalam firmware:

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

    Dukungan TLS (Opsional)
    SSMTP tidak mencantumkan paket lain sebagai dependensinya, namun jika Anda ingin dapat menggunakan gateway smtp yang memerlukan otentikasi TLS (mis.. Gmail), Anda harus menginstal pakage openSSL juga.
    Catatan: Ada BESAR kekurangan untuk melakukan ini dalam bentuk ruang yang sangat berkurang pada router untuk JFFS nanti. Yaitu, paket openSSL membutuhkan sekitar 500K ruang dari total 4MB Anda (untuk router pendukung non "mega" normal), ditambah dengan biaya overhead JFFS dan Anda akan menemukan bahwa Anda pergi dengan, tetapi beberapa, blok berharga, dari ruang JFFS gratis (sekitar 60KB pada WRT54GL).

    Karena masih ada non TLS yang membutuhkan server smtp di luar sana (biasanya ISP Anda), saya sarankan luangkan waktu sebentar untuk berpikir jika Anda benar-benar perlu menggunakan TLS yang membutuhkan gateway.

    Jika Anda telah memutuskan untuk mengaktifkan dukungan TLS meskipun ada kekurangannya, unduh paket openSSL:

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

    Instal "openSSL" (libopenssl) ipk ke dalam firmware:

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

    Konfigurasi
    Ada batasan dengan paket SSMTP, bahwa tidak mungkin untuk memanggilnya dengan file konfigurasi alternatif.
    Karena firmware hanya-baca ketika ada di router, itu berarti bahwa di luar kotak kita hanya dapat melakukan hardcode konfigurasi ke dalam firmware.
    Namun, bagaimana jika kita tidak ingin melalui semua langkah modifikasi firmware, hanya untuk mengubah pengaturan Email? (misalnya perubahan kata sandi).

    Untuk itu, baik Jeremy (pembuat mod-kit firmware) dan saya mencapai kesimpulan (secara independen jika saya dapat dengan rendah hati menambahkan) bahwa satu-satunya cara yang waras untuk melakukan ini adalah dengan:

    1. Buat lokasi file konfigurasi yang ditunjuk oleh paket ssmtp ke lokasi baca-saja di bawah dll, arahkan ke direktori tmp yang dapat ditulis saat runtime.
    2. Buat skrip yang secara dinamis akan menghasilkan konfigurasi berdasarkan dari variabel NVRAM saat startup.

    Untuk mencapai itu, beberapa langkah tambahan diperlukan ...

    Simbolkan direktori konfigurasi ssmtp
    Seperti dijelaskan di atas, kita perlu membuat / etc / ssmtp lokasi pada router, arahkan ke / tmp direktori sebagai satu-satunya tempat yang dapat ditulis yang kita miliki di router pada saat run time. Untuk melakukan ini, hapus direktori ssmtp yang dibuat oleh penginstal ipk:

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

    Buat tautan simbolik baru yang mengarahkan / etc / ssmtp pada sistem file root router, untuk menunjuk ke / tmp / etc / ssmtp sebagai jalur absolut:

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

    Catatan: Walaupun ini terlihat tidak logis saat ini, karena kami mengarahkan direktori konfigurasi paket ke lokasi di luar direktori kerja perangkat modifikasi firmware, saya yakinkan Anda bahwa ini terlihat sangat baik dari sudut pandang router pada saat run time.

    Skrip init
    Meskipun sangat mungkin untuk tidak menyuntikkan skrip ini ke dalam firmware dan menjalankannya sebagai skrip startup di kemudian hari, saya merasa pantas untuk meletakkannya di sini jika hanya sebagai contoh untuk penggunaan di masa mendatang..
    Awalnya Jeremy membuat skrip yang disesuaikan dengan permintaan seseorang, kemudian, saya menyesuaikan dan menambahkannya agar lebih kompatibel dengan pelaporan DD-WRT dan syslog.

    Buat skrip init (startup) baru:

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

    Catatan: Anda dapat menggunakan editor lain, saya menggunakan vi karena ini konsisten dengan apa yang tersedia di router ...
    Jadikan ini isinya:

    #! / bin / sh
    #
    # title: ssmtp_nvram.sh
    # penulis: Jeremy Collake dan Aviad Raviv
    # situs: http://www.bitsum.com, http://howtogeek.com
    #
    # skrip untuk membangun file konfigurasi dari nvram vars.
    # akan berfungsi untuk file konfigurasi apa pun yang menggunakan
    # var = pasangan jenis nilai.
    #
    # menggunakan awalan untuk variabel 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 "########### Memulai init SSMTP ###########"
    logger_func "Membuat direktori dll 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 "Menghasilkan $ CONFIG_FILE untuk paket $ PACKAGE_NAME"
    #echo $ 0: menghasilkan $ CONFIG_FILE untuk paket $ PACKAGE_NAME
    echo "#! / bin / sh"> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE
    echo "# otomatis dibuat berdasarkan nvram oleh $ 0" >> $ CONFIG_FILE
    echo "#" >> $ CONFIG_FILE

    jika [-z "'nvram tampilkan | grep ssmtp'"]
    kemudian
    logger_func "Tampaknya Anda belum mengatur variabel NVRAM yang diperlukan untuk menghasilkan file conf"
    logger_func "** Pertimbangkan ** menggunakan perintah ini di skrip startup Anda:"
    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 = YA"
    logger_func "nvram set ssmtp_AuthUser = nama pengguna"
    logger_func "nvram set ssmtp_AuthPass = kata sandi"
    logger_func "nvram set ssmtp_FromLineOverride = YA"
    logger_func "buat variabel NVRAM dan jalankan kembali skrip init atau reboot untuk pengaturan yang akan terpengaruh."
    keluar 0
    fi

    ############################################### ##########
    #
    # loop utama
    #
    SED_COMMAND = "s / $ NVRAM_PREFIX / /"
    CONFIG_VARS = "nvram show | grep $ NVRAM_PREFIX | sed" $ SED_COMMAND ""
    untuk saya dalam $ CONFIG_VARS; melakukan
    echo $ i >> $ CONFIG_FILE
    selesai

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

    Jadikan itu dapat dieksekusi:

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

    Perhatikan variabel menunggu NVRAM dalam skrip, adalah tanggung jawab kami untuk memberi mereka sesuatu untuk dikerjakan setelah kami menginstal firmware yang dimodifikasi pada router..

    Bangun Firmware yang dimodifikasi

    Sekarang semuanya sudah berada di tempatnya, sekarang saatnya untuk mengemas ulang firmware yang dimodifikasi menjadi biner terkompresi yang dapat kita flash ke router.
    Sintaks skrip "build.sh" adalah:
    ./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Untuk melakukan ini, kami menggunakan skrip yang disediakan, jadi terbitkan:

    ./build_firmware.sh output_mini1 ./working_dir_mini1/

    Setelah operasi "build" selesai, akan ada beberapa gambar firmware yang menunggu untuk digunakan dalam direktori "output".

    Anda sekarang dapat mem-flash file yang disebut "custom_image_00001-generic.bin" ke router Anda seperti biasanya menggunakan firmware DD-WRT.

    Catatan: Jangan lupa untuk mengembalikan ke "default pabrik" sebelum, selama dan tepat setelah firmware berkedip.

    Posting langkah-langkah flash

    Karena kami membuat paket SSMTP mencari variabel NVRAM untuk menghasilkan file konfigurasi ssmtp, kami sekarang perlu menyediakannya dengan informasi yang hilang.
    Kami akan mencapai ini dengan menggunakan fungsi "Jalankan perintah" web-GUI.

    Pergi ke web-GUI -> “administrasi” -> “perintah” -> rekatkan dalam kotak teks berikut ini:

    nvram set [email protected]
    nvram set ssmtp_mailhub = smtp.gmail.com: 587
    nvram set [email protected]
    nvram set ssmtp_UseSTARTTLS = YA
    nvram set ssmtp_AuthUser = nama pengguna-gmail Anda (tanpa @ gmail.com)
    nvram set ssmtp_AuthPass = kata sandi Anda-gmail
    nvram set ssmtp_FromLineOverride = YA
    nvram melakukan

    Ganti teks setelah tanda sama dengan (=), dengan informasi Anda yang sebenarnya, Dan kemudian tekan “Jalankan perintah”.
    Catatan: jika Anda menggunakan server smtp non-TLS yang biasa digunakan, port yang digunakan adalah 25 bukannya 587.

    Sekarang informasi SSMTP siap digunakan, Anda harus menjalankan skrip init. Jadi Anda bisa reboot router, atau rekatkan ini ke kotak teks "perintah":

    /etc/init.d/S80ssmtp

    Kemudian tekan "Jalankan perintah" lagi.
    Output dari perintah ini akan terlihat seperti:

    Uji bahwa Anda dapat mengirim Email
    Sekali lagi tempel ini ke kotak teks "perintah" perintah berikut dengan alamat email Anda:

    echo "menguji krus pengiriman email 123 qwe" | ssmtp -vvv [email protected]

    Kemudian tekan "Jalankan perintah" lagi.
    Karena kami menggunakan opsi -vvv untuk verbositas ekstra, output dari perintah ini akan terlihat seperti:

    Jika semuanya berjalan dengan baik, Anda akan mendapatkan email pengujian dalam hitungan detik.

    Kami berharap Anda dapat menggunakan informasi ini untuk mendorong batas router rumah Anda lebih jauh dari yang Anda pikir mungkin dan Anda sekarang benar-benar mengendalikan router rumah Anda, dan DD-WRT ...


    Linux memperpanjang usia, Linux memperluas kesadaran ... Linux sangat penting untuk perjalanan paket