Đã có ai đó kiểm tra các quy tắc tường lửa OpenWrt mặc định chưa?


7

Tôi đã cài đặt Openwrt 10.03.1 từ: openwrt-ar71xx-wrt160nl-squashfs-Factory.bin (tường lửa chỉ được tùy chỉnh với điều này: sed 's / RE DỰ ÁN / DROP / g' / etc / config / tường lửa) - vì vậy bên cạnh đó, Đây là một cài đặt OPENWRT DEFAULT
Tôi có 3 SSID trên đó cho 3 khách hàng. Đó là WRT160NL.
Nó kết nối với internet thông qua pppoe, vì vậy pppoe-wan là giao diện WAN (trong thực tế, "eth1" là giao diện WAN, cáp được cắm vào cổng đó).
Vì vậy, tôi đã in ra những điều tiếp theo ra giấy:

iptables-lưu

root@OPENWRT:~# iptables-save
# Generated by iptables-save v1.4.6 on Wed Nov 21 16:59:23 2012
*nat
:PREROUTING ACCEPT [282:28098]
:POSTROUTING ACCEPT [12:748]
:OUTPUT ACCEPT [170:12487]
:nat_reflection_in - [0:0]
:nat_reflection_out - [0:0]
:postrouting_rule - [0:0]
:prerouting_lan - [0:0]
:prerouting_rule - [0:0]
:prerouting_wan - [0:0]
:zone_lan_nat - [0:0]
:zone_lan_prerouting - [0:0]
:zone_wan_nat - [0:0]
:zone_wan_prerouting - [0:0]
-A PREROUTING -j prerouting_rule 
-A PREROUTING -i br-lan -j zone_lan_prerouting 
-A PREROUTING -i pppoe-wan -j zone_wan_prerouting 
-A POSTROUTING -j postrouting_rule 
-A POSTROUTING -o br-lan -j zone_lan_nat 
-A POSTROUTING -o pppoe-wan -j zone_wan_nat 
-A postrouting_rule -j nat_reflection_out 
-A prerouting_rule -j nat_reflection_in 
-A zone_lan_prerouting -j prerouting_lan 
-A zone_wan_nat -j MASQUERADE 
-A zone_wan_prerouting -j prerouting_wan 
COMMIT
# Completed on Wed Nov 21 16:59:23 2012
# Generated by iptables-save v1.4.6 on Wed Nov 21 16:59:23 2012
*raw
:PREROUTING ACCEPT [88762:5585776]
:OUTPUT ACCEPT [32677:185865297]
:zone_lan_notrack - [0:0]
:zone_wan_notrack - [0:0]
-A PREROUTING -i br-lan -j zone_lan_notrack 
-A PREROUTING -i pppoe-wan -j zone_wan_notrack 
COMMIT
# Completed on Wed Nov 21 16:59:23 2012
# Generated by iptables-save v1.4.6 on Wed Nov 21 16:59:23 2012
*mangle
:PREROUTING ACCEPT [88762:5585776]
:INPUT ACCEPT [86059:4425898]
:FORWARD ACCEPT [2664:1156339]
:OUTPUT ACCEPT [32677:185865297]
:POSTROUTING ACCEPT [35338:187021465]
:zone_wan_MSSFIX - [0:0]
-A FORWARD -j zone_wan_MSSFIX 
-A zone_wan_MSSFIX -o pppoe-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
COMMIT
# Completed on Wed Nov 21 16:59:23 2012
# Generated by iptables-save v1.4.6 on Wed Nov 21 16:59:23 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:forward - [0:0]
:forwarding_lan - [0:0]
:forwarding_rule - [0:0]
:forwarding_wan - [0:0]
:input - [0:0]
:input_lan - [0:0]
:input_rule - [0:0]
:input_wan - [0:0]
:nat_reflection_fwd - [0:0]
:output - [0:0]
:output_rule - [0:0]
:reject - [0:0]
:syn_flood - [0:0]
:zone_lan - [0:0]
:zone_lan_ACCEPT - [0:0]
:zone_lan_DROP - [0:0]
:zone_lan_REJECT - [0:0]
:zone_lan_forward - [0:0]
:zone_wan - [0:0]
:zone_wan_ACCEPT - [0:0]
:zone_wan_DROP - [0:0]
:zone_wan_REJECT - [0:0]
:zone_wan_forward - [0:0]
-A INPUT -m state --state INVALID -j DROP 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn_flood 
-A INPUT -j input_rule 
-A INPUT -j input 
-A FORWARD -m state --state INVALID -j DROP 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -j forwarding_rule 
-A FORWARD -j forward 
-A OUTPUT -m state --state INVALID -j DROP 
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A OUTPUT -o lo -j ACCEPT 
-A OUTPUT -j output_rule 
-A OUTPUT -j output 
-A forward -i br-lan -j zone_lan_forward 
-A forward -i pppoe-wan -j zone_wan_forward 
-A forwarding_rule -j nat_reflection_fwd 
-A input -i br-lan -j zone_lan 
-A input -i pppoe-wan -j zone_wan 
-A output -j zone_lan_ACCEPT 
-A output -j zone_wan_ACCEPT 
-A reject -p tcp -j REJECT --reject-with tcp-reset 
-A reject -j REJECT --reject-with icmp-port-unreachable 
-A syn_flood -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 25/sec --limit-burst 50 -j RETURN 
-A syn_flood -j DROP 
-A zone_lan -j input_lan 
-A zone_lan -j zone_lan_ACCEPT 
-A zone_lan_ACCEPT -o br-lan -j ACCEPT 
-A zone_lan_ACCEPT -i br-lan -j ACCEPT 
**-A zone_lan_DROP -o br-lan -j DROP**
**-A zone_lan_DROP -i br-lan -j DROP**
**-A zone_lan_REJECT -o br-lan -j reject**
**-A zone_lan_REJECT -i br-lan -j reject**
-A zone_lan_forward -j zone_wan_ACCEPT 
-A zone_lan_forward -j forwarding_lan 
-A zone_lan_forward -j zone_lan_DROP 
-A zone_wan -p udp -m udp --dport 68 -j ACCEPT 
-A zone_wan -p icmp -m icmp --icmp-type 8 -j DROP 
-A zone_wan -j input_wan 
-A zone_wan -j zone_wan_DROP 
-A zone_wan_ACCEPT -o pppoe-wan -j ACCEPT 
-A zone_wan_ACCEPT -i pppoe-wan -j ACCEPT 
-A zone_wan_DROP -o pppoe-wan -j DROP 
-A zone_wan_DROP -i pppoe-wan -j DROP 
-A zone_wan_REJECT -o pppoe-wan -j reject 
-A zone_wan_REJECT -i pppoe-wan -j reject 
-A zone_wan_forward -j forwarding_wan 
-A zone_wan_forward -j zone_wan_DROP 
COMMIT
# Completed on Wed Nov 21 16:59:23 2012
root@OPENWRT:~# 

