[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
02/01/2011 18:54:30 (+0700) | #1 | 228443 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
Như đã biết thì teamviewer là một công cụ hỗ trợ để điều khiển một máy khác cũng chạy teamviewer.
Em đã có một vấn đề thế này mà hiện tại thì em vẫn chưa giải thích được.
Teamviewer hoạt động thế nào. Teamviewer hoạt động có thông qua các server trung gian không.
-Nếu không thì 2 máy chạy teamviewer giao tiếp với nhau ở dưới 2 cái Nat như thế nào.
-Còn nếu có thì tại sao nó lại hoạt động khá hiệu quả. (nhanh)
Em đã làm thử nghiệm như sau:
Máy em và máy thằng bạn ở cùng trong một Lan cùng chạy teamviewer.Dĩ nhiên phải có một server nào đó để cấp phát ID + Pass cho các client teamviewer. Sau đó e kết nối với máy thằng bạn và điều khiển máy nó. Vấn đề xảy ra khi em ngắt mạng Internet (Dĩ nhiên 2 máy vẫn nhận nhau trong mạng Lan). Và máy e vẫn điều khiển được máy nó. ---> Chỗ này e quả thật không hiểu. Nếu 2 máy giao tiếp trực tiếp với nhau thì khi 2 client Teamviewer ở dưới 2 cái NAT thì nó giao tiếp thế nào đây. |
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
02/01/2011 20:21:09 (+0700) | #2 | 228446 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
pmquang wrote:
Teamviewer hoạt động thế nào. Teamviewer hoạt động có thông qua các server trung gian không.
Bạn lên homepage của nó đọc tài liệu kết hợp với việc dùng Wireshark thử xem.
pmquang wrote:
Em đã làm thử nghiệm như sau:
Máy em và máy thằng bạn ở cùng trong một Lan cùng chạy teamviewer.Dĩ nhiên phải có một server nào đó để cấp phát ID + Pass cho các client teamviewer. Sau đó e kết nối với máy thằng bạn và điều khiển máy nó. Vấn đề xảy ra khi em ngắt mạng Internet (Dĩ nhiên 2 máy vẫn nhận nhau trong mạng Lan). Và máy e vẫn điều khiển được máy nó. ---> Chỗ này e quả thật không hiểu. Nếu 2 máy giao tiếp trực tiếp với nhau thì khi 2 client Teamviewer ở dưới 2 cái NAT thì nó giao tiếp thế nào đây.
Bạn có chọn vào "Accept incomming LAN connections" không: http://support.teamviewer.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=40
|
|
Let's build on a great foundation! |
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
02/01/2011 20:44:00 (+0700) | #3 | 228448 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
pmquang wrote:
Teamviewer hoạt động thế nào. Teamviewer hoạt động có thông qua các server trung gian không.
Bạn lên homepage của nó đọc tài liệu kết hợp với việc dùng Wireshark thử xem.
Homepage e cũng lên đọc rồi. Chỉ toàn là hướng dẫn sử dụng. Cái e thật sự muốn biết là cơ chế ẩn dưới nó cơ.
E tìm thì cũng chỉ có thế này. Cũng có thể e tìm chưa kĩ
Does it work behind firewalls and NAT routers?
Yes! That is what we made TeamViewer for: TeamViewer will allow you to share your desktop over any kind of internet-/LAN-connection and over almost any firewall.
Em đã làm thử nghiệm như sau:
Máy em và máy thằng bạn ở cùng trong một Lan cùng chạy teamviewer.Dĩ nhiên phải có một server nào đó để cấp phát ID + Pass cho các client teamviewer. Sau đó e kết nối với máy thằng bạn và điều khiển máy nó. Vấn đề xảy ra khi em ngắt mạng Internet (Dĩ nhiên 2 máy vẫn nhận nhau trong mạng Lan). Và máy e vẫn điều khiển được máy nó. ---> Chỗ này e quả thật không hiểu. Nếu 2 máy giao tiếp trực tiếp với nhau thì khi 2 client Teamviewer ở dưới 2 cái NAT thì nó giao tiếp thế nào đây. smilie
Bạn có chọn vào "Accept incomming LAN connections" không: http://support.teamviewer.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=40
Hì hì. Lúc chạy e để tham số mặc định nên dĩ nhiên là nó bị deactive. |
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 10:04:51 (+0700) | #4 | 228578 |
|
chiro8x
Member
|
0 |
|
|
Joined: 26/09/2010 00:38:37
Messages: 661
Location: /home/chiro8x
Offline
|
|
Chà điều bạn nói có vẽ thú vị đây, liệu có khi nào nó dùng TCP để cấp ID sau đó sử dụng UDP giữa hai máy không nhỉ ). Cái này phải vọc WireShark mới biết được. Cảm ơn vì cảm hứng mới ^^!. |
|
while(1){} |
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 14:41:16 (+0700) | #5 | 228602 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
Tình hình là mới thi xong môn đầu. Rảnh một tí bắt gói tin coi chơi.
Nhưng quá trình trao đổi dữ liệu xảy ra khá phức tạp. Đến giờ vẫn chưa biết cơ chế nó là gì.
+ Đầu tiên client kết nối tới một server và được server và báo cho server này một cái key. Server thông báo lại một cái key. Kết thúc.
+ Sau đó client lại tiếp tục kết nối tới 3 server khác trong quá trình kết nối tới partner. Tới đây thì e đoán nó đang tiến hành mã hoá dữ liệu để cấp phát ID và pass và xác thực đối phương. ( Chỗ này dữ liệu bị mã hoá hết nên chỉ đoán thôi.)
+ Coi xuống phía dưới thì đúng là 2 client kết nối trực tiếp với nhau thông qua giao thức UDP. Dùng 2 port là 18974 và 61127. Vấn đề là trên modem không có NAT 2 cổng này. . Đáng lẽ chỗ này nó phải bị drop chứ nhỉ. Nếu không trong giao thức uTorrent nó đòi mở Port Forwarding làm chi nhỉ.
Thêm cái file capture bắt được wireshark cho anh em nào thích nghiên cứu coi chơi
http://www.mediafire.com/?r4nswyn4aod5wma
|
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 18:09:34 (+0700) | #6 | 228619 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
@pmquang: việc kết nối giữa 2 máy mà ở giữa là hai cái NAT không phải là không được (bao gồm cả symmetric NAT). Bạn nên tìm hiểu về port knocking. |
|
Mind your thought. |
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 19:15:06 (+0700) | #7 | 228629 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
@pmquang: việc kết nối giữa 2 máy mà ở giữa là hai cái NAT không phải là không được (bao gồm cả symmetric NAT). Bạn nên tìm hiểu về port knocking.
Theo gợi ý của anh StarGhost e đã tìm hiểu qua về port knocking và có một số nhận xét như sau.
Thứ nhất:
Port knocking là một phương pháp theo dõi log trên firewall và dựa vào log để có thể mở một số port tuỳ ý theo giao ước có trước. --> Cần có một cái deamon giám sát những cái này -->cần phải có một chế độ hỗ trợ và phải cài đặt một số thứ trên firewall. Nhưng e không đụng gì tới router nên chắc không phải.
Thứ hai:
Theo phương pháp làm việc của port knocking muốn kết nối tới một host mặc định bị đóng port, cần phải gửi một số gói tin tới một số một số port bị đóng của firewall nhằm mục đích knocking. Khi thoả mãn một số điều kiện thì firewall sẽ mở 1 port nào đó. Nhưng với con firewall cùi mía của FPT thì e nghĩ nó không hỗ trợ mấy cái này. Hơn nữa làm sao bên kia biết đường mà knocking. (cái này chắc phải thoả thuận trước) Nhưng do bị khoá đường vào telnet nên cũng không coi được log của router nên cũng chưa dám khẳng định gì. .
Mong các anh góp ý thêm.
Tham khảo:
http://lion.cs.uiuc.edu/courses/cs397hou/lectures/PortKnocking.ppt
http://www.portknocking.org
|
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 20:10:48 (+0700) | #8 | 228634 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
@pmquang: mình nói port knocking chỉ là một gợi ý, chứ mình không nói là dùng nó để vượt qua NAT. Port knocking là khái niệm đối với firewall, nhưng bạn hoàn toàn có thể ứng dụng ý tưởng của nó để vượt qua NAT. Bạn hơi phức tạp hoá vấn đề. Ý tưởng của port knocking rất đơn giản: gửi một loạt packets có chủ đích đến firewall để nó mở một (vài) port(s) nào đó. Vậy nếu bây giờ là NAT thay vì firewall thì sao? |
|
Mind your thought. |
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
04/01/2011 20:33:13 (+0700) | #9 | 228635 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
Vậy nếu bây giờ là NAT thay vì firewall thì sao?
Em chưa hiểu ý anh lắm. Không phải cơ chế NAT cũng là một dạng firewall sao. Mặc định thì router sẽ đong tất cả các cổng. Khi một host trong LAN muốn ra ngoài thì phải đi ra theo NAT động. Còn một gói tin muốn đi xuyên ngược lại vào mạng LAN thì phải có một cổng external mở trên router. Nếu không thì gói tin sẽ bị drop. Nhưng vấn đề là router có hiểu các knocking của phía bên kia không. |
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
05/01/2011 06:13:00 (+0700) | #10 | 228681 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
Thảo luận thêm:
+Bây giờ giả sử mình muốn viết một phần mềm giống teamviewer thì phải làm sao. (giống cả về phương thức và cách làm việc) Điều kiện cần có là gì. Phải tìm hiểu những gì trước. Và đây cũng là đích hướng tới cho câu hỏi thảo luận trên kia.
+Giả sử như dùng port knocking thì cài đặt thực tế ra sao. Liệu có khả thi. ...
Mong các anh góp ý thêm. |
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
05/01/2011 07:54:06 (+0700) | #11 | 228685 |
protectHat
Member
|
0 |
|
|
Joined: 09/08/2008 11:02:35
Messages: 176
Location: DMZ
Offline
|
|
Cái này thì mình không chắc nhưng mình nghĩ skype cũng làm việc với một kiểu tương tự. Ngay khi được cấp key rồi thì thay vì đi lên máy chủ, 2 máy có skype sẽ tìm kiếm các máy ở giữa ( không biết nó làm cách nào) để làm trung gian rồi chuyển gói tin qua. Với cách làm này thì 2 máy trong cùng lan có thể gửi file đạt tốc độ hơn 5M/s. Nếu tv cũng làm như vậy thì sẽ truyền được gói tin lớn đi mà không sợ server quá tải. Mặt khác là nếu cùng mạng sẽ nhanh hơn rất nhiều (vd như cùng Lan, cùng IPs, cùng WAN) |
|
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
05/01/2011 19:59:18 (+0700) | #12 | 228787 |
StarGhost
Elite Member
|
0 |
|
|
Joined: 29/03/2005 20:34:22
Messages: 662
Location: The Queen
Offline
|
|
pmquang wrote:
Em chưa hiểu ý anh lắm. Không phải cơ chế NAT cũng là một dạng firewall sao. Mặc định thì router sẽ đong tất cả các cổng. Khi một host trong LAN muốn ra ngoài thì phải đi ra theo NAT động. Còn một gói tin muốn đi xuyên ngược lại vào mạng LAN thì phải có một cổng external mở trên router. Nếu không thì gói tin sẽ bị drop. Nhưng vấn đề là router có hiểu các knocking của phía bên kia không.
Bạn vẫn sử dụng khái niệm port knocking một cách quá cứng nhắc. Như mình đã đề cập ở trên, cái bạn cần sử dụng là ý tưởng chủ đạo của port knocking, tức là gửi một/vài packets có chủ đích dẫn đến việc thiết bị trung gian (ở đây là NAT) mở port(s). Câu hỏi đặt ra là ai gửi và gửi những gì, có cần thiết server trung gian nào đó ở ngoài Internet hay không, tại sao cần, và cần bao nhiêu. Ngoài ra, NAT và firewall là hai khái niệm hoàn toàn khác nhau. NAT hoạt động theo xu hướng cho phép tạo kết nối, còn firewall thì ngược lại, nó ngăn chặn kết nối. |
|
Mind your thought. |
|
|
|
[Discussion] Thảo luận về cơ chế hoạt động của Teamviewer. |
05/01/2011 21:20:27 (+0700) | #13 | 228801 |
pmquang
Member
|
0 |
|
|
Joined: 21/06/2010 06:00:51
Messages: 40
Offline
|
|
Bạn vẫn sử dụng khái niệm port knocking một cách quá cứng nhắc. Như mình đã đề cập ở trên, cái bạn cần sử dụng là ý tưởng chủ đạo của port knocking, tức là gửi một/vài packets có chủ đích dẫn đến việc thiết bị trung gian (ở đây là NAT) mở port(s). Câu hỏi đặt ra là ai gửi và gửi những gì, có cần thiết server trung gian nào đó ở ngoài Internet hay không, tại sao cần, và cần bao nhiêu. Ngoài ra, NAT và firewall là hai khái niệm hoàn toàn khác nhau. NAT hoạt động theo xu hướng cho phép tạo kết nối, còn firewall thì ngược lại, nó ngăn chặn kết nối.
Theo e được hiểu. NAT là một khái niệm người ta chế ra nó với mục đích ban đầu và duy nhất là để tiết kiệm IPv4 trong tình trạng IPv4 khan hiếm so với nhu cầu.
Chính người nghĩ ra NAT cũng không ngờ nó lại có ích trong việc chặn các gói tin bất hợp pháp từ bên ngoài. Cái này thầy dạy -- e nhớ sơ sơ. Vậy nên mới liên tưởng đến việc NAT và firewall. Nếu có sai thì mọi người góp ý thêm.
Còn chuyện port knocking. E vẫn không biết là e cứng nhắc chỗ nào. :d. Em chỉ cần biết tập trung vào vấn đề chính ở đây là cơ chế của teamviewer. Nếu nó hoạt động dựa trên port knocking thì rõ ràng chuyện gửi "vài gói tin có chủ đích dẫn đến việc thiết bị trung gian mở port" là chuyện phải được theo dõi trên router. Nếu không bình thường router chỉ cần drop gói tin đó đi mà không quan tâm gì cả. Anh có thể nói rõ hơn không. |
|
|
|
|
|