Giải phóng thêm sức mạnh từ bộ định tuyến của bạn với DD-WRT Mod-Kit

Mục lục:

Giải phóng thêm sức mạnh từ bộ định tuyến của bạn với DD-WRT Mod-Kit
Giải phóng thêm sức mạnh từ bộ định tuyến của bạn với DD-WRT Mod-Kit

Video: Giải phóng thêm sức mạnh từ bộ định tuyến của bạn với DD-WRT Mod-Kit

Video: Giải phóng thêm sức mạnh từ bộ định tuyến của bạn với DD-WRT Mod-Kit
Video: Remove System Tool, Fake Anti Virus and Security Tool with RogueKiller - By Britec - YouTube 2024, Tháng tư
Anonim
 Chúng tôi đã chỉ cho bạn cách sửa đổi bộ định tuyến của bạn bằng phần mềm thay thế DD-WRT để cải thiện hiệu suất và hôm nay chúng tôi sẽ hướng dẫn bạn cách thực hiện nó hơn nữa với DD-WRT Mod-Kit.
Chúng tôi đã chỉ cho bạn cách sửa đổi bộ định tuyến của bạn bằng phần mềm thay thế DD-WRT để cải thiện hiệu suất và hôm nay chúng tôi sẽ hướng dẫn bạn cách thực hiện nó hơn nữa với DD-WRT Mod-Kit.

Nếu bạn chưa có, hãy chắc chắn và xem hai bài viết trước trong loạt bài này:

  • Biến bộ định tuyến của bạn thành bộ định tuyến siêu với DD-WRT
  • Làm thế nào để tăng cường tín hiệu mạng Wi-Fi của bạn và tăng phạm vi với DD-WRT

Giả sử bạn đã quen thuộc với những chủ đề đó, hãy tiếp tục đọc. Hãy nhớ rằng hướng dẫn này là một chút kỹ thuật hơn, và người mới bắt đầu nên cẩn thận khi modding router của họ.

Tổng quan

Hướng dẫn này sẽ cung cấp cho từng bước tóm tắt về cách tạo firmware DD-WRT của riêng bạn với các sửa đổi và bổ sung bằng cách sử dụng “bộ sửa đổi firmware”.

Bộ sửa đổi firmware cho phép người dùng sửa đổi phần mềm mà không cần biên dịch nó từ nguồn. Thực hiện thay đổi theo cách này, với sự trợ giúp của các tập lệnh được cung cấp, trở thành một vấn đề đơn giản khi tải xuống, thay thế và xóa một số tệp.

Lý do chủ yếu nhất để sử dụng phương pháp này là vì hỗ trợ DD-WRT cho gói Openwrt IPKG gần đây đã chuyển sang các bộ định tuyến có ổ đĩa cứng (qua USB), làm cho mod-kit trở thành cách duy nhất để cài đặt thành công các gói IPKG đối với trường hợp HD không khả dụng. Ngoài ra, phương pháp này còn có lợi thế bổ sung là làm giảm bạn khỏi sự phụ thuộc của JFFS đối với việc cài đặt gói, cho các router chỉ có 4MB flash là một vấn đề thực sự.

Hình ảnh của publicenergy

Những mục tiêu