ifconfig

root@OPENWRT:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr AA:AA:AA:AA:AA:AA
      inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:87174 errors:0 dropped:0 overruns:0 frame:0
      TX packets:137186 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:4532245 (4.3 MiB)  TX bytes:192952659 (184.0 MiB)

eth0      Link encap:Ethernet  HWaddr AA:AA:AA:AA:AA:AA
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:2578 (2.5 KiB)
      Interrupt:4 

eth1      Link encap:Ethernet  HWaddr BB:BB:BB:BB:BB:BB
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3661 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3447 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:1221049 (1.1 MiB)  TX bytes:224533 (219.2 KiB)
      Interrupt:5 

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:24 errors:0 dropped:0 overruns:0 frame:0
      TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:2088 (2.0 KiB)  TX bytes:2088 (2.0 KiB)

mon.wlan0 Link encap:UNSPEC  HWaddr CC-CC-CC-CC-CC-C1-00-00-00-00-00-00-00-00-00-00  
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:263 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:32 
      RX bytes:20929 (20.4 KiB)  TX bytes:0 (0.0 B)

pppoe-wan Link encap:Point-to-Point Protocol  
      inet addr:1.2.3.4  P-t-P:10.0.0.1  Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
      RX packets:1646 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1448 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:3 
      RX bytes:1063783 (1.0 MiB)  TX bytes:132628 (129.5 KiB)

wlan0     Link encap:Ethernet  HWaddr CC:CC:CC:CC:CC:C1
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:32 
      RX bytes:0 (0.0 B)  TX bytes:2850 (2.7 KiB)

wlan0-1   Link encap:Ethernet  HWaddr CC:CC:CC:CC:CC:C2
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:32 
      RX bytes:0 (0.0 B)  TX bytes:2850 (2.7 KiB)

wlan0-2   Link encap:Ethernet  HWaddr CC:CC:CC:CC:CC:C3
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:32 
      RX bytes:0 (0.0 B)  TX bytes:2850 (2.7 KiB)

chương trình brctl

root@OPENWRT:~# brctl show
bridge name bridge id       STP enabled interfaces
br-lan      8000.129ce121c98e   no      eth0
                            wlan0
                            wlan0-1
                            wlan0-2
root@OPENWRT:~# 

... và xem xét kỹ hơn về nó nhiều lần. Tôi đã tìm thấy một vài điều mà tôi không hiểu:

1)
Những quy tắc này hoàn toàn KHÔNG HỀ, tôi chắc chắn về điều này, vì vậy không có câu hỏi thực sự nào về vấn đề này, ít nhất là một "fixme".
-A zone_lan_DROP -o br-lan -j DROP
-A zone_lan_DROP -i br-lan -j DROP
-A zone_lan_RE DỰ -o br-lan -j từ chối
-A area_lan_RE DỰ -i br-lan -j từ chối

2)
Câu hỏi thực sự là ... tại sao có quá nhiều bàn?
nat_Vflection_in, nat_Vflectionợi
Không thể các quy tắc được thực hiện mà không có bảng? Các bộ định tuyến OpenWrt thường có CPU nhỏ, tại sao phải sử dụng các quy tắc phức tạp? Tại sao không đơn giản hơn? Không có bàn?

