thảo luận Cộng đồng người dùng MikroTik Router

Thanks thím đã giải thích cặn kẽ. Rule tường lửa giờ đã ổn định rồi, tháng sau rảnh rỗi mình ngâm cứu cái RAW nữa.

Những rule RAW trong hướng dẫn của Mikrotik áp dụng tương thích với filter rule phải k thím? Building Advanced Firewall - RouterOS - MikroTik Documentation (https://help.mikrotik.com/docs/display/ROS/Building+Advanced+Firewall)

Vâng bác, bác có thể nghịch ngợm bên bảng RAW mà không cần chỉnh sửa gì các rules bên bảng Filter của bác.

Tuy nhiên thường thì bác không cần rules gì ở cái bảng RAW này đâu. Các rules thí dụ ở trang kia chỉ là thí dụ cho bác tham khảo mà thôi, chứ nó cũng không làm cho router của bác an toàn hơn. Những packet mà bị các rules RAW ví dụ đó drop, thì khi bác gỡ hết các rules RAW đó đi, cũng sẽ bị hoặc là các rules filter bình thường drop, hoặc bị ignore hoàn toàn, hoặc không gây tác dụng hại nào được ngoài việc chiếm CPU xử lý. Tức là không có các rules này không có nghĩa là router và mạng của bác tự dưng bị lỗ hổng to tướng kẻ xấu có thể xâm nhập được. Nên nếu bác có copy chúng vào thì bình thường bác nên bật cái dòng rules này lên

1710274693848.png


để nó accept packet ngay lập tức và ignore các rules RAW bên dưới, chuyển sang xử lý bởi cái rules Mangle, NAT, và Filter bình thường. Khi nào rỗi muốn thử nghiệm các rules bên dưới thì lại để disabled=yes ở cái rule này (disable nó để không skip nữa).

Bác hãy tưởng tượng là phần lớn thời gian khi bác sử dụng internet với router của bác và download, upload dữ liệu, thì các packet mà router bác cần xử lý gần như hầu hết là các packet được xếp vào cái nhóm có connection-state=established. Thí dụ khi bác download 1 file bộ phim 14GB, cứ xét các packet nhận được đi, và cứ coi là mỗi packet chứa được 1400 bytes dữ liệu, thì có nghĩa là để download bộ phim đó router của bác phải xử lý 10 triệu packet đến.

Trong trường hợp Fasttrack KHÔNG HOẠT ĐỘNG, nếu không có rules RAW nào, chỉ có các rules Filter và NAT thông thường thì thực chất chỉ có packet đầu tiên (hoặc có thể là thêm vài packet nữa) là phải chạy qua chuỗi rules của bác (vì connection-state=new) và được accept, còn lại toàn bộ 10 triệu packets còn lại chỉ việc chạy qua connection tracking, sau đó match ngay với rule accept ở bên trên của chain. Các packets này thậm chí không cần phải chạy qua các rules NAT như các packet đầu nữa, vì trong cái connection entry đã có thông tin phải sửa cổng và địa chỉ nguồn/gốc như nào rồi. Như vậy là hầu như toàn bộ các packet chỉ cần được xử lý bởi connection tracking và 1 rule filter accept.

Nếu bác có các rules ở bảng RAW thì cả 10 triệu packet đó đều phải chạy qua rules ở bảng đó để xử lý. Nếu bác copy cả lũ rules kia thì thậm chí phải chạy qua hết một lô rules em đánh dấu màu đỏ ở đây, cho đến tận rules gạch chân màu xanh mới được xử lý tiếp (là accept cho đi tiếp vì nó đến từ interface WAN):

1710275682389.png


10 triệu lần như thế. Tốn kém CPU vô ích vì đa số các packets khi sử dụng bình thường đều được router accept.

Khi FASTTRACK có hoạt động, và connection hiện thời đáp ứng được yêu cầu của fasttrack (1 trong các yêu cầu là phải là loại packet UDP hoặc TCP) thì sẽ không đến mức thảm hại như thế, tức là đống rules RAW không phải xử lý cả 10 triệu packets. Lý do là thường những packet connection-state=etablished đầu tiên sẽ được chạy qua rules fasttrack, rules này sẽ đánh dấu connection hiện thời là connection fasttrack, và sau đó hầu hết các packet tiếp theo sẽ skip được toàn bộ các rules tường lửa, kể cả rules RAW. Tuy nhiên không phải tất cả các packet đều được fasttrack, ngoài các packet không phải UDP và TCP, sẽ vẫn có các packet của connection đã đánh dấu fasttrack được cho đi qua tường lửa, theo MikroTik là để giữ cái connection entry nó không bị mất. Ở cái screenshot lần trước bác post này:

1710279082935.png


Bác có thể thấy có 36.5 triệu packets với 38.4GB đi được bằng đường fasttrack, tuy nhiên bên dưới vẫn cần có 583 nghìn packets với 180MB và connection-state=established phải đi qua các rules bình thường. Đống packets này cũng phải đi qua đống rules RAW. Như vậy với 10 triệu packet cũng sẽ có vài trăm nghìn packet phải đi qua bảng RAW.

Thông thường router của bác drop packet phần lớn thời gian do gặp packet lỗi (state invalid, thường do các packet liên quan khác bị loss). Họa hoằn lắm mới là bị "tấn công" do kẻ xấu nào đó bên ngoài internet thử quét cổng xem cổng nào mở, hay thử kết nối vào những cổng kiểu 22 (SSH) và thử login. Nếu điều này có xảy ra đi chẳng nữa thì thông thường cũng chỉ vài nghìn packet một giây. Nếu không có rules ở bảng RAW chặn chúng thì thông thường các packets "xấu" này sẽ phải chạy qua connection tracking, sau đó chạy qua hầu hết các rules tường lửa của bác, để rồi bị rơi vào cái rules "drop all" ở dưới cùng của chain. Tất nhiên là chiếm CPU, nhưng thực ra không ăn thua gì so với 10 triệu cái packet lúc download kia của bác. Cứ cho là bác bị scan cổng 1 vòng (65 nghìn cổng) hay kẻ xấu thử connect vài nghìn lần vào cổng abc, cũng không thấm gì so với việc bật nhiều rules ở bảng RAW và ép tất cả các packets phải chạy qua chúng. Nếu không tin bác thử mở bảng filter ra, xem cái đống rules drop của bác nó drop được bao nhiêu packet với bytes rồi, và so sánh với số packet và bytes đã được cái fasttrack counter ở trên, hoặc rule accept established,related,untracked ở dưới đếm được.

Bảng RAW có ích khi nào? Khi bác bị DoS/DDoS. Thông thường chẳng ai hơi đâu đi DoS bác làm gì. Nhưng bác có thể dùng bảng RAW khi phát hiện router bỗng dưng chậm như rùa vì có ai đó đang gửi mấy chục ngàn packet UDP hay TCP SYN một giây vào cổng abc của bác mà không quan tâm đến response chẳng hạn. Router của bác sẽ bị tốn tài nguyên vì phải xử lý chúng qua connection tracking và cho chúng chạy qua các rules filter trước khi drop chúng. Khi phát hiện bị DoS kiểu này thì việc bác nên làm là xác định địa chỉ IP gốc của đống packet, hoặc xác định cổng đang bị tấn công, và add nhanh một rule drop tạm vào bảng RAW để lọc nhanh đống packet đó. Lúc này rule RAW đó sẽ rất hiệu quả vì nó drop ngay được dựa trên src-address hoặc dst-port, thông tin có sẵn trong header packet, mà không cần phải xử lý tiếp chúng. Hết bị tấn công rồi thì bỏ đống rules raw đi.

Ngoài ra như ở post trước em viết, rule ở bảng RAW nếu có action=notrack còn có thể giúp các packet đã match được với rule đó bỏ qua được connection tracking và đa số rules còn lại của tường lửa, coi như được accept nhanh khi không cần các tính năng connection-tracking mang lại. Ở đây thì còn phụ thuộc vào việc các packet loại này có xuất hiện nhiều so với các packet bình thường không. Vì ở đây các packet loại này được xử lý nhanh, nhưng các packet khác còn lại sẽ tự dưng bị dính thêm 1 rule tường lửa phải đi qua, nên có thể hiệu quả ngược lại so với mong muốn.

Tóm lại, hàng ngày đa số traffic của bác là traffic được accept, và là traffic tiếp theo của 1 connection có sẵn (connection-state=established). Thế nên bác nên tối ưu hóa trường hợp này. Đấy là lý do vì sao RouterOS phải có cái rule đặc cách fasttrack, hoặc vì sao các rules accept packet loại này phải để lên trên cùng của các chain (để nhanh chóng skip được các rules còn lại). Các rules ở bảng filter như của bác ở trên đủ bảo vệ an toàn cho router và các thiết bị đăng sau nó rồi. Bác chỉ cần dùng đến bảng RAW khi bị tấn công bởi DoS. Còn không thì bảng RAW chỉ làm chậm traffic bình thường đi mà thôi (nếu các rules RAW không có khả năng accept ngay lập tức các packet hay xuất hiện nhất, mà như bác thấy ở hình trên, cái đống rules thí dụ đó không làm được điều này).
 
Last edited:
Bác cho e hỏitên của scrip như của bác thì là gì ạ, e cũng làm thử nó cũng báo ip với tin nhắn nhưng khi đổi ip thì không thấy báo
Thím thử với scripts này xem sao

/system scripts thím add cái new scripts với tên publicipaddress
Code:
# Scripts name: publicipaddress
:local telegramBotKey AAAAAAAAAA:BBBBBBBBBBBBBBBBBBBBBBB
:local chatID CCCCCCCCCC
:global PUBLICIP;
:while (1) do={
 :if ( [:len [/ip address find interface="pppoe-out1"]]=1 ) do={
  :local PUBLICNEWIP [/ip address get [find interface="pppoe-out1"] address];
  :if ($PUBLICNEWIP != $PUBLICIP) do={
   :set PUBLICIP $PUBLICNEWIP;
   /tool fetch keep-result=no url="https://api.telegram.org/bot$telegramBotKey/sendmessage\?chat_id=$chatID&text=Public IP CHANGED $PUBLICIP";
  }
 }
 :delay 5s
}

/system scheduler thím add cái new scheduler với time interval 5s: 00:00:05
Code:
if ( [len [/system script job find script="publicipaddress"]]=0 ) do={ /system script run [find name=publicipaddress] }
 

Attachments

  • Untitled.jpg
    Untitled.jpg
    296.1 KB · Views: 10
Thank you @ppptran Chủ Tịch

chủ tịch giúp em file này với ạ em ko có tk, e cảm ơn nhiều nha
 
chủ tịch giúp em file này với ạ em ko có tk, e cảm ơn nhiều nha
Thua rồi fen ơi. 189 thím nhờ thím nào có acc vip mới down được. Acc mình giờ nó méo link với 189 nữa, bó tay
 
Thua rồi fen ơi. 189 thím nhờ thím nào có acc vip mới down được. Acc mình giờ nó méo link với 189 nữa,

Xin lỗi mn, mình vào đây ko liên quan đến mikrotik, muốn nhờ ai đó có tk trang này tải giúp em cái file e khoanh đỏ, e xin cảm ơn ạ
某度吞了连接,重新改成189网盘天翼云盘 珍藏美好生活 家庭云|网盘|文件备份|资源分享 (https://cloud.189.cn/t/IfEVfquUzi6f) (访问码:6boe)
View attachment 2247360
bác nhờ tải đc chưa giup e với, e cảm ơn
 
Vâng bác, bác có thể nghịch ngợm bên bảng RAW mà không cần chỉnh sửa gì các rules bên bảng Filter của bác.

Tuy nhiên thường thì bác không cần rules gì ở cái bảng RAW này đâu. Các rules thí dụ ở trang kia chỉ là thí dụ cho bác tham khảo mà thôi, chứ nó cũng không làm cho router của bác an toàn hơn. Những packet mà bị các rules RAW ví dụ đó drop, thì khi bác gỡ hết các rules RAW đó đi, cũng sẽ bị hoặc là các rules filter bình thường drop, hoặc bị ignore hoàn toàn, hoặc không gây tác dụng hại nào được ngoài việc chiếm CPU xử lý. Tức là không có các rules này không có nghĩa là router và mạng của bác tự dưng bị lỗ hổng to tướng kẻ xấu có thể xâm nhập được. Nên nếu bác có copy chúng vào thì bình thường bác nên bật cái dòng rules này lên

View attachment 2380379

để nó accept packet ngay lập tức và ignore các rules RAW bên dưới, chuyển sang xử lý bởi cái rules Mangle, NAT, và Filter bình thường. Khi nào rỗi muốn thử nghiệm các rules bên dưới thì lại để disabled=yes ở cái rule này (disable nó để không skip nữa).

Bác hãy tưởng tượng là phần lớn thời gian khi bác sử dụng internet với router của bác và download, upload dữ liệu, thì các packet mà router bác cần xử lý gần như hầu hết là các packet được xếp vào cái nhóm có connection-state=established. Thí dụ khi bác download 1 file bộ phim 14GB, cứ xét các packet nhận được đi, và cứ coi là mỗi packet chứa được 1400 bytes dữ liệu, thì có nghĩa là để download bộ phim đó router của bác phải xử lý 10 triệu packet đến.

Trong trường hợp Fasttrack KHÔNG HOẠT ĐỘNG, nếu không có rules RAW nào, chỉ có các rules Filter và NAT thông thường thì thực chất chỉ có packet đầu tiên (hoặc có thể là thêm vài packet nữa) là phải chạy qua chuỗi rules của bác (vì connection-state=new) và được accept, còn lại toàn bộ 10 triệu packets còn lại chỉ việc chạy qua connection tracking, sau đó match ngay với rule accept ở bên trên của chain. Các packets này thậm chí không cần phải chạy qua các rules NAT như các packet đầu nữa, vì trong cái connection entry đã có thông tin phải sửa cổng và địa chỉ nguồn/gốc như nào rồi. Như vậy là hầu như toàn bộ các packet chỉ cần được xử lý bởi connection tracking và 1 rule filter accept.

Nếu bác có các rules ở bảng RAW thì cả 10 triệu packet đó đều phải chạy qua rules ở bảng đó để xử lý. Nếu bác copy cả lũ rules kia thì thậm chí phải chạy qua hết một lô rules em đánh dấu màu đỏ ở đây, cho đến tận rules gạch chân màu xanh mới được xử lý tiếp (là accept cho đi tiếp vì nó đến từ interface WAN):

View attachment 2380382

10 triệu lần như thế. Tốn kém CPU vô ích vì đa số các packets khi sử dụng bình thường đều được router accept.

Khi FASTTRACK có hoạt động, và connection hiện thời đáp ứng được yêu cầu của fasttrack (1 trong các yêu cầu là phải là loại packet UDP hoặc TCP) thì sẽ không đến mức thảm hại như thế, tức là đống rules RAW không phải xử lý cả 10 triệu packets. Lý do là thường những packet connection-state=etablished đầu tiên sẽ được chạy qua rules fasttrack, rules này sẽ đánh dấu connection hiện thời là connection fasttrack, và sau đó hầu hết các packet tiếp theo sẽ skip được toàn bộ các rules tường lửa, kể cả rules RAW. Tuy nhiên không phải tất cả các packet đều được fasttrack, ngoài các packet không phải UDP và TCP, sẽ vẫn có các packet của connection đã đánh dấu fasttrack được cho đi qua tường lửa, theo MikroTik là để giữ cái connection entry nó không bị mất. Ở cái screenshot lần trước bác post này:

View attachment 2380398

Bác có thể thấy có 36.5 triệu packets với 38.4GB đi được bằng đường fasttrack, tuy nhiên bên dưới vẫn cần có 583 nghìn packets với 180MB và connection-state=established phải đi qua các rules bình thường. Đống packets này cũng phải đi qua đống rules RAW. Như vậy với 10 triệu packet cũng sẽ có vài trăm nghìn packet phải đi qua bảng RAW.

Thông thường router của bác drop packet phần lớn thời gian do gặp packet lỗi (state invalid, thường do các packet liên quan khác bị loss). Họa hoằn lắm mới là bị "tấn công" do kẻ xấu nào đó bên ngoài internet thử quét cổng xem cổng nào mở, hay thử kết nối vào những cổng kiểu 22 (SSH) và thử login. Nếu điều này có xảy ra đi chẳng nữa thì thông thường cũng chỉ vài nghìn packet một giây. Nếu không có rules ở bảng RAW chặn chúng thì thông thường các packets "xấu" này sẽ phải chạy qua connection tracking, sau đó chạy qua hầu hết các rules tường lửa của bác, để rồi bị rơi vào cái rules "drop all" ở dưới cùng của chain. Tất nhiên là chiếm CPU, nhưng thực ra không ăn thua gì so với 10 triệu cái packet lúc download kia của bác. Cứ cho là bác bị scan cổng 1 vòng (65 nghìn cổng) hay kẻ xấu thử connect vài nghìn lần vào cổng abc, cũng không thấm gì so với việc bật nhiều rules ở bảng RAW và ép tất cả các packets phải chạy qua chúng. Nếu không tin bác thử mở bảng filter ra, xem cái đống rules drop của bác nó drop được bao nhiêu packet với bytes rồi, và so sánh với số packet và bytes đã được cái fasttrack counter ở trên, hoặc rule accept established,related,untracked ở dưới đếm được.

Bảng RAW có ích khi nào? Khi bác bị DoS/DDoS. Thông thường chẳng ai hơi đâu đi DoS bác làm gì. Nhưng bác có thể dùng bảng RAW khi phát hiện router bỗng dưng chậm như rùa vì có ai đó đang gửi mấy chục ngàn packet UDP hay TCP SYN một giây vào cổng abc của bác mà không quan tâm đến response chẳng hạn. Router của bác sẽ bị tốn tài nguyên vì phải xử lý chúng qua connection tracking và cho chúng chạy qua các rules filter trước khi drop chúng. Khi phát hiện bị DoS kiểu này thì việc bác nên làm là xác định địa chỉ IP gốc của đống packet, hoặc xác định cổng đang bị tấn công, và add nhanh một rule drop tạm vào bảng RAW để lọc nhanh đống packet đó. Lúc này rule RAW đó sẽ rất hiệu quả vì nó drop ngay được dựa trên src-address hoặc dst-port, thông tin có sẵn trong header packet, mà không cần phải xử lý tiếp chúng. Hết bị tấn công rồi thì bỏ đống rules raw đi.

Ngoài ra như ở post trước em viết, rule ở bảng RAW nếu có action=notrack còn có thể giúp các packet đã match được với rule đó bỏ qua được connection tracking và đa số rules còn lại của tường lửa, coi như được accept nhanh khi không cần các tính năng connection-tracking mang lại. Ở đây thì còn phụ thuộc vào việc các packet loại này có xuất hiện nhiều so với các packet bình thường không. Vì ở đây các packet loại này được xử lý nhanh, nhưng các packet khác còn lại sẽ tự dưng bị dính thêm 1 rule tường lửa phải đi qua, nên có thể hiệu quả ngược lại so với mong muốn.

Tóm lại, hàng ngày đa số traffic của bác là traffic được accept, và là traffic tiếp theo của 1 connection có sẵn (connection-state=established). Thế nên bác nên tối ưu hóa trường hợp này. Đấy là lý do vì sao RouterOS phải có cái rule đặc cách fasttrack, hoặc vì sao các rules accept packet loại này phải để lên trên cùng của các chain (để nhanh chóng skip được các rules còn lại). Các rules ở bảng filter như của bác ở trên đủ bảo vệ an toàn cho router và các thiết bị đăng sau nó rồi. Bác chỉ cần dùng đến bảng RAW khi bị tấn công bởi DoS. Còn không thì bảng RAW chỉ làm chậm traffic bình thường đi mà thôi (nếu các rules RAW không có khả năng accept ngay lập tức các packet hay xuất hiện nhất, mà như bác thấy ở hình trên, cái đống rules thí dụ đó không làm được điều này).
Wow :waaaht: Thanks thím đã nhiệt tình giải thích cặn kẽ :sweet_kiss:
 
Mò được list port này cho PS5 chơi remote từ bên ngoài.

Các port cần thiết là:
  • 8572
  • 987
  • 9295-9308
Có vẻ còn chập chờn vì kết nối được với PC/Mac chơi tốt nhưng điện thoại thì vẫn bị lỗi.

Có cách nào nat được trong 1 rules mà đi được cả dải 9295-9308 ko nhỉ các bác?
 
Last edited:
Mò được list port này cho PS5 chơi remote từ bên ngoài.

Các port cần thiết là:
  • 8572
  • 987
  • 9295-9308
Có vẻ còn chập chờn vì kết nối được với PC/Mac chơi tốt nhưng điện thoại thì vẫn bị lỗi.

Có cách nào nat được trong 1 rules mà đi được cả dải 9295-9308 ko nhỉ các bác?
Mở all port khỏi suy nghĩ quý anh.
 
Mò được list port này cho PS5 chơi remote từ bên ngoài.

Các port cần thiết là:
  • 8572
  • 987
  • 9295-9308
Có vẻ còn chập chờn vì kết nối được với PC/Mac chơi tốt nhưng điện thoại thì vẫn bị lỗi.

Có cách nào nat được trong 1 rules mà đi được cả dải 9295-9308 ko nhỉ các bác?

Bác ghi cả lũ cổng vào chỗ dst-port được mà. Nếu có cả cổng dùng TCP và cả cổng dùng UDP thì bác chỉ cần tạo 2 rules dstnat thôi, một cái cho tất cả các cổng TCP vào, một cái cho tất cả các cổng UDP vào, bác có thể ghi dst-port dạng như này:

Code:
dst-port=987,8572,9295-9308

Chứ không cần tạo cho mỗi cổng 1 rules. Còn chỗ To Ports thì bác xóa đi (trong WinBox/WebFig bác ấn mũi tên lên hình tam giác, trong dòng lệnh thì bác không để to-ports). To Ports không có gì thì nó sẽ tự giữ nguyên cổng đích. Chỉ cần chỗ To Addresses (to-addresses= trong dòng lệnh) điền đúng địa chỉ IP của con PS5 là được.

Theo Sony thì chỉ mỗi cổng UDP 8572 cần được forward cho Remote Play thôi When Remote Play isn’t available | PS Remote Play (https://remoteplay.dl.playstation.net/remoteplay/lang/en/1100006.html).
 
Last edited:
Bác ghi cả lũ cổng vào chỗ dst-port được mà. Nếu có cả cổng dùng TCP và cả cổng dùng UDP thì bác chỉ cần tạo 2 rules dstnat thôi, một cái cho tất cả các cổng TCP vào, một cái cho tất cả các cổng UDP vào, bác có thể ghi dst-port dạng như này:

Code:
dst-port=987,8572,9295-9308

Chứ không cần tạo cho mỗi cổng 1 rules. Còn chỗ To Ports thì bác xóa đi (trong WinBox/WebFig bác ấn mũi tên lên hình tam giác, trong dòng lệnh thì bác không để to-ports). To Ports không có gì thì nó sẽ tự giữ nguyên cổng đích. Chỉ cần chỗ To Addresses (to-addresses= trong dòng lệnh) điền đúng địa chỉ IP của con PS5 là được.

Theo Sony thì chỉ mỗi cổng UDP 8572 cần được forward cho Remote Play thôi When Remote Play isn’t available | PS Remote Play (https://remoteplay.dl.playstation.net/remoteplay/lang/en/1100006.html).
cảm ơn thím. ngon quá rồi. 8572 là port chính thức nhưng còn mấy port ngầm kia SONY nó ko công khai. Không mở không vào được
uq1dgnk.png
 
Back
Top