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

Nếu danh sách rules filter của tường lửa bác có mỗi cái dòng đó thì lỗi đó là bình thường. Bở vì dòng đó block packet đi tới router từ các interface không có trong list LAN, tức là block packet đến từ WAN. Nên khi router tạo kết nối đến server DoH thì router gửi được packet đi, nhưng khi server trả lời thì packet bị drop.

Bác chú ý ở đây


Code:
/ip firewall filter
  add action=accept chain=input comment="defconf: accept ICMP after RAW" protocol=icmp
  add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
  add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN

là trước cái rule "drop all not coming from LAN" này, bác cần có cái rule ở cái dòng có cái comment "accept established,related,untracked" nữa. Dòng đó bảo router chấp nhận (tức là không drop) những packet gửi vào router (tức là cả packet từ WAN) nếu packet đó thuộc một kết nối đã tạo ra trước đó, hoặc là packet trả lời một packet đã gửi đi trước đó. Phải có dòng đó thì khi nextdns gửi packet trả lời về mới không bị dòng tiếp theo nó drop. Không có dòng thứ 2 đó thì router của bác không nối được vào đâu ở các interface WAN hết, vì chỉ gửi đi được chứ không nhận về được. Các thiết bị trong mạng thì vẫn ok vì với chúng thì chain input không áp dụng, mà là chain forward. Thường cái dòng "accept established,related,untracked" này sẽ để lên trên cao, cả với chain forward cũng vậy, để router có thể dừng xử lý rules sớm với những packet của kết nối đã qua được filter trước đó. Như vậy để nếu có thật nhiều rules đi chăng nữa thì phần lớn chỉ phải kiểm tra với những packet đầu tiên của kết nối mà thôi.

Bác chú ý thứ tự các rules nó quan trọng, tường lửa sẽ match từ trên xuống, gặp cái nào match mà có accept hoặc drop thì nó sẽ dừng lại không match tiếp.

Tương tự giả sử sau này bác muốn mở cổng nào đó với 1 rule accept với dst-port thì bác cũng đừng quên kéo rule đó lên trên cái rule "drop all" kia.

Ngoài ra bác cũng cần cái rule accept ICMP kia thì những cái cần thiết như Path MTU Discovery nó mới hoạt động. ICMP không chỉ phục vụ Ping mà còn có nhiều nhiệm vụ cần thiết khác. Việc block ICMP trên tường lửa vì lo bên ngoài ping được router của bác là lỗi thời rồi.

Em post lại tường lửa defconf của các dòng home router MikroTik nếu các bác dùng x86 cần, cơ bản nó là như cái link "Advanced firewall", thay mỗi 1 vài rules vì không dùng raw filter:

IPv4 (có fasttrack và NAT masquerade):
Code:
/ip firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
    "defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
    in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
    ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
    ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
    connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
    "defconf: accept established,related, untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN

/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
    ipsec-policy=out,none out-interface-list=WAN

IPv6 (gồm các rules IPSEC có thể disable nếu không dùng - IKE, AH, ESP):
Code:
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6

/ipv6 firewall filter
add action=accept chain=input comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
    invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=\
    33434-33534 protocol=udp
add action=accept chain=input comment=\
    "defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
    udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" \
    dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" \
    protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" \
    protocol=ipsec-esp
add action=accept chain=input comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=\
    !LAN
add action=accept chain=forward comment=\
    "defconf: accept established,related,untracked" connection-state=\
    established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
    connection-state=invalid
add action=drop chain=forward comment=\
    "defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
    "defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
    hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
    icmpv6
add action=accept chain=forward comment="defconf: accept HIP" \
    protocol=139
add action=accept chain=forward comment="defconf: accept IKE" \
    dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" \
    protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" \
    protocol=ipsec-esp
add action=accept chain=forward comment=\
    "defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
    "defconf: drop everything else not coming from LAN" in-interface-list=!LAN

Hai interface list LAN và WAN như hướng dẫn ở link MIkroTik.
e có vài cái muốn nhờ bác tư vấn.
Em có cần xài port forwarding ra ngoài (p2p) và để dùng ssh vào server ở nhà qua con router mik, thì thêm firewall như nào để an toàn á bác. với em hỏi ngu là nếu xài 2 wan 2 nhà mạng để load balance thì dùng port forwarding ra thì chỉ có dùng từ một đường truyền wan chính thôi đúng không ạ. Em cám ơn ạ
 