3)
... Nếu không ai có thể đưa ra một câu trả lời hay rằng tại sao những bảng này lại cần thiết ...... thì tôi sẽ xóa tất cả các quy tắc, v.v., và làm bằng tay .. một cách đơn giản hơn đường..


Câu hỏi hay, hay đúng hơn, điểm tốt. Mặc dù tôi không nghĩ rằng độ phức tạp của quy tắc có tác động đáng kể đến CPU (một chút phân nhánh, không nhiều hơn), tôi quan tâm nhiều hơn về tác động của loại phức tạp này đối với não người dùng. Ít nhất là của tôi! :) OpenWrt được sử dụng trong các bộ định tuyến gia đình, vì vậy người dùng gia đình nên hiểu các quy tắc và lý do đằng sau chúng. Đó là lý do tại sao tôi định hình lại câu hỏi của bạn, đi sâu hơn một chút vào chi tiết.
Lumi

Câu trả lời:


6

1) Những quy tắc này hoàn toàn KHÔNG HỀ, tôi chắc chắn về điều này, vì vậy không có câu hỏi thực sự nào về vấn đề này, ít nhất là một "fixme".

Không, những quy tắc này là hữu ích. Tôi sẽ cho bạn biết lý do tại sao nếu bạn cho tôi biết lý do tại sao bạn nghĩ rằng họ vô dụng.

Ok, tôi đang đùa, tôi sẽ nói cho bạn biết bạn có muốn hay không. Mục đích của các quy tắc này là để giữ cho thiết kế đơn giản. Đơn giản không được đo bằng số lượng quy tắc. Có phương pháp cho các quy tắc này. Mỗi bảng có một mục đích dễ hiểu, rõ ràng trong tên của nó. Nó xảy ra rằng trong cấu hình mặc định, một số bảng có một quy tắc duy nhất. Nó sẽ yêu cầu mã phức tạp hơn đáng kể trong OpenWRT để tối ưu hóa các bảng quy tắc đơn. Nó cũng sẽ làm cho người quản trị hệ thống khó khăn hơn trong việc điều chỉnh các quy tắc mà không thông qua trình biên dịch giả định này.

2) Câu hỏi thực sự là ... tại sao có quá nhiều bàn?

Các bảng tương ứng với các tính năng của thiết lập tường lửa của OpenWRT. Bạn có thể có ít quy tắc hơn, nhưng sau đó bạn sẽ mất các tính năng hữu ích cho một số người dùng.

Không thể các quy tắc được thực hiện mà không có bảng? Các bộ định tuyến OpenWrt thường có CPU nhỏ, tại sao phải sử dụng các quy tắc phức tạp? Tại sao không đơn giản hơn? Không có bàn?

Bạn chắc chắn có thể tạo cấu hình của riêng mình với ít bảng hơn (trừ khi tường lửa của bạn cực kỳ đơn giản, có thể cuối cùng bạn sẽ tạo một vài bảng). OpenWRT linh hoạt hơn vì nó chứa được nhiều người dùng.

Số lượng quy tắc không liên quan đến tốc độ CPU hoặc kích thước RAM. Ảnh hưởng của số lượng bảng không tương quan nhiều với thời gian cần thiết để đi qua chúng - ngược lại, có nhiều bảng hơn và ít quy tắc hơn trên mỗi bảng có nghĩa là đường dẫn mỗi gói đi qua sẽ ngắn hơn (có cây rộng hơn giúp làm cho nó bớt sâu). Tác động đến bộ nhớ là không đáng kể: vài trăm byte mỗi bảng so với vài megabyte RAM.


2
»Có phương pháp cho các quy tắc này. Mỗi bảng có một mục đích dễ hiểu, rõ ràng trong tên của nó. «Chính vô số chuỗi làm cho điều này trở nên khó hiểu với người mới (như tôi). Tôi có thể thấy đây là hệ thống mà bạn có nghĩa vụ phải nộp mọi thứ theo những cách nhất định. Chỉ cần như thế nào bạn sẽ đi về điều đó không phải là rõ ràng cả. Tôi hoàn toàn đồng ý với OP. Nếu bạn tình cờ có bất kỳ gợi ý nào về các ví dụ về cách bạn phải nộp trong các trường hợp sử dụng thực tế trong sơ đồ này, tôi sẽ đánh giá cao điều đó.
Lumi

zone_lan_notrack là một trong những gì tôi đã tự hỏi về. Có một số không có ý nghĩa hoặc có một mục đích rõ ràng. Không phải nói là không có.
Lén lút Wombat

Có một văn bản bằng tiếng Đức , giải thích các chuỗi khác nhau của bộ lọc gói OpenWrt. Các sơ đồ được sử dụng trong văn bản đó được tạo bằng mô-đun Perl App-Iptables2Dot . Có lẽ điều đó giúp để có được một cái nhìn tổng quan.
Mathias Weidner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.