Trong khi hướng dẫn cho quy trình này, được trình bày chi tiết trên wiki của DD-WRT và trên trang web của nhà phát triển, chúng tôi hướng dẫn làm cho hướng dẫn này là một quy trình sao chép và dán mà mọi người có thể sử dụng để đạt được các mục tiêu sau:

  • Cài đặt gói knockd và các phụ thuộc của nó.
  • Cài đặt gói ssmtp với các cấu hình được tạo dựa trên NVRAM.

    Tùy chọn có hỗ trợ cho TLS smtp (hỗ trợ Gmail).

    Một khi bạn đã làm theo quy trình này, nó phải được đơn giản hóa thích hợp để thích nghi với các cài đặt gói khác.

    Cảnh báo: Tread nhẹ … ghi nhớ rằng sử dụng không chính xác của bộ sửa đổi, có thể để lại cho bạn một bộ định tuyến mà cần de-gạch-ing (như lần lượt nó thành một viên gạch vô ích). Tuy nhiên, nếu bạn là một người đam mê thực sự, bạn có thể đăng ký ý thức hệ, rằng anh ta có thể phá hủy một thứ, điều khiển một thứ, và chỉ những người chuyên nghiệp thực sự mới làm điều đó

    Image
    Image

    Điều kiện tiên quyết

    1. Sử dụng quy trình này có thể gạch bộ định tuyến của bạn, như làm cho bộ định tuyến của bạn không sử dụng được, chúng tôi không chịu trách nhiệm cho bất kỳ thiệt hại nào có thể gây ra trực tiếp hoặc khôn ngoan khác do việc sử dụng các quy trình dưới đây.
    2. Quy trình này được thực hiện trên các hệ thống dựa trên Debian (Lenny, Squeeze và Mint) và các hướng dẫn bên dưới giả sử bạn đang sử dụng một hệ thống.
    3. Thủ tục này chỉ được khuyến khích cho những người có kinh nghiệm với việc flash router của họ với DD-WRT, với tất cả các điều kiện tiên quyết, hãy cẩn thận và những hạn chế áp dụng cho thiết lập phần cứng của họ. một nơi tốt để bắt đầu sẽ là Turn Your Home Router của bạn thành một siêu-Powered Router với DD-WRT hướng dẫn.
    4. Bộ định tuyến của bạn phải hỗ trợ ít nhất phiên bản "mini" của DD-WRT.
    5. Quy trình này đã được tạo và thử nghiệm trên các bộ định tuyến Linksys WRT54GS / L, nếu bạn sử dụng bộ định tuyến từ các nhà cung cấp khác, số dặm của bạn có thể rất lớn.

    Thiết lập

    Cài đặt các gói cần thiết

    Bộ sửa đổi firmware có một số phụ thuộc để nó biên dịch và làm việc. Để cài đặt / cập nhật tất cả cùng một lúc Phát hành lệnh này trong một thiết bị đầu cuối:

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

    Tải xuống mod-kit

    Tạo một thư mục con và lấy bộ từ SVN chính thức:

    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/

    Tải xuống chương trình cơ sở để hoạt động

    Điều đầu tiên cần xem xét là bạn muốn sử dụng phiên bản nào? Quy tắc chung là: khi nghi ngờ sử dụng “mini”. Điều này là bởi vì miễn là router của bạn hỗ trợ ít nhất là phiên bản "mini", sử dụng nó cung cấp cho bạn tất cả các tính năng phổ biến nhất được sử dụng mà không cần bất kỳ bloatware. do đó để lại cả không gian cho các thủ tục và thậm chí một số không gian JFFS cho các tập quán khác trong hầu hết các trường hợp.

    Khi bạn đã quyết định sử dụng phiên bản, bạn nên sử dụng bản sửa đổi mới nhất của chương trình cơ sở, vì chúng có xu hướng có nhiều sửa lỗi so với các phiên bản "ổn định" của chúng. Tại thời điểm viết bài mới nhất là “03-17-11-r16454” và bản sửa đổi này được sử dụng trong các lệnh theo sau.

    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

    Để dễ dàng theo dõi phiên bản chúng ta đang sử dụng, hãy đổi tên tệp đã tải xuống để biểu thị số phiên bản của nó:

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

    Đây là khóa học tùy chọn, nhưng các lệnh bên dưới giả định rằng bạn đã đổi tên tệp.

    Giải nén chương trình cơ sở

    Để có thể thay đổi các tập tin trong firmware, chúng ta cần trích xuất nội dung của nó vào một thư mục tạm thời. Cú pháp của lệnh này là:./extract_firmware.sh FIRMWARE_IMAGE WORKING_DIRECTORY Trong trường hợp của chúng tôi, điều này sẽ chuyển thành:

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

    Lưu ý: Lần đầu tiên bạn chạy lệnh này, nó xây dựng các công cụ mod-kit trên hệ thống của bạn. điều này xảy ra chỉ một lần và có thể mất một chút thời gian … vì vậy hãy kiên nhẫn…

    Cài đặt gói

    Bây giờ firmware được trích xuất, chúng ta có thể cài đặt các gói cho nó. Nói chung, thủ tục là tải xuống gói và các phụ thuộc của nó dưới dạng tệp ipk từ kho lưu trữ openWRT. Sau khi tải xuống, hãy cài đặt chúng vào phần mềm được trích xuất bằng tập lệnh được cung cấp.

    Gói knockd

    Hướng dẫn chi tiết về cách định cấu hình và sử dụng Knockd sẽ được nêu chi tiết trong một bài viết trong tương lai, vì vậy bạn có thể chọn bỏ qua bước này ngay bây giờ hoặc thực hiện để chuẩn bị cho tương lai vì Knockd không mất nhiều dung lượng.

    Knockd là một daemon lắng nghe các sự kiện truyền thông ở tầng liên kết cho các chuỗi sau đó tác động lên chúng. Điều này có nghĩa là bạn có thể có thiết bị chạy daemon thậm chí không "lắng nghe" trên các cổng (một cổng quét sẽ không nhìn thấy chúng như là mở) và vẫn làm cho nó làm một cái gì đó bạn cần, từ một lệnh duy nhất tất cả các con đường lên cho toàn bộ tập lệnh. Sử dụng kỹ thuật này, bạn có thể kích hoạt máy chủ để thực hiện bất kỳ loại hoạt động nào bạn cần từ xa (qua internet) mà không lộ mạng gia đình của bạn.

    Knockd chỉ có một phụ thuộc được liệt kê, vì vậy hãy tải xuống gói và sự phụ thuộc của gói đó bằng cách phát hành:

    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

    Cài đặt ipk “knock daemon” (knockd) vào firmware:

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

    Cài đặt ipk “capture gói” (libpcap) vào firmware:

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

    Khi “knockd” có thể được gọi với một tập tin cấu hình thay thế (sẽ được giải thích trong bài viết sau), bạn không cần phải thực hiện bất kỳ thao tác nào khác và có thể bỏ qua phần xây dựng phần vững, nếu tất cả những gì bạn muốn cài đặt.

    Gói SSMTP

    Gói SSMTP cho phép bộ định tuyến của bạn gửi tin nhắn Email giống như chúng tôi đã trình bày trong Thông báo về cách thiết lập email trên Linux bằng cách sử dụng Gmail hoặc SMTP cho máy chủ. Chúng tôi đã hứa với bạn rằng chúng tôi sẽ giới thiệu cách cấu hình điều này cho DD-WRT và bây giờ chúng tôi sẽ phân phối. Điều này chủ yếu hữu ích nếu bạn định tạo kịch bản trên router mà bạn muốn nhận phản hồi về hoạt động của họ qua email.

    Thiết lập của gói này phức tạp hơn một chút thì nó nằm trên các hệ thống Linux bình thường vì giới hạn được áp đặt bởi hệ thống nhúng, vì vậy hãy hít thở sâu… sẵn sàng?…. Đi nào…:)

    Tải xuống gói:

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

    Cài đặt "ssmtp" ipk vào firmware:

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

    Hỗ trợ TLS (Tùy chọn) SSMTP không liệt kê bất kỳ gói nào khác là các gói phụ thuộc của nó, tuy nhiên nếu bạn muốn có thể sử dụng cổng smtp yêu cầu xác thực TLS (tức là Gmail), bạn cũng phải cài đặt gói openSSL. chú thích: Có một HUGE Hạn chế để thực hiện điều này dưới dạng không gian được giảm đáng kể trên bộ định tuyến cho JFFS sau này. Tức là, gói openSSL mất khoảng 500K không gian từ tổng số 4MB của bạn (đối với bộ định tuyến không hỗ trợ bình thường), kết hợp với chi phí JFFS và bạn sẽ khám phá ra rằng bạn có một khối không gian JFFS miễn phí (khoảng 60KB trên WRT54GL).

    Vì vẫn không có TLS yêu cầu các máy chủ SMTP ở đó (thường là ISP của bạn), tôi khuyên bạn nên dành một phút để suy nghĩ xem bạn có thực sự cần sử dụng cổng yêu cầu TLS hay không.

    Nếu bạn đã quyết định bật hỗ trợ TLS bất chấp sự bất lợi của nó, hãy tải xuống gói openSSL:

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

    Cài đặt ip "openSSL" (libopenssl) vào firmware:

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

    Cấu hình Có một giới hạn với gói SSMTP, rằng không thể gọi nó bằng một tệp cấu hình thay thế. Bởi vì firmware chỉ đọc khi nó trên router, điều đó có nghĩa là chúng ta chỉ có thể hardcode cấu hình vào phần vững. Tuy nhiên, điều gì sẽ xảy ra nếu chúng tôi không muốn thực hiện tất cả các bước sửa đổi firmware, chỉ để thay đổi cài đặt Email? (ví dụ: thay đổi mật khẩu).

    Để kết thúc đó, cả Jeremy (người tạo mod-kit firmware) và bản thân tôi đã đạt được kết luận (một cách độc lập nếu tôi có thể thêm một cách khiêm nhường) rằng cách duy nhất để làm điều này là:

    1. Đặt vị trí tệp cấu hình mà gói ssmtp trỏ tới vị trí chỉ đọc dưới dạng v.v., trỏ tới thư mục tmp có thể ghi vào thời gian chạy.
    2. Tạo một kịch bản sẽ tự động tạo ra các cấu hình dựa trên các biến NVRAM khi khởi động.

    Để đạt được điều đó, một số bước bổ sung là bắt buộc…

    Liên kết thư mục cấu hình ssmtp Như đã giải thích ở trên, chúng ta cần làm / etc / ssmtp vị trí trên bộ định tuyến, trỏ đến / tmp là thư mục duy nhất chúng ta có trên router lúc chạy. Để thực hiện việc này, xóa thư mục ssmtp đã được trình cài đặt ipk tạo ra:

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

    Tạo liên kết tượng trưng mới trỏ / etc / ssmtp trên hệ thống tệp gốc của bộ định tuyến, trỏ tới / tmp / etc / ssmtp làm đường dẫn tuyệt đối:

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

    chú thích: Mặc dù điều này có vẻ phi lý, vì chúng tôi đang trỏ thư mục cấu hình của gói đến vị trí bên ngoài thư mục làm việc của bộ công cụ sửa đổi firmware, tôi đảm bảo với bạn rằng điều này trông hoàn toàn tốt từ quan điểm của bộ định tuyến tại thời gian chạy.

    Một init script Mặc dù hoàn toàn không thể đưa tập lệnh này vào chương trình cơ sở và chạy tập lệnh này dưới dạng tập lệnh khởi động sau này, tôi cảm thấy thích hợp khi đặt nó ở đây nếu chỉ là ví dụ để sử dụng sau này. Ban đầu Jeremy tạo ra kịch bản phù hợp với yêu cầu của ai đó, sau này, tôi điều chỉnh và tăng cường nó để tương thích hơn với DD-WRT và báo cáo nhật ký hệ thống.

    Tạo tập lệnh init (startup) mới:

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

    Lưu ý: Bạn có thể sử dụng trình chỉnh sửa khác, tôi sử dụng vi vì nó phù hợp với những gì có sẵn trên bộ định tuyến… Làm cho nội dung của nó:

    #!/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###########'

    Làm cho nó có thể thực thi được:

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

    Hãy lưu ý các biến NVRAM chờ đợi trong kịch bản, đó là trách nhiệm của chúng tôi để cung cấp cho họ một cái gì đó để làm việc với sau khi chúng tôi đã cài đặt phần mềm sửa đổi của chúng tôi trên router.

    Xây dựng Firmware đã sửa đổi

    Bây giờ mọi thứ đã sẵn sàng, đây là lúc để gói lại phần mềm đã sửa đổi thành một nhị phân nén mà chúng ta có thể flash vào router. Cú pháp kịch bản lệnh “build.sh” là:./build_firmware.sh OUTPUT_DIR WORKING_DIRECTORY

    Để thực hiện điều này, chúng tôi sử dụng tập lệnh được cung cấp, vì vậy hãy phát hành:

    ./build_firmware.sh output_mini1./working_dir_mini1/

    Khi hoạt động "xây dựng" được thực hiện, sẽ có một số hình ảnh phần sụn chờ đợi để được sử dụng trong thư mục "đầu ra".

    Bây giờ bạn có thể flash tập tin gọi là “custom_image_00001-generic.bin” vào router của bạn như bạn thường làm với phần mềm DD-WRT.

    chú thích: Đừng quên khôi phục về "mặc định nhà máy" trước, trong và ngay sau đèn flash chương trình cơ sở.

    Đăng các bước flash

    Bởi vì chúng tôi đã thực hiện gói SSMTP tìm kiếm các biến NVRAM để tạo tệp cấu hình ssmtp, bây giờ chúng tôi cần cung cấp cho nó thông tin còn thiếu. Chúng ta sẽ thực hiện điều này bằng cách sử dụng chức năng “Chạy lệnh” trên web-GUI.

    Chuyển đến web-GUI -> “quản trị” -> “lệnh” -> dán vào hộp văn bản như sau:

    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

    Thay thế văn bản sau dấu bằng (=) bằng với thông tin thực tế của bạn, sau đó nhấn “Chạy lệnh”. chú thích: nếu bạn sử dụng thường xuyên, không sử dụng TLS, máy chủ SMTP để sử dụng cổng là 25 thay vì 587.

    Bây giờ, thông tin SSMTP đã sẵn sàng để sử dụng, bạn sẽ cần gọi init script. Vì vậy, bạn có thể khởi động lại bộ định tuyến, hoặc dán vào hộp văn bản "lệnh":

    /etc/init.d/S80ssmtp

    Sau đó nhấn "Chạy lệnh" một lần nữa. Đầu ra của lệnh này sẽ giống như sau:

    Kiểm tra xem bạn có thể gửi email không Một lần nữa dán nó vào hộp văn bản “lệnh” lệnh sau bằng địa chỉ email của bạn:
    Kiểm tra xem bạn có thể gửi email không Một lần nữa dán nó vào hộp văn bản “lệnh” lệnh sau bằng địa chỉ email của bạn:

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

    Sau đó nhấn "Chạy lệnh" một lần nữa. Bởi vì chúng tôi đã sử dụng tùy chọn -vvv để có thêm độ dài, đầu ra của lệnh này sẽ giống như sau:

    Nếu mọi thứ suôn sẻ, bạn sẽ nhận được email kiểm tra trong vòng vài giây.
    Nếu mọi thứ suôn sẻ, bạn sẽ nhận được email kiểm tra trong vòng vài giây.

    Chúng tôi hy vọng rằng bạn có thể sử dụng thông tin này để đẩy giới hạn của bộ định tuyến của bạn hơn nữa, sau đó bạn nghĩ rằng có thể và bây giờ bạn thực sự kiểm soát bộ định tuyến của mình và DD-WRT…

    Linux mở rộng cuộc sống, Linux mở rộng ý thức … Linux là rất quan trọng cho việc đi lại gói

Đề xuất: