Soru Ubuntu'da iptables nasıl başlatılır / durdurulur?


Ubuntu'da iptables hizmetini nasıl başlatıp / durdurabilirim?

denedim

 service iptables stop

ama veriyor "Tanınmayan hizmet".

Neden böyle yapıyor? Başka bir yöntem var mı?


81
2018-04-03 11:15


Menşei


Sanırım karmaşanın bir kısmı şöyle: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux sadece Fedora / Red Hat için geçerli ve bunu bulacağınızı iddia ediyor /etc/init.d/ googling 'iptables ubuntu' kapattığınızda aldığınız en iyi bağlantıdır (un). - icc97


Cevaplar:


"Ubuntu" hakkında bilmiyorum, ama Linux'ta genellikle "iptables" bir hizmet değil - netfilter çekirdek güvenlik duvarını yönetmek için bir komut. Tüm standart zincirlerdeki varsayılan ilkeleri "KABUL" olarak ayarlayarak ve kuralları temizleyerek güvenlik duvarını "kapatabilir" (veya durdurabilirsiniz).

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

(Kullandıysanız, "nat" gibi diğer tabloları da temizlemeniz gerekebilir)

Ubuntu web sitesinde aşağıdaki makale, NetworkManager ile kullanım için iptables kurulumunu açıklamaktadır: https://help.ubuntu.com/community/IptablesHowTo


65
2018-04-03 17:36



Bu şu andaki tüm kuralları bir kenara atmaz mı? Sudo iptables-save> / tmp / rules ile ilk önce bir yere kaydetmek için en iyisi - Jens Timmerman
Bu hizmeti durdurmuyor, ama sadece herşeye izin veriyor. - Frederik Nielsen
Ah teşekkürler. iptables -F ben neye benziyordum :-) - Cameron
@JensTimmerman iptables-save > /tmp/rules günümü kurtardı. Teşekkürler - blagus


Hepiniz yanlış :-)

Aradığınız komut şu şekildedir:

$ sudo ufw disable

44
2017-08-15 18:40



ufw hakkında konuşuyorsak, ama bu mesaj iptables hakkında - webjay
Eh, varsayılan bir Ubuntu yüklemesi olduğunu varsaydım ve birinin iptables yok, ama ufw var. - Frederik Nielsen
ufw, iptables için sadece bir önyüzdür: "Iptables, tüm resmi Ubuntu dağıtımlarında (Ubuntu, Kubuntu, Xubuntu) varsayılan olarak yüklü bir güvenlik duvarıdır. Ubuntu'yu yüklediğinizde, iptables oradadır, ancak varsayılan olarak tüm trafiğe izin verir. Ubuntu 8.04 Comes ufw ile - iptables güvenlik duvarını kolayca yönetmek için bir program. " help.ubuntu.com/community/IptablesHowTo - benjaoming
Olabilir, ama Ubuntu'da ufw == iptables (daha fazla veya daha az) olarak, ufw devre dışı bırakıldığında iptables devre dışı bırakılması eşittir. - Frederik Nielsen
sudo ufw durumu verbose; sudo iptables -L; - user27465


Önce yüklü olup olmadığını kontrol ederim (muhtemelen):

dpkg -l | grep iptables

Ubuntu'da, iptables bir hizmet değildir. Bunu durdurmak için aşağıdakileri yapmanız gerekir:

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

Önceki kurallarınızı geri yüklemek için:

iptables-restore < /root/firewall.rules

Bu alındı http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ ve birçok Ubuntu 8.X & 9.10 kurulumunda test edildi.


29
2018-04-05 07:46



Bunun neden bu kadar çok upvot olduğunu bilmiyorum, iptables bir çekirdek modülüdür. Asla "durdu" olabilen bir "hizmet" değildir. Çekirdeğe bağlantıları nasıl ele alacağını anlatmak için kullanılırlar. Ayrıca bir üretim ortamında güvenlik duvarınızı asla devre dışı bırakmamalısınız. Bir şey işe yaramazsa, doğru çözümü bulun, kolay olanı değil. - Broco


Iptables, bir servis değil bir komuttur, bu yüzden genel olarak komutları kullanmak mümkün değildir.

service iptables start

veya

service iptables stop

Güvenlik duvarını başlatmak ve durdurmak için centos gibi bazı dağıtımlar, güvenlik duvarını başlatmak ve durdurmak için bir yapılandırma dosyası ve yapılandırmak üzere iptables adı verilen bir hizmet kurdu. Her neyse, ipotables'i düzenlemek veya bu kapsam için bir betik yüklemek için bir servis yapmak mümkündür. Linux, ubuntu'daki tüm hizmetler bir istisna değildir, /etc/init.d klasörünün içinde standart bir arabirim uygulayan (start, stop, restart) yürütülebilir betiklerdir. Olası bir betik şöyle görünür:

 #!/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 