e có vài cái muốn nhờ bác tư vấn.
Em có cần xài port forwarding ra ngoài (p2p) và để dùng ssh vào server ở nhà qua con router mik, thì thêm firewall như nào để an toàn á bác. với em hỏi ngu là nếu xài 2 wan 2 nhà mạng để load balance thì dùng port forwarding ra thì chỉ có dùng từ một đường truyền wan chính thôi đúng không ạ. Em cám ơn ạ
Khi dùng port forwarding với IPv4 thì bác vẫn dùng được các filter rules IPv4 của cái defconf như trên được mà không phải chỉnh sửa gì. Khi port forward thì bác thường qua tab NAT (/ip firewall nat) và add các rules dst-nat. Cấu hình tường lửa defconf ở trên thì mặc định block mọi kết nối mới vào router (chain input) từ các interface không thuộc list LAN, với ngoại lệ cho ICMP và hỗ trợ IPSEC. Còn để bảo vệ các thiết bị trong mạng LAN thì chain forward cũng block mặc định tương tự với các kết nối mới đến từ danh sách interface WAN (cũng với ngoại lệ cho ICMP và IPSEC). Tuy nhiên nếu nhìn kỹ bác sẽ thấy dòng drop all ở bên dưới ở chain forward nó là

Code:
add action=drop chain=forward comment=\
    "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
    connection-state=new in-interface-list=WAN

tức là nó có ngoại lệ áp dụng tự động cho port forwarding. Những kết nối được đã bác dst-nat ở bảng NAT bên cạnh sẽ được phép cho qua mà không bị block. Bác chỉ việc tạo rules dst-nat mà không cần thêm bằng tay các rules accept để cho phép các cổng đó không bị block ở danh sách filter nữa (nếu bác đã dst-nat cổng TCP 22 rồi thì không cần thêm dòng filter để accept dst-port TCP 22 chain forward nữa).

Yêu cầu để mọi thứ hoạt động vẫn là bác phải nhét các interface ra ngoài internet (thí dụ các interface pppoe) trong interface list WAN.

Và vì bác load balancing 2 đường WAN nên chắc bác có các rules bên bảng Mangle (/ip firewall mangle). Nếu vậy thì khi bác muốn copy cái danh sách filter kia để sử dụng bác phải disable cái dòng rule fasttrack ở chain forward đi (dòng có action=fasttrack-connection)! Nếu không disable dòng đó thì sẽ lỗi tùm lum.

Còn không ai cấm bác port-forward trên cả 2 đường wan cả, nếu bác đã add 2 cái interface ra internet đó vào interface list WAN (như yêu cầu để cái tường lửa defconf hoạt động đúng) thì lúc port forwarding bác chỉ cần chọn in-interface-list là WAN trong cái rule dst-nat thôi

1705704385964.png


Sau đó tùy bác sử dụng địa chỉ IP public của đường WAN nào lúc nối về nhà thì đường đó sẽ được dùng lúc forwarding.

Đấy là với hi vọng trước đó bác đã cấu hình load balancing với PCC đúng, tức là cấu hình load balancing của bác có đánh dấu nhớ các kết nối vào từ đường WAN nào thì reply sẽ chui ra đúng đường đó (thường mấy cái tutorial trên mạng có cái này rồi). Thiếu cái đó thì sẽ có khả năng kết nối port forwarding đến đi vào từ đường 1, như lúc server bác trả lời thì router lại lái qua đường 2 và coi như bị mất packet.

Với IPv6 bình thường không dùng NAT nên nếu bác muốn mở cổng ở thiết bị nào đó trong mạng để cho ra ngoài và dùng danh sách filter defconf như trên, thì bác chỉ cần thêm rule với action=accept và dst-port tương ứng trên chain forward của bảng filter IPv6, kéo rule đó lên trên cái rule "drop all" dưới cùng. Sau đó sử dụng trực tiếp địa chỉ IPv6 của thiết bị đó ở bên ngoài thế giới khi kết nối về.
 
chia sẻ các bác script fail over tự viết, nếu PPPoE ko có IP ra internet hoặc có nhưng là dải 100.x.x.x của IPTV thì tăng distance lên 10 để tự nhảy qua dùng mạng 4G trên DHCP Client.
Còn giải pháp ping liên tục 8.8.8.8 nhưng dc 2 ngày liên tục thì google nó block vì nghi DDoS

1, Thay pppoe-fpt-out1 thành pppoe out hiện tại. Bỏ check Add default Route tại interface pppoe out.
2, Tại IP/ Routes List tạo và comment gateway như sau:
View attachment 2296532
3, Copy code vào system / script, đặt tên fail_over
4, Tại system / scheduler lặp lại mỗi 5 giây là xong
View attachment 2296526
Code:
:local pppoeInterface "pppoe-fpt-out1"

:local defaultRouteDistance  [/ip route get [find comment=$pppoeInterface] distance]
#:log info "Current default route distance for $pppoeInterface: $defaultRouteDistance"

:local firstOctet 0
:local ipAddress [/ip address find interface=$pppoeInterface]
:local publicAddress 0

:if ($ipAddress != "") do={
  :set publicAddress [/ip address get $ipAddress value-name=address]
  #:log info "$pppoeInterface IP address is $publicAddress."

  :set firstOctet [:pick $publicAddress 0 ([:find $publicAddress "." -1])]
 
 
}
  #:log info "Address found for $publicAddress "
