Di mana aturan iptables disimpan di Ubuntu 12.04?


8

Ubuntu 12.04 LTS - iptables v1.4.12

TLDR:

Di mana aturan iptables disimpan saat memohon iptables-save <ruleset-name>?

Penjelasan :

Menurut jawaban ini, cara dasar menyimpan aturan iptables sangat menarik

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

dan setelah itu memuat / mengembalikan aturan ini /etc/network/interfacesseperti:

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

... atau memasukkan ini ke dalam skrip shell /etc/network/if-pre-up.d.


Ini dapat disederhanakan dengan menginstal iptables-persistentpaket.

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

Mengikuti beberapa tutorial saya mencoba memanggil service iptables status(perintah yang tidak ada / tidak dikenal untuk iptablesversi / paket yang sudah diinstal sebelumnya dengan 12.04) dan menemukan output yang menarik ini:

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

Tampaknya ada dua aturan yang dapat saya muat ( activedan inactive) ...

.. tapi di mana ini disimpan ?

Saya tidak dapat menemukan lokasi mereka sebagai aktif / tidak aktif adalah istilah pencarian yang sangat buruk dan dpkg-query -L iptablestidak membantu.

Karena saya menyediakan server saya dengan puppet/ chefakan lebih baik untuk mengetahui apakah ada beberapa tempat saya dapat meletakkan aturan saya dan menambahkan skrip shell sederhana /etc/networking/if-pre-upuntuk memuat ini.

Lalu saya bisa mengabaikan iptables-persistentpaket yang tidak fleksibel karena tidak memungkinkan memuat aturan yang berbeda.

Terima kasih atas bantuan Anda.

Jawaban:


4

iptables menyimpan aturan dalam memori tetapi aturan yang dibuat oleh iptables-save ruleset-namedapat ditemukan dalam file

/ var / lib / iptables / ruleset-name

Ini dapat dipulihkan dengan memohon iptables-restore <ruleset-name>.

Saya hanya dapat mengkonfirmasi ini untuk Ubuntu 12.04.03 LTS - mungkin lokasi ini telah berubah di versi selanjutnya dari paket iptables.

Saya pikir sesuatu seperti /etc/iptables/rulesets.dakan menjadi tempat yang lebih logis untuk menyimpan ini.

Save-path dikonfigurasikan /etc/init.d/iptablespada baris 27 dan kemudian digunakan oleh initd_save()yang memanggil 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, Precise Pangolin" ID = ubuntu ID_LIKE = debian PRETTY_NAME = "Tepat Ubuntu (12.04.4 LTS)" VERSION_ID = "12.04" # iptables- save ruleset.1 Argumen tidak dikenal yang ditemukan di commandline Ini sepertinya tidak berfungsi
Rondo

masalah yang sama di sini
unc0nected
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.