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.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(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
iptables -F
adalah apa yang saya lewatkan :-)
iptables-save > /tmp/rules
menyelamatkan hari saya. Terima kasih
Anda semua salah :-)
Perintah yang Anda cari adalah:
$ sudo ufw disable
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:
sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Untuk memulihkan aturan Anda sebelumnya:
iptables-restore < /root/firewall.rules
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.
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 <ubuntu@james.crocker.name>
# 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).
Saya harap ini akan membantu semua orang.
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.
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):
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t filter -X
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.
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.
Buat file di /etc/init.d/
touch fw.rc
Jadikan file executable chmod + x
Buat symlink ke file itu di /etc/rc2.d/
ln -s /etc/init.d/fw.rc S80firewall
Edit S80firewall dan tambahkan yang berikut ini
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
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)
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 <sjr@debian.org>
# modified by Jonathan Wiltshire <jmw@debian.org>
# 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):
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Anda menggunakan perintah yang sesuai untuk RedHat dan CentOS, bukan Ubuntu atau Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
Tidak ada satu pun secara default, tetapi dalam turunan debian terbaru (termasuk Ubuntu) Anda dapat menginstal layanan untuk mengelola iptables :
sudo apt install iptables-persistent
Anda kemudian dapat memuat aturan yang disimpan sebelumnya:
systemctl start netfilter-persistent
Tinjau apa yang terjadi:
systemctl status netfilter-persistent
netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2019-03-24 10:49:50 IST; 16min ago
Main PID: 1674 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Mar 24 10:49:50 ubuntu systemd[1]: Starting netfilter persistent configuration...
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv4 (no rules to load)
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv6 (no rules to load)
Mar 24 10:49:50 ubuntu systemd[1]: Started netfilter persistent configuration.
Mar 24 11:02:49 ubuntu systemd[1]: Started netfilter persistent configuration.
Atau hentikan layanan:
systemctl stop netfilter-persistent
Menghentikan layanan akan, secara default, bukan iptables flush (yaitu tidak akan menonaktifkan firewall, lihat man netfilter-persistent
).
/etc/init.d/
dalamnya (un) sangat membantu adalah tautan teratas yang Anda dapatkan ketika googling 'matikan iptables ubuntu'.