Các bộ quy tắc của iptables được lưu trữ trên Ubuntu 12.04 ở đâu?


8

Ubuntu 12.04 LTS - iptables v1.4.12

TLDR:

Các quy tắc của iptables được lưu khi gọi iptables-save <ruleset-name>?

Giải thích :

Theo câu trả lời này, cách cơ bản để tiết kiệm quy tắc của iptables là gọi

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

và sau đó tải / khôi phục các quy tắc này /etc/network/interfacesnhư:

iface eth0 inet static
        ....
        pre-up iptables-restore < /etc/iptables/rules.v4
        pre-up ip6tables-restore < /etc/iptables/rules.v6

... hoặc đặt chúng vào một tập lệnh shell /etc/network/if-pre-up.d.


Điều này có thể được đơn giản hóa bằng cách cài đặt iptables-persistentgói.

sudo apt-get install iptables-persistent
inovoke-rc.d iptables-persistent save
update-rc.d iptables-persistent defaults

Theo một số hướng dẫn, tôi đã cố gắng gọi service iptables status(một lệnh không tồn tại / không xác định cho iptablesphiên bản / gói được cài đặt sẵn với 12.04) và tìm thấy kết quả thú vị này:

Aborting iptables initd: unknown command(s): "status".                                                               
  ...                                                                                  
  save <ruleset>                                                                                                    
     save the current ruleset                                                                                       
  load <ruleset>                                                                                                    
     load a ruleset                                                                                                 
   ...                                                                                                   
Saved rulesets:                                                                                                     
  active, inactive                                                                                 
...     

Dường như có hai quy tắc tôi có thể tải ( activeinactive) ...

.. nhưng những thứ này được lưu trữ ở đâu?

Tôi không thể tìm thấy vị trí của họ là hoạt động / không hoạt động là các cụm từ tìm kiếm khá tệ và dpkg-query -L iptablescũng không giúp được gì.

Vì tôi đang cung cấp các máy chủ của mình với puppet/ chefthật tuyệt khi biết rằng có một số nơi tôi có thể đặt các quy tắc của mình và thêm một tập lệnh shell đơn giản /etc/networking/if-pre-upđể tải chúng.

Sau đó, tôi có thể sử iptables-persistentdụng gói không linh hoạt vì nó không cho phép tải các quy tắc khác nhau.

Cảm ơn bạn đã giúp đỡ.

Câu trả lời:


4

iptables lưu trữ các quy tắc trong bộ nhớ nhưng quy tắc được tạo bởi iptables-save ruleset-namecó thể được tìm thấy trong tệp

/ var / lib / iptables / quy tắc-tên

Đây có thể được khôi phục bằng cách gọi iptables-restore <ruleset-name>.

Tôi chỉ có thể xác nhận điều này cho Ubuntu 12.04.03 LTS - có thể vị trí này đã thay đổi trong các phiên bản sau của gói iptables.

Tôi nghĩ rằng một cái gì đó như /etc/iptables/rulesets.dsẽ là một nơi hợp lý hơn để lưu trữ những thứ này.

Đường dẫn lưu được cấu hình /etc/init.d/iptablesở dòng 27 và sau đó được sử dụng initd_save()để gọi initd_counters().

libdir=/var/lib/iptables   

# ...

initd_counters () {                                                                                         
 if test "${enable_save_counters:-false}" = true; then                                                     
    echo -n " with counters"                                                                                
    $iptables_save -c > "$ruleset"                                                                          
  else                                                                                                      
    $iptables_save | sed '/^:/s@\[[0-9]\{1,\}:[0-9]\{1,\}\]@[0:0]@g' > "$ruleset"                           
  fi                                                                                                        
}        

initd_save () {                                                                                             
  rm -f $autosave                                                                                           
  ruleset="${libdir}/$@"                                                                                    
  echo -n "Saving iptables ruleset: save \"$@\""                                                            
  initd_counters                                                                                           
  echo "."                                                                                                  
}          

#cat / etc / os-release NAME = "Ubuntu" VERSION = "12.04.4 LTS, Pangolin chính xác" ID = ub Ubuntu ID_LIKE = debian PRETTY_NAME = "Ubuntu chính xác (12.04.4 LTS)" VERSION_ID = "12.04" # iptables- lưu quy tắc.1 Các đối số không xác định được tìm thấy trên dòng lệnh Điều này dường như không hoạt động
Rondo

vấn đề tương tự ở đây
bắt giữ vào
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.