Saya pikir beberapa kebingungan berasal dari artikel seperti ini: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux yang hanya berlaku untuk Fedora / Red Hat dan mengklaim bahwa Anda akan menemukannya di /etc/init.d/dalamnya (un) sangat membantu adalah tautan teratas yang Anda dapatkan ketika googling 'matikan iptables ubuntu'.
icc97
Jawaban:
76
Saya tidak tahu tentang "Ubuntu", tetapi di Linux secara umum, "iptables" bukan layanan - ini adalah perintah untuk memanipulasi firewall kernel netfilter. Anda dapat "menonaktifkan" (atau menghentikan) firewall dengan menetapkan kebijakan default pada semua rantai standar untuk "MENERIMA", dan menyiram aturan.
Bukankah ini akan membuang semua aturan saat ini untuk selamanya? Yang terbaik untuk menyimpannya di suatu tempat terlebih dahulu dengan sudo iptables-save> / tmp / rules
Jens Timmerman
8
Ini tidak menghentikan layanan, tetapi hanya memungkinkan semuanya lewat.
Frederik Nielsen
1
Ah terima kasih. iptables -Fadalah apa yang saya lewatkan :-)
Cameron
@JensTimmerman iptables-save > /tmp/rulesmenyelamatkan hari saya. Terima kasih
yakin jika kita berbicara tentang ufw, tetapi posting ini tentang iptables
webjay
1
Yah, saya berasumsi itu adalah instalasi default Ubuntu, dan yang satu tidak memiliki iptables, tetapi memiliki ufw.
Frederik Nielsen
22
ufw hanyalah tampilan depan untuk iptables: "Iptables adalah firewall, dipasang secara default di semua distribusi Ubuntu resmi (Ubuntu, Kubuntu, Xubuntu). Saat Anda menginstal Ubuntu, iptables ada di sana, tetapi memungkinkan semua lalu lintas secara default. Ubuntu 8.04 Hadir dengan ufw - program untuk mengelola firewall iptables dengan mudah. " help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Mungkin, tetapi sebagai ufw == iptables (kurang lebih) di Ubuntu, menonaktifkan ufw sama dengan menonaktifkan iptables.
Frederik Nielsen
2
Kemungkinan besar OP sebenarnya tertarik untuk menonaktifkan firewall, daripada memahami seluk-beluk layanan iptables untuk mengelola firewall, jadi ini adalah jawaban yang bagus.
BobDoolittle
30
Pertama saya akan memeriksa apakah sudah diinstal dengan (mungkin):
dpkg -l | grep iptables
Di Ubuntu, iptables bukan layanan. Untuk menghentikannya, Anda harus melakukan hal berikut:
Saya tidak tahu mengapa ini memiliki begitu banyak upvotes, iptables adalah modul kernel. Ini tidak pernah merupakan "layanan" yang dapat "dihentikan". Mereka digunakan untuk memberi tahu kernel cara menangani koneksi. Juga di lingkungan produksi Anda tidak boleh menonaktifkan firewall Anda. Jika sesuatu tidak berhasil, temukan solusi yang tepat, bukan yang mudah.
Broco
17
Iptables adalah perintah yang bukan layanan, jadi umumnya tidak mungkin menggunakan perintah seperti
service iptables start
atau
service iptables stop
untuk memulai dan menghentikan firewall, tetapi beberapa distro seperti centos telah menginstal layanan yang disebut iptables untuk memulai dan menghentikan firewall dan file konfigurasi untuk mengkonfigurasinya. Pokoknya dimungkinkan untuk membuat layanan untuk mengelola pengeditan ipotables atau menginstal skrip untuk lingkup ini. Semua layanan di linux, ubuntu bukan pengecualian, adalah skrip yang dapat dieksekusi di dalam folder /etc/init.d, yang mengimplementasikan antarmuka standar (mulai, berhenti, mulai ulang) Skrip yang mungkin terlihat seperti ini:
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: iptables
# Required-Start: mountvirtfs ifupdown $local_fs
# Default-Start: S
# Default-Stop: 0 6
### END INIT INFO
# July 9, 2007
# James B. Crocker <[email protected]>
# Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
# Script to load/unload/save iptables firewall settings.
PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
IPTABLES=/sbin/iptables
IPTABLES_SAVE=/sbin/iptables-save
IPTABLES_RESTORE=/sbin/iptables-restore
IPTABLES_CONFIG=/etc/iptables.conf
[ -x $IPTABLES ] || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_action_begin_msg "Starting firewall"
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
;;
stop)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Flushing ALL firewall rules from chains!"
if $IPTABLES -F ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
if $IPTABLES -X ; then
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
save)
log_action_begin_msg "Saving current firewall configuration"
if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
force-reload|restart)
log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
$IPTABLES -F
$IPTABLES -X
if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
log_action_end_msg $?
else
log_action_end_msg $?
fi
;;
*)
echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
exit 1
;;
esac
exit 0
Skrip ini adalah bagian dari tutorial ini , semua perintah untuk mengkonfigurasi firewall harus dimasukkan, sesuai dengan skrip di atas, ke dalam file /etc/iptables.conf. Script ini harus dimasukkan ke file yang disebut iptables di /etc/init.d dan membuatnya dapat dieksekusi menggunakan
chmod+x *iptables*
dan tambahkan layanan ke runlevel menggunakan
update-rc.d iptables defaults
Anda dapat menambahkan aturan baru dari shell, aturan-aturan ini akan segera aktif dan akan ditambahkan ke /etc/iptables.conf ketika layanan berhenti (itu berarti mereka akan disimpan untuk memastikan kapan sistem dimatikan).
Karena kedua iptables dan ufw adalah cara untuk mengelola firewall netfilter di Linux, dan karena keduanya tersedia secara default di Ubuntu, Anda dapat menggunakan salah satu untuk memulai dan menghentikan (dan mengelola) aturan firewall.
iptables lebih fleksibel, tetapi karena ufw menyediakan bahasa antarmuka yang sangat sederhana untuk fungsi sederhana dan khas yang dapat Anda gunakan:
sudo ufw disable # Untuk menonaktifkan firewall
sudo ufw enable # Untuk mengaktifkan firewall
Untuk melihat pengaturan firewall saat ini sudo ufw status verbose, gunakan , atau iptables -L.
Halaman dokumentasi Komunitas Ubuntu di iptables dan UFW memiliki lebih banyak info.
Dalam kasus biasa, aturan firewall default Anda disimpan dalam beberapa file (misalnya, /etc/iptables.rules). Sementara perintah sistem booting iptables-restore </etc/iptables.rulesdijalankan untuk memuat aturan firewall. Jadi, menjalankan perintah yang sama setelah Anda membatalkan semua aturan menggunakan perintah di atas akan menghasilkan "reload firewall" yang Anda minta.
Jika saya ingat dengan benar cara yang disarankan untuk mengatur iptables di panduan ubuntu adalah dengan mengaturnya sebagai bagian dari skrip jaringan. yang berarti tidak ada skrip /etc/init.d/iptables seperti yang ada di BSD style OS.
Ada di Debian Woody (apakah Ubuntu ada saat itu?), Lagi pula masih diterapkan oleh sysadmin hari ini. Mengapa mereka mengubah gagasan itu?
Saya tidak tahu ... tapi sepertinya saya mengingatnya sebagai salah satu hal yang menjengkelkan yang harus saya cari ketika saya membuat server ubuntu 9.10 atau sesuatu ... karena saya ingin rilis distro yang memiliki postgres baru-baru ini dan adalah untuk server ... kalau tidak saya menjalankan linux lengkungan.
Saya memiliki masalah yang sama. Bahkan, tidak ada iptables-persisten di/etc/init.d
Jadi, saya membuat file iptables-persistent di /etc/init.d
nano /etc/init.d/iptables-persistent
dan menulis di bawah ini:
#!/bin/sh
# Written by Simon Richter <[email protected]>
# modified by Jonathan Wiltshire <[email protected]>
# with help from Christoph Anton Mitterer
#
### BEGIN INIT INFO
# Provides: iptables-persistent
# Required-Start: mountkernfs $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: $network
# X-Stop-After: $network
# Short-Description: Set up iptables rules
# Description: Loads/saves current iptables rules from/to /etc/iptables
# to provide a persistent rule set during boot time
### END INIT INFO
. /lib/lsb/init-functions
rc=0
load_rules()
{
log_action_begin_msg "Loading iptables rules"
#load IPv4 rules
if [ ! -f /etc/iptables/rules.v4 ]; then
log_action_cont_msg " skipping IPv4 (no rules to load)"
else
log_action_cont_msg " IPv4"
iptables-restore < /etc/iptables/rules.v4 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
#load IPv6 rules
if [ ! -f /etc/iptables/rules.v6 ]; then
log_action_cont_msg " skipping IPv6 (no rules to load)"
else
log_action_cont_msg " IPv6"
ip6tables-restore < /etc/iptables/rules.v6 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
save_rules()
{
log_action_begin_msg "Saving rules"
#save IPv4 rules
#need at least iptable_filter loaded:
/sbin/modprobe -q iptable_filter
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no modules loaded)"
elif [ -x /sbin/iptables-save ]; then
log_action_cont_msg " IPv4"
iptables-save > /etc/iptables/rules.v4
if [ $? -ne 0 ]; then
rc=1
fi
fi
#save IPv6 rules
#need at least ip6table_filter loaded:
/sbin/modprobe -q ip6table_filter
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no modules loaded)"
elif [ -x /sbin/ip6tables-save ]; then
log_action_cont_msg " IPv6"
ip6tables-save > /etc/iptables/rules.v6
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
flush_rules()
{
log_action_begin_msg "Flushing rules"
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no module loaded)"
elif [ -x /sbin/iptables ]; then
log_action_cont_msg " IPv4"
for param in F Z X; do /sbin/iptables -$param; done
for table in $(cat /proc/net/ip_tables_names)
do
/sbin/iptables -t $table -F
/sbin/iptables -t $table -Z
/sbin/iptables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/iptables -P $chain ACCEPT
done
fi
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no module loaded)"
elif [ -x /sbin/ip6tables ]; then
log_action_cont_msg " IPv6"
for param in F Z X; do /sbin/ip6tables -$param; done
for table in $(cat /proc/net/ip6_tables_names)
do
/sbin/ip6tables -t $table -F
/sbin/ip6tables -t $table -Z
/sbin/ip6tables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/ip6tables -P $chain ACCEPT
done
fi
log_action_end_msg 0
}
case "$1" in
start|restart|reload|force-reload)
load_rules
;;
save)
save_rules
;;
stop)
# Why? because if stop is used, the firewall gets flushed for a variable
# amount of time during package upgrades, leaving the machine vulnerable
# It's also not always desirable to flush during purge
echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
;;
flush)
flush_rules
;;
*)
echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
exit 1
;;
esac
exit $rc
dan kemudian memberikan chmod 755 izin.
chmod 755 /etc/init.d/iptables-persistent
Sekarang bekerja dengan sempurna! Semoga bisa membantu seseorang.
Jika Anda menjalankan server Ubuntu sebagai tamu VM (mis. Dalam VirtualBox) maka libvirt dapat diaktifkan. Jika demikian libvirt berisi beberapa filter jaringan built-in yang memanfaatkan iptables. Filter ini dapat dikonfigurasi seperti yang dijelaskan di bagian firewall di nwfilters .
Untuk menonaktifkan aturan iptables Anda harus menghapus semua aturan yang menyinggung dari libvirt, atau Anda bisa menonaktifkan libvirt jika Anda tidak menggunakannya - mis. Instal konfigurasi override manual (lalu reboot):
/etc/init.d/
dalamnya (un) sangat membantu adalah tautan teratas yang Anda dapatkan ketika googling 'matikan iptables ubuntu'.Jawaban:
Saya tidak tahu tentang "Ubuntu", tetapi di Linux secara umum, "iptables" bukan layanan - ini adalah perintah untuk memanipulasi firewall kernel netfilter. Anda dapat "menonaktifkan" (atau menghentikan) firewall dengan menetapkan kebijakan default pada semua rantai standar untuk "MENERIMA", dan menyiram aturan.
(Anda mungkin perlu menyiram tabel lain juga, seperti "nat", jika Anda sudah menggunakannya)
Artikel berikut di situs web Ubuntu menjelaskan tentang pengaturan iptables untuk digunakan dengan NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
sumber
iptables -F
adalah apa yang saya lewatkan :-)iptables-save > /tmp/rules
menyelamatkan hari saya. Terima kasihAnda semua salah :-)
Perintah yang Anda cari adalah:
sumber
Pertama saya akan memeriksa apakah sudah diinstal dengan (mungkin):
Di Ubuntu, iptables bukan layanan. Untuk menghentikannya, Anda harus melakukan hal berikut:
Untuk memulihkan aturan Anda sebelumnya:
Ini diambil dari http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ dan telah diuji pada banyak instalasi Ubuntu 8.X & 9.10.
sumber
Iptables adalah perintah yang bukan layanan, jadi umumnya tidak mungkin menggunakan perintah seperti
atau
untuk memulai dan menghentikan firewall, tetapi beberapa distro seperti centos telah menginstal layanan yang disebut iptables untuk memulai dan menghentikan firewall dan file konfigurasi untuk mengkonfigurasinya. Pokoknya dimungkinkan untuk membuat layanan untuk mengelola pengeditan ipotables atau menginstal skrip untuk lingkup ini. Semua layanan di linux, ubuntu bukan pengecualian, adalah skrip yang dapat dieksekusi di dalam folder /etc/init.d, yang mengimplementasikan antarmuka standar (mulai, berhenti, mulai ulang) Skrip yang mungkin terlihat seperti ini:
Skrip ini adalah bagian dari tutorial ini , semua perintah untuk mengkonfigurasi firewall harus dimasukkan, sesuai dengan skrip di atas, ke dalam file /etc/iptables.conf. Script ini harus dimasukkan ke file yang disebut iptables di /etc/init.d dan membuatnya dapat dieksekusi menggunakan
dan tambahkan layanan ke runlevel menggunakan
Anda dapat menambahkan aturan baru dari shell, aturan-aturan ini akan segera aktif dan akan ditambahkan ke /etc/iptables.conf ketika layanan berhenti (itu berarti mereka akan disimpan untuk memastikan kapan sistem dimatikan).
Saya harap ini akan membantu semua orang.
sumber
Karena kedua iptables dan ufw adalah cara untuk mengelola firewall netfilter di Linux, dan karena keduanya tersedia secara default di Ubuntu, Anda dapat menggunakan salah satu untuk memulai dan menghentikan (dan mengelola) aturan firewall.
iptables lebih fleksibel, tetapi karena ufw menyediakan bahasa antarmuka yang sangat sederhana untuk fungsi sederhana dan khas yang dapat Anda gunakan:
sudo ufw disable
# Untuk menonaktifkan firewallsudo ufw enable
# Untuk mengaktifkan firewallUntuk melihat pengaturan firewall saat ini
sudo ufw status verbose
, gunakan , atauiptables -L
.Halaman dokumentasi Komunitas Ubuntu di iptables dan UFW memiliki lebih banyak info.
sumber
Sepertinya ada beberapa cara untuk mengelola firewall di Ubuntu, jadi Anda mungkin tertarik membaca ini: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Untuk menghapus semua aturan saat ini, Anda dapat menggunakan perintah ini (letakkan di beberapa skrip):
Dalam kasus biasa, aturan firewall default Anda disimpan dalam beberapa file (misalnya, /etc/iptables.rules). Sementara perintah sistem booting
iptables-restore </etc/iptables.rules
dijalankan untuk memuat aturan firewall. Jadi, menjalankan perintah yang sama setelah Anda membatalkan semua aturan menggunakan perintah di atas akan menghasilkan "reload firewall" yang Anda minta.sumber
Jika saya ingat dengan benar cara yang disarankan untuk mengatur iptables di panduan ubuntu adalah dengan mengaturnya sebagai bagian dari skrip jaringan. yang berarti tidak ada skrip /etc/init.d/iptables seperti yang ada di BSD style OS.
sumber
Buat file di /etc/init.d/
Jadikan file executable chmod + x
Buat symlink ke file itu di /etc/rc2.d/
Edit S80firewall dan tambahkan yang berikut ini
Anda dapat menambahkan semua aturan iptables khusus Anda pada file ini
Sekarang Anda dapat me-restart firewall (iptables) dengan menjalankan /etc/rc2.d/S80firewall (harus di-root)
sumber
Saya memiliki masalah yang sama. Bahkan, tidak ada iptables-persisten di
/etc/init.d
Jadi, saya membuat file iptables-persistent di
/etc/init.d
dan menulis di bawah ini:
dan kemudian memberikan chmod 755 izin.
Sekarang bekerja dengan sempurna! Semoga bisa membantu seseorang.
sumber
Jika Anda menjalankan server Ubuntu sebagai tamu VM (mis. Dalam VirtualBox) maka libvirt dapat diaktifkan. Jika demikian libvirt berisi beberapa filter jaringan built-in yang memanfaatkan iptables. Filter ini dapat dikonfigurasi seperti yang dijelaskan di bagian firewall di nwfilters .
Untuk menonaktifkan aturan iptables Anda harus menghapus semua aturan yang menyinggung dari libvirt, atau Anda bisa menonaktifkan libvirt jika Anda tidak menggunakannya - mis. Instal konfigurasi override manual (lalu reboot):
sumber
Anda menggunakan perintah yang sesuai untuk RedHat dan CentOS, bukan Ubuntu atau Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
sumber
Tidak ada satu pun secara default, tetapi dalam turunan debian terbaru (termasuk Ubuntu) Anda dapat menginstal layanan untuk mengelola iptables :
Anda kemudian dapat memuat aturan yang disimpan sebelumnya:
Tinjau apa yang terjadi:
Atau hentikan layanan:
Menghentikan layanan akan, secara default, bukan iptables flush (yaitu tidak akan menonaktifkan firewall, lihat
man netfilter-persistent
).sumber