Pertanyaan Bagaimana cara memulai / menghentikan iptables di Ubuntu?


Bagaimana saya bisa memulai / menghentikan layanan iptables di Ubuntu?

saya telah mencoba

 service iptables stop

tapi itu memberi "layanan tidak dikenal".

Kenapa melakukannya? Apakah ada metode lain?


81
2018-04-03 11:15




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 /etc/init.d/ itu (un) membantu adalah tautan teratas yang Anda dapatkan ketika googling 'matikan iptables ubuntu'. - icc97


Jawaban:


Saya tidak tahu tentang "Ubuntu", tetapi di Linux pada umumnya, "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 ke "SETUJUI", 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 telah menggunakannya)

Artikel berikut di situs web Ubuntu menjelaskan pengaturan iptables untuk digunakan dengan NetworkManager: https://help.ubuntu.com/community/IptablesHowTo


65
2018-04-03 17:36



Tidakkah ini membuang semua aturan saat ini untuk selamanya? Lebih baik menyimpannya di suatu tempat dulu dengan sudo iptables-save> / tmp / rules - Jens Timmerman
Ini tidak menghentikan layanan, tetapi hanya memungkinkan semuanya lewat. - Frederik Nielsen
Ah, terimakasih. iptables -F adalah apa yang saya hilang :-) - Cameron
@JensTimmerman iptables-save > /tmp/rules menyelamatkan hariku. Terima kasih - blagus


Anda semua salah :-)

Perintah yang Anda cari adalah:

$ sudo ufw disable

44
2017-08-15 18:40



yakin jika kita berbicara tentang ufw, tetapi posting ini adalah tentang iptables - webjay
Yah, saya berasumsi itu adalah instalasi default dari Ubuntu, dan yang tidak memiliki iptables, tetapi memiliki ufw. - Frederik Nielsen
ufw hanyalah sebuah frontend untuk iptables: "Iptables adalah firewall, yang diinstal secara default pada semua distribusi resmi Ubuntu (Ubuntu, Kubuntu, Xubuntu). Ketika 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
Mungkin, tetapi sebagai ufw == iptables (kurang lebih) di Ubuntu, menonaktifkan ufw sama dengan menonaktifkan iptables. - Frederik Nielsen
sudo ufw status verbose; sudo iptables -L; - user27465


Saya akan memeriksa dulu apakah sudah diinstal (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 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.


29
2018-04-05 07:46



Saya tidak tahu mengapa ini memiliki banyak sekali upvotes, iptables adalah modul kernel. Tidak pernah ada "layanan" yang bisa "dihentikan". Mereka digunakan untuk memberi tahu kernel bagaimana menangani koneksi. Juga dalam lingkungan produksi Anda tidak boleh menonaktifkan firewall Anda. Jika sesuatu tidak berhasil, temukan solusi yang tepat, bukan solusi yang mudah. - Broco


Iptables adalah perintah itu bukan layanan, jadi pada umumnya tidak mungkin menggunakan perintah seperti itu

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 itu mungkin untuk membuat layanan untuk mengelola mengedit ipotables atau memasang skrip untuk ruang lingkup ini. Semua layanan di linux, ubuntu tidak terkecuali, adalah skrip yang dapat dieksekusi di dalam folder /etc/init.d, yang mengimplementasikan antarmuka standar (start, stop, restart) 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 

Naskah ini adalah bagian dari ini tutorial, semua perintah untuk mengkonfigurasi firewall harus dimasukkan, sesuai dengan skrip di atas, ke file /etc/iptables.conf. Skrip ini harus dimasukkan ke dalam file bernama 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 ini akan segera aktif dan akan ditambahkan ke /etc/iptables.conf ketika service berhenti (itu berarti mereka akan disimpan dengan pasti ketika sistem shutdown).

Saya harap ini akan membantu semua orang.


16
2017-10-17 07:53





Karena kedua iptables dan ufw adalah cara untuk mengelola netfilter firewall di Linux, dan karena keduanya tersedia secara default di Ubuntu, Anda dapat menggunakan 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 digunakan sudo ufw status verbose, atau iptables -L .

Komunitas Ubuntu mendokumentasikan halaman iptablesdan UFW memiliki lebih banyak info.


6
2017-07-02 22:37





Jika saya ingat dengan benar cara yang disarankan untuk mengatur iptables di panduan ubuntu adalah mengaturnya sebagai bagian dari skrip jaringan. yang berarti tidak ada skrip /etc/init.d/iptables seperti yang ada dalam gaya BSD OS.


3
2018-04-03 23:05



Ada di Debian Woody (apakah Ubuntu ada?), Bagaimanapun itu masih diimplementasikan oleh sysadmin hari ini. Mengapa mereka mengubah ide itu?
Saya belum tahu ... tapi sepertinya saya ingat itu adalah salah satu hal yang mengganggu saya harus mencari tahu ketika saya menyiapkan ubuntu server 9.10 atau sesuatu ... karena saya ingin distro rilis yang memiliki postgres baru-baru ini dan adalah untuk server ... kalau tidak saya menjalankan arch linux. - xenoterracide


Sepertinya ada beberapa cara untuk mengelola firewall di Ubuntu, jadi Anda mungkin tertarik untuk membaca ini: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup

Untuk membuang 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 di beberapa file (misalnya, /etc/iptables.rules). Saat menjalankan perintah sistem booting iptables-restore </etc/iptables.rules dieksekusi untuk memuat aturan firewall. Jadi, mengeksekusi perintah yang sama setelah Anda menjatuhkan semua aturan menggunakan perintah di atas akan menghasilkan "reload firewall" yang Anda minta.


3
2018-04-05 04:32





Buat file di /etc/init.d/

touch fw.rc

Buat 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

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 menjadi root)


3
2017-10-17 08:37





Saya memiliki masalah yang sama. Bahkan, tidak ada iptables-persistent /etc/init.d

Jadi, saya membuat file iptables-persistent di /etc/init.d

nano /etc/init.d/iptables-persistent

dan menulis yang berikut di dalam:

#!/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 memberi izin chmod 755.

chmod 755 /etc/init.d/iptables-persistent

Sekarang berfungsi dengan sempurna! Semoga bisa membantu seseorang.


2
2018-04-17 10:39





Jika Anda menjalankan server Ubuntu sebagai tamu VM (misalnya di VirtualBox) lalu libvirt mungkin diaktifkan. Jika begitu libvirt berisi beberapa filter jaringan built-in yang memanfaatkan iptables. Filter ini dapat dikonfigurasikan seperti yang dijelaskan di bagian firewall nwfilters.

Untuk menonaktifkan aturan iptables Anda harus menghapus semua aturan menyinggung dari libvirt, atau Anda bisa menonaktifkan libvirt jika Anda tidak menggunakannya - mis. menginstal konfigurasi override manual (kemudian reboot):

sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'

2
2018-04-01 14:38





Anda menggunakan perintah yang sesuai untuk RedHat dan CentOS, bukan Ubuntu atau Debian.

http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/


1
2017-08-13 22:59