#:log info "First octet of $pppoeInterface IP address: $firstOctet"

:if ($publicAddress = 0 || $firstOctet = 100) do={
    :if ($defaultRouteDistance != 10) do={
          /ip route set [find  comment=$pppoeInterface] distance=10
         :log info ("$pppoeInterface Offline, switched to LTE")
    }
 
 

} else={
:if ($defaultRouteDistance != 1) do={
    /ip route set [find  comment=$pppoeInterface] distance=1
    :log info ("$pppoeInterface Online, switched back")
    }
}

Kết quả:
View attachment 2296539
View attachment 2296535
Thím dùng lệnh do {... } on-error={... } cho gọn đỡ rối mắt hơn.

do { set firstOctet [pick [/ip address get [find interface =$pppoeInterface] address] 0 3]} on-error ={ set firstOctet 100}
if ( $firstOctet =100) do={.....} else={....}
 
Mấy hôm nay có dịp lôi ra dùng cái ZMI MF885. Em update firmware lên bản 2.5.96 thấy có vẻ ngon. Cắm vào mik ac2 test thấy lên được hơn 40mb :love:


zmi-mf885-v2.5.96_3.png


zmi-mf885-v2.5.96_1.png


zmi-mf885-v2.5.96_2.png


Có vẻ như có một chuẩn chung cho tethering. Hôm trước em thử bật tethering của cái ZMI MF885, rồi cắm dây vào Mik thì nó nhận và chạy ngon.
 
chẳng hiểu sao em dùng mikrotik x86. Cài đặt ok có mạng rùi, nhưng khi cắm modem wifi AC2100 (sử dụng padavan) phát thì bị thọt mạng ạ. ko biết nguyên nhân do đâu, xử lý ra sao nữa nhờ các bác tư vấn với ạ. Thank ạ
 
Lâu lâu cập nhật list VNIP dằn túi các anh nhỉ. Lúc này ít dùng nhưng vẫn thấy nhớ nhớ là :D


Code:
# -------------------------------------------------------
# https://www.ipdeny.com/ipblocks/data/aggregated/vn-aggregated.zone
#
# date: 20240120
# -------------------------------------------------------
/ip firewall address-list
add list=VNIP address="1.52.0.0/14"
add list=VNIP address="14.0.16.0/20"
add list=VNIP address="14.160.0.0/11"
.....................................
 

Attachments

  • vnip_20240120_ipdeny_mod.txt
    40.2 KB · Views: 23
Bác cho Local (VD: 192.168.88.0/24) + VPN IP (VD: 10.0.0.0/24) hay những IP nào muốn cho phép truy cập Winbox vào 1 cái list (VD: WinboxIP) rồi đặt rule drop hay accept thôi.
Dấu ! trong cấu hình của mikrotik có nghĩa là "ngoài" à bác? Như trong hình của bác là ngoài dải List IP Winbox ?

2024-01-20_14-44-07.jpg
 
iptv thì cái defcon disable hết mấy cái "224.0.0.0/4" trong address list, ngoài ra tốt nhất cho thêm 1 rule permit all trong cái bridge iptv.
Của em không có có 224.0.0/24, chỉ dùng đúng cái bridgeLAN không có Vlan. Bác chỉ em lệnh permit all đi ạ
 
thím nào thanh lý 4011 hay 5009 k nhỉ

Em vừa nâng cấp lên 5009, dư ra 4011 fullbox đây bác. Em ở SG.
Ngoài ra em còn có 750gr3, Netgear R7800, Netgear R7000, Netgear extender EX7300, converter Aptek AP113-20A 1Gbps sau khi nâng cấp lên mesh :D
 
Bản v7.13 card i226 chạy cực kì phập phù, cứ 5 phút lại up up down down link. Phải về 7.11 mới ra hồn 😥
Mình cũng mới lên v7.13.1 được tầm tuần mà chưa thấy bị rớt phát nào :v nên có lẽ vì vấn đề khác đó bác
 
Add account vào chạy PPOE xong rồi, lâu quá muốn xem mật khẩu PPOE để setup lại thì có cách nào không ạ?

Sent from Xiaomi 2112123AG using vozFApp
 
Add account vào chạy PPOE xong rồi, lâu quá muốn xem mật khẩu PPOE để setup lại thì có cách nào không ạ?

Sent from Xiaomi 2112123AG using vozFApp

Bác mở Terminal trong WinBox hay Webfig chạy lệnh

Code:
/interface/pppoe-client/export show-sensitive
 
Add account vào chạy PPOE xong rồi, lâu quá muốn xem mật khẩu PPOE để setup lại thì có cách nào không ạ?

Sent from Xiaomi 2112123AG using vozFApp
Trong winbox, nhìn lên menu, trên bên trái —> Settings —-> bỏ dấu tích Hide password —-> sẽ hiện pass tk PPPoE.
 
Back
Top