Thông báo

Collapse
No announcement yet.

Các bác cho em về làm một con Firewall nhúng linux có update dữ liệu

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Các bác cho em về làm một con Firewall nhúng linux có update dữ liệu

    Các bác cho em hỏi về làm một con Firewall nhúng linux có update dữ liệu (viết thiếu mất một chữ ở Topic bác mod nào sửa giùm em với. Thanks)

    Em định làm một con Firewall nhúng như hình vẽ

    Vấn đề em đang băn khoăn về các cơ chế thực hiện vì em mới bắt đầu học linux, và nhúng nữa.
    Các bác cho em hỏi với:
    1. Khi user truy cập từ xa vào con homeserver ở nhà mình quản lí các thiết bị thông minh trong nhà thì nó sẽ bị thằng Firewall mình cần xây dựng hỏi ID và pass(các cái này giả sử được thiết lập sẵn trong con Firewall). Vậy là khi có gói tin request vào thằng homeserver ở nhà thì thằng Firewall nó cóc biết thằng homeserver như thế nào đâu (do có nhiều thằng bán homeserver mà), nó cứ thấy có gói tin qua là nó hỏi userID và pass, giả sử user nhập đúng userID và pass thì từ sau cái gói tin đầu này mọi thông tin sẽ được truyền qua Firewall mà không cần hỏi gì nữa. Vậy chi tiết thì mình phải làm gì, có như em nghĩ không và làm nó cần đọc các cái gì?
    2. Thằng Firewall này dựa trên một cơ sở dữ liệu để thực hiện chức năng firewall, em muốn update dữ liệu, vậy con firewall này có IP tĩnh không và nó liên lạc với thằng server để lấy dữ liệu như thế nào, có cần đặt các gói tin theo các cờ đặc biệt để nó liên lạc với server không?
    Last edited by MrNothing; 03-01-2008, 09:00.

  • #2
    Mình không biết nhiều lắm nhưng cơ chế sinh hỏi ID và pass chắc là do thằng Device tạo ra hỏi ID và pass. Còn các chi tiết chắc phải xem lại các protocol xem can thiệp được đến đâu! Như các giao thức bắt tay, xác thực, kiểm tra session, đọc gói tin ,... !
    Còn muốn update dữ liệu thì hình như dựa vào cái IP Wan để update dữ liệu!

    Comment


    • #3
      Đầu tiên là sử dụng Linux cài đặt VLAN và iptable. Không biết giờ còn Squid proxy không, nếu còn thì dùng nó.

      Nếu Linux nhúng thì có firewall nhúng. Còn không thì dùng linux như server, firewall inside.

      "Mới học về linux" với tham vọng chơi firewall và nhúng là tốt đấy
      Opentdoors- Thành viên của Rock'n'Roll club

      Comment


      • #4
        Dạ mới học nên sẽ phải tìm hiểu mọi thứ từ đầu và cũng chưa biết sẽ bắt đầu như thế nào anh ạ! Mong các anh chỉ giáo cho những sách cần đọc những cái cần phải biết chứ tự mò mẫm thì lâu quá với lại đọc qua mạng thì nhiều thứ lơ mơ vì chưa biết mấy.
        Ví dụ như chưa biết làm sao mà khi mình cho con linux nhúng xen vào giữa thì vẫn đảm bảo thông mạng cho con home server tại nhà kia. Lập trình cho nó cứ có tín hiệu nào vào thì cho out ra đầu kia chăng?

        Comment


        • #5
          các bác cho em hỏi nếu có sách ebook tiếng anh nào tốt về lập trình mạng với embedded trên linux không ạ?

          Comment


          • #6
            Chắc chắn là không?

            Trước hết bạn lập trình tốt trên Linux, nếu liên quan đến nhúng thì sử dụng thêm Java. Nhưng trước hết cứ làm tốt trên PC những gì mình mong muốn, máy tính nhúng cũng chỉ là 1 loại máy tính khác với máy tính để bàn thôi.

            Còn "thông mạng cho home server", bạn đọc iptable đi đã
            Opentdoors- Thành viên của Rock'n'Roll club

            Comment


            • #7
              Nguyên văn bởi MrNothing Xem bài viết
              Các bác cho em hỏi về làm một con Firewall nhúng linux có update dữ liệu (viết thiếu mất một chữ ở Topic bác mod nào sửa giùm em với. Thanks)

              Em định làm một con Firewall nhúng như hình vẽ

              Vấn đề em đang băn khoăn về các cơ chế thực hiện vì em mới bắt đầu học linux, và nhúng nữa.
              Các bác cho em hỏi với:
              1. Khi user truy cập từ xa vào con homeserver ở nhà mình quản lí các thiết bị thông minh trong nhà thì nó sẽ bị thằng Firewall mình cần xây dựng hỏi ID và pass(các cái này giả sử được thiết lập sẵn trong con Firewall). Vậy là khi có gói tin request vào thằng homeserver ở nhà thì thằng Firewall nó cóc biết thằng homeserver như thế nào đâu (do có nhiều thằng bán homeserver mà), nó cứ thấy có gói tin qua là nó hỏi userID và pass, giả sử user nhập đúng userID và pass thì từ sau cái gói tin đầu này mọi thông tin sẽ được truyền qua Firewall mà không cần hỏi gì nữa. Vậy chi tiết thì mình phải làm gì, có như em nghĩ không và làm nó cần đọc các cái gì?
              2. Thằng Firewall này dựa trên một cơ sở dữ liệu để thực hiện chức năng firewall, em muốn update dữ liệu, vậy con firewall này có IP tĩnh không và nó liên lạc với thằng server để lấy dữ liệu như thế nào, có cần đặt các gói tin theo các cờ đặc biệt để nó liên lạc với server không?

              Đầu tiên xin tạm chia vấn đề của bạn thành 2 việc: tường lửa (firewall) và nhúng (embedded).

              Để làm tường lửa, dễ dàng nhất là mua thiết bị có sẵn ! Nghe hơi buồn cười nhưng trừ khi bạn có yêu cầu tường đối khác thường, làm thiết bị từ đầu luôn kém kinh tế hơn và mất nhiều hơn được. Nhưng như yêu cầu của bạn thì thấy có vẻ khá khác thường.

              Để sử dụng máy tính làm tường lửa, có thể cài phần mềm tường lửa trên một bản phân phối thông thường nào đó, nhưng cách dễ nhất là sử dụng một bản phân phối Linux chuyên dùng làm tường lửa. Danh sách bạn có thể xem tại đây. Hai bản phân phối tốt mà tôi khuyến cáo là Coyote Linux personal firewallDevil-Linux. Sau khi đã cài đặt, bạn đọc hướng dẫn sử dụng để biết cách thức đặt cấu hình cụ thể. Nói chung khi sử dụng Linux chuyên dụng thì phần đặt cấu hình không quá khó đâu.

              Vấn đề thứ hai - nhúng - có cách giải quyết phụ thuộc vào việc bạn định nghĩa khái niệm "nhúng" đến đâu. Nếu chỉ đơn giản là đưa chương trình vào trong ROM để không dùng đĩa cứng thì khá đơn giản. Bạn vẫn dùng máy tính thông thường, thay vì đĩa cứng thì bạn sử dụng thẻ nhớ CompactFlash kết hợp với một bo mạch chuyển đổi chận thành giao diện IDE. Sơ đồ bo mạch này đầy rẫy trên mạng (hỏi anh Google là ra), nếu không có thể mua thiết bị có sẵn bán ở hàng vi tính. Những hệ điều hành tôi đề cập đều có chế độ khởi động và chạy với những thư mục ghi nhiều (/var, /tmp) nằm trong bộ nhớ. Có một cách khác là cài đặt hệ điều hành vào ổ USB rồi thiết lập BIOS để khởi động từ cổng USB.

              Chế lại bộ nguồn một chút: thay tản nhiệt lớn để không cần quạt nữa là xong một hệ nhúng không có chuyển động cơ khí nào.


              Còn nếu bạn muốn làm nhúng từ đầu: build tất cả phần mềm từ mã nguồn, cài trên bo mạch máy tính công nghiệp thì lại là cả một câu chuyện dài khác ...
              Phần mềm tự do hoặc không dùng máy tính nữa !.

              Comment


              • #8
                Nguyên văn bởi MrNothing Xem bài viết
                các bác cho em hỏi nếu có sách ebook tiếng anh nào tốt về lập trình mạng với embedded trên linux không ạ?
                Lập trình mạng và nhúng Linux là hai vấn đề chả liên quan gì với nhau. Lập trình thì dùng cho cái nào cũng được, nhúng là một kỹ thuật. Sách tham khảo vui lòng xem các bài số 1314.
                Phần mềm tự do hoặc không dùng máy tính nữa !.

                Comment


                • #9
                  Một vấn đề lớn nhất của em là: Theo em biết thì những con firewall hiện tại nó ko có cơ chế nhập ID và pass để pass qua device. Em muốn là khi người dùng truy nhập vào hệ thống bên trong thì nó sẽ hỏi ID và pass, nếu ID và Pass thỏa mãn thì mọi dữ liệu hay điều khiển từ thằng user bên ngoài vào sẽ được chấp nhận đi vào hệ thống đằng sau device đó và không kiểm tra gì nữa. Em không rõ cơ chế này lắm. Khi ID và pass thỏa mãn nó cho luồng dữ liệu của thằng kia đi qua nhưng vấn đề là có rất nhiều cơ chế giả IP, sửa đổi dữ liệu...

                  Comment


                  • #10
                    trong chương 5 sách "Network Security with Openssl" có nói về phần lập trình SSL và TLS. Nó có viết 1 chương trình dạng console client và server cứ cái gì gõ từ client trên cửa sổ đó sẽ hiện thị trên phía server. Port mà nó sử dụng là 6001 cho chương trình này! Client cứ gõ thì nó đọc dòng vào và send lên ra cổng 6001 và phía server chờ cổng 6001 và nếu thấy dữ liệu vào thì hiển thị ra.
                    Theo em thì cơ chế ID và pass ở dây cũng theo như trên, giả sử mình cần secure cho ứng dụng cổng A. Một chương trình trên server thấy dữ liệu từ client qua cổng A thì nó sẽ hỏi ID và pass bằng cách mở một cổng B cho nhập ID và pass. Sau khi đã xác thực ID và pass đúng thì sẽ thả cửa cho dữ liệu từ client đi qua cổng A để mặc cho thằng phía bên trong sử lí.
                    Việc truyền dữ liệu ID và pass từ client đến được bảo mật bằng giao thức SSL rồi!
                    Nhưng mà vấn đề là nhỡ mình delay gói dữ liệu request từ thằng kia đến để đòi đăng nhập ID và pass thì đã quá mất time out của nó rồi
                    Theo ý em hiểu là vậy, nó có thực tế không và còn việc triển khai sẽ là cả một vấn đề lớn. Ví dụ như người ta không hay dùng openssl cho các phần nhúng vì hệ nhúng tài nguyên không bằng máy tính thường, may mắn thay là có mấy cái mã nguồn mở khác ngoài openssl là yassl và một số cái khác. Nhưng ebook cho openssl thì có mấy quyển còn yassl thì không thấy có!
                    Last edited by MrNothing; 15-01-2008, 00:42.

                    Comment


                    • #11
                      Giả sử em muốn làm một con embedded với 1 cổng vào từ Internet, đằng sau nó là 1 cổng ra 1 máy tính khác hoặc một hệ thống khác đảm bảo cho máy tính đằng sau và hệ đằng sau vẫn kết nối net thì việc em phải làm là gì? Phải chăng là viết 1 ctrình cứ chạy, thấy dữ liệu vào cổng in thì cho nó ra cổng out và ngược lại. cứ những tín hiệu trả lời nào từ máy tinh đằng sau vào qua cổng out thì cho nó ra cổng in. Lí thuyết em nghĩ là vậy còn thực tế chưa biết thế nào?

                      Comment


                      • #12
                        Cuối cùng thì cũng không biết bạn hỏi cái gì?

                        Sao lan man thế.
                        Opentdoors- Thành viên của Rock'n'Roll club

                        Comment


                        • #13
                          Sorry bác Opendoors vì em lan man quá!
                          Ví dụ bây giờ em muốn lấy một con máy tính em đang cài linux làm ví dụ con Fire wall. Và đằng sau nó sẽ là một con máy tính khác chẳng hạn. Theo em hiểu thì con máy tính em giả làm Firewall sẽ có 2 cổng ethernet.cổng 1 cho đường mạng vào đó, cổng 2 để cho ra con máy đằng sau nó! Theo em hiểu thì mình sẽ phải bắt mọi luồng vào từ cổng 1 để cho nó ra cổng 2. Giả sử con máy giả làm Firewall đã cài sẵn linux rồi. Đấy là cái em muốn minh hoạ nhưng em chưa biết làm thế nào? Ví dụ như kiểm soát lúc nào dữ liệu vào cổng 1 cũng sẽ đi ra cổng 2 và mình sẽ đặt chương trình để kiểm soát dữ liệu này xem có gói tin attack nào không!

                          Comment


                          • #14
                            Đầu tiên bạn cài 2 card mạng vào PC của bạn (Linux inside) Khi đó PC này là gateway+router+firewall. Bạn sử dụng iptables hoặc lập trình gì đó (iptable viết bằng Java) để định nghĩa cho các port và địa chỉ IP.

                            Khi bạn thành thạo rồi, bạn thử build toàn bộ hệ thống lên đĩa mềm (bạn đọc các tài liệu về bootdisk,... tại www.tldp.org phần guides).

                            Với hệ thống nhúng cũng như vậy thôi, nhưng nó dùng Flash hoặc CF. Nên dung lượng lớn hơn 1 cái đĩa mềm.

                            Đây là nơi bạn cần http://www.freesco.org/index.php?id=d
                            Opentdoors- Thành viên của Rock'n'Roll club

                            Comment


                            • #15
                              Cảm ơn bác Opendoors. Em không biết về Java, em chỉ biết mỗi C ++ thôi, chưa lập trình Java bao giờ
                              Tối nay em cũng thử built theo cái này xem sao!
                              http://www.vnpower.org/forums/Tim-hi...w-t35920.html#

                              Comment

                              Về tác giả

                              Collapse

                              MrNothing Tìm hiểu thêm về MrNothing

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X