Bu betik bunun bir parçası öğreticiGüvenlik duvarını yapılandırmaya yönelik tüm komutlar, yukarıdaki betiğe göre, /etc/iptables.conf dosyasına eklenmelidir. Bu betik adında bir dosyaya eklenmeli iptables /etc/init.d dizininde

chmod+x *iptables* 

ve hizmeti kullanarak çalışma seviyelerine ekleyin.

update-rc.d iptables defaults

Kabuktan yeni kurallar ekleyebilirsiniz, bu kurallar anında aktif olacaktır ve servis durduğunda /etc/iptables.conf dosyasına eklenecektir (bu, sistem kapatıldığında emin olunacaktır demektir).

Umarım bu herkese yardımcı olur.


16
2017-10-17 07:53





Çünkü hem iptables hem de ufw netfilter Linux'ta güvenlik duvarı ve her ikisi de Ubuntu'da varsayılan olarak kullanılabilir olduğundan, güvenlik duvarı kurallarını başlatmak ve durdurmak (ve yönetmek) için kullanabilirsiniz.

iptables daha esnektir, ancak ufw basit ve tipik bir işlev için kullanabileceğiniz çok basit bir arayüz dili sağlar çünkü:

sudo ufw disable # Güvenlik duvarını devre dışı bırakmak için

sudo ufw enable  # Güvenlik duvarını etkinleştirmek için

Geçerli güvenlik duvarı ayarlarını görmek için sudo ufw status verboseveya iptables -L .

Ubuntu Topluluğu dokümanlar sayfalarında iptablesve UFW daha fazla bilgi var.


6
2017-07-02 22:37





Doğru olarak hatırlarsam, ubuntu kılavuzlarında iptables kurmak için önerilen yol, ağ komut dosyalarının bir parçası olarak ayarlamaktır. BSD stili işletim sistemlerinde olduğu gibi /etc/init.d/iptables betiği olmadığı anlamına gelir.


3
2018-04-03 23:05



Debian Woody'de (o zaman Ubuntu var mıydı?) Vardı, yine de bugün sysadmins tarafından hala uygulanmaktadır. Neden bu fikri değiştirdiler?
Ben bir ipucu yok ... ama ubuntu 9.10 veya bir şey kurduğumda anladığım şu sinir bozucu şeylerden biri olduğunu hatırlıyorum. sunucular içindi ... aksi halde arch linux'u çalıştırırım. - xenoterracide


Ubuntu'da güvenlik duvarını yönetmenin birkaç yolu var gibi görünüyor, bu yüzden bunu okumak ilginizi çekebilir: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup

Mevcut tüm kuralları bırakmak için bu komutları kullanabilirsiniz (bazı betiklere yazabilirsiniz):

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

Normal durumda, bazı güvenlik duvarı kurallarınız bazı dosyalara kaydedilir (örneğin, /etc/iptables.rules). Önyükleme sistemi komutu iptables-restore </etc/iptables.rules güvenlik duvarı kurallarını yüklemek için çalıştırıldı. Bu nedenle, yukarıdaki komutları kullanarak tüm kuralları bıraktıktan sonra aynı komutu yürütmek, istediğiniz "güvenlik duvarını yeniden yükleme" ile sonuçlanacaktır.


3
2018-04-05 04:32





/Etc/init.d/ üzerinde bir dosya oluşturun

touch fw.rc

Dosyayı çalıştırılabilir chmod + x yap

/Etc/rc2.d/ dosyasında bu dosyaya bir link ver

ln -s /etc/init.d/fw.rc S80firewall

S80firewall'ı düzenleyin ve aşağıdakini ekleyin

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F

Tüm özel iptables kurallarınızı bu dosyaya ekleyebilirsiniz.

Artık /etc/rc2.d/S80firewall'u çalıştırarak güvenlik duvarını (iptables) yeniden başlatabilirsiniz (root olmalı)


3
2017-10-17 08:37





Bende aynı sorun vardı. Aslında, içinde iptables-persistent yoktu /etc/init.d

Bu yüzden, iptables-kalıcı dosyayı /etc/init.d

nano /etc/init.d/iptables-persistent

ve aşağıdakileri yazdı:

#!/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

ve sonra 755 chmod'a izin verdi.

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

Şimdi mükemmel çalışıyor! Umarım birisine yardım edebilir.


2
2018-04-17 10:39





Ubuntu sunucusunu bir VM konuğu olarak çalıştırıyorsanız (ör. VirtualBox'ta) libvirt etkin olabilir. Öyleyse libvirt iptables kullanan bazı yerleşik ağ filtreleri içeriyorsa. Bu filtreler, güvenlik duvarı bölümünde açıklandığı şekilde yapılandırılabilir. nwfilters.

Iptables kurallarını devre dışı bırakmak için ya libvirt'in tüm ihlal eden kurallarını kaldırmanız gerekecek ya da kullanmıyorsanız libvirt'i devre dışı bırakabilirsiniz - örn. manuel geçersiz kılma yapılandırması yükleyin (ardından yeniden başlatın):

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

2
2018-04-01 14:38