(/ etc / sysconfig / iptables) "Kustomisasi manual untuk file ini tidak disarankan." Mengapa?

20

Mengedit file ini secara langsung

/etc/sysconfig/iptables 

dapat menghemat begitu banyak sakit kepala begitu banyak waktu dan sebagainya ...

namun di bagian paling atas dari file itu tertulis ..

Manual customization of this file is not recommended.

di sini adalah '/ etc / sysconfig / iptables' yang baru saja datang dengan server cloud centos 6.4 baru.

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

untuk membuka port 80 saya cukup mengkloning garis ..

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

dan kemudian ubah "22" menjadi "80" dan kemudian simpan file ini dan kemudian reboot seluruh sistem.

ini akan membuka port 80 untuk saya.

ini operasi yang cukup sederhana. namun file mengatakan pengeditan manual tidak dianjurkan.

mengapa saya harus mengikuti saran?

Gilles 'SANGAT berhenti menjadi jahat'
sumber

Jawaban:

18

Karena alat yang disebut system-config-firewall(atau berbasis ncurses saudara system-config-firewall-tui) mengelola file ini. Setiap kali Anda menggunakan alat ini untuk membuat aturan iptables baru, itu akan ditimpa /etc/sysconfig/iptables.

Halaman Terkait: 28.1.16. / etc / sysconfig / iptables-config

Inilah mengapa itu tidak direkomendasikan, tetapi tidak dilarang . Cara terbaik untuk menyimpan aturan Anda menggunakan CentOS atau EL versi 6 lainnya adalah menggunakan layanan iptables setelah Anda menambahkan beberapa aturan pada memori:

# service iptables save

Pertanyaan terkait: Mengapa iptables tidak mengambil informasi dari / etc / sysconfig / iptables on centOs?

Alasan untuk tidak mengedit file ini ( /etc/sysconfig/iptables) secara langsung:

  • Karena ini adalah file yang dibuat secara otomatis. Isi itu berasal dari skrip / daemon /etc/init.d/iptables.
  • Beberapa tindakan seperti mengatur ulang atau menghentikan daemon iptables dapat mengakibatkan kehilangan data, karena itu akan menimpa file. Variabel menarik tentang subjek ini: IPTABLES_SAVE_ON_STOP=""dan IPTABLES_SAVE_ON_RESTART=""di dalam /etc/sysconfig/iptables-configfile. Mungkin, menyetelnya akan membuat perubahan Anda di dalam /etc/init.d/iptablesterus-menerus.
  • Karena dokumentasi mengatakan demikian. Red Hat menyarankan bahwa ini adalah metode terbaik untuk menggunakan infrastruktur firewall mereka.

Sebuah solusi alternatif untuk mindf "timpa aturan firewall saya" ini adalah dengan sepenuhnya menonaktifkan skrip-skrip tersebut dan mengandalkan metode khusus untuk mengelola firewall, seperti yang diekspos oleh goldilocks .


sumber
Ini terdengar lebih seperti argumen terhadap campuran dan pencocokan mengedit file secara langsung dan menambahkan aturan menggunakan system-config-firewallalat. Bisakah Anda mengembangkan alasan mengapa mengedit file sebagai pengganti tidak pernah menggunakan alat ini?
Michelle
Menambahkan info tambahan. Terima kasih atas tipnya @Michelle
8

namun di bagian paling atas dari file itu tertulis ..

Hmmm, itu aneh. Di bagian atas tambang tertulis:

# Manual customization of this file is strongly encouraged.

Seseorang pasti telah mengubahnya;) Dan pada kenyataannya bahkan memindahkannya /etc/sysconfigsehingga tidak akan "otomatis tidak terbiasa" oleh manajer paket atau apa pun;);)

Saya pikir intinya di sini secara umum dengan file konfigurasi tersebut adalah jika Anda tidak tahu apa yang Anda lakukan, jangan lakukan itu. Terkadang ada juga peringatan bahwa file tidak ditimpa oleh sistem sesekali. Ini bisa dilakukan oleh manajer paket pada peningkatan - meskipun kadang-kadang PM akan mencatat file telah diubah secara manual dan tidak menimpa, atau menyimpan salinan, dll - dan itu bisa berupa alat lain yang bertanggung jawab untuk konfigurasi ini di khusus (lihat jawaban nwildner ).

Bagian dari "mengetahui apa yang Anda lakukan" adalah menyadari sudut seperti ini. Saya juga mengkustomisasi layanan init untuk iptables menggunakan lokasi yang berbeda untuk file konfigurasi, dan yang paling penting: Saya satu-satunya yang menggunakan komputer ini.

Menganggap ada orang lain dengan akses root, saya tidak akan melakukan ini pada server saya bertanggung jawab kecuali ada alasan yang lebih baik daripada "Saya lebih suka cara ini", karena kemungkinan akan menyebabkan kebingungan dan membuat orang lain sakit kepala dalam beberapa kasus. Tetapi jika Anda adalah satu-satunya pengguna dan tidak ada orang lain yang bergantung pada sistem, maka Anda bebas melakukan apa yang Anda inginkan. "Metode pilihan" saya untuk mengkonfigurasi firewall terlihat seperti ini:

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currentdibuat saat boot dengan menyalin /etc/iptables(yang layanan iptables dikonfigurasi untuk memuat pada awalnya). Dengan cara ini saya dapat memodifikasi hal-hal dengan cepat sambil mempertahankan titik referensi bahwa sistem dimulai.

Yang membawa kita ke poin penting, jika Anda ingin bermain-main dengan konfigurasi yang berisi peringatan semacam ini: Selalu buat salinan cadangan dari aslinya.

goldilocks
sumber