Salve as alterações no iptables

3

Eu tenho o iptables rodando, já que eu posso usar o seguinte comando ...

sudo / sbin / iptables sudo / sbin / iptables -t nat -I PREROUTING -p tcp --dportar 80 -j REDIRECT - para porta 8080

mas eu não posso fazer ....

serviço iptables salvar iptables: serviço não reconhecido

Como eu realmente salvo essas alterações quando o mapeamento para quando eu reinicio o servidor?

Obrigado.

    
por david99world 29.06.2012 / 15:04

3 respostas

2

Até onde eu sei, o Ubuntu usa UFW na versão mais recente, então é bem provável que ele não tenha um SysV script de inicialização para iptables . Se você não se sentir confortável com UFW , você pode usar sudo iptables-save > /etc/iptables.rules para armazenar suas regras atuais e invocar sudo iptables-restore < /etc/iptables.rules de rc.local (por exemplo) para restaurar as regras na inicialização.

Ou, você pode adicionar seu próprio script de inicialização para iptables conforme especificado aqui :

#!/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
    
por 29.06.2012 / 15:13
2

Sua regra do iptables está ativa quando você a executa. Emitir um reinício meramente restaura sua configuração do iptables, no entanto, foi salvo pela última vez. Não há necessidade de reiniciar.

iptables-save
iptables-restore

salvará as regras em um arquivo de texto simples e será restaurado na inicialização do sistema pelo script init.d. veja iptables.conf e iptables man para detalhes

    
por 29.06.2012 / 15:20
1

Por que não fazer isso da maneira mais fácil? No Debian / Ubuntu você pode:

1 - crie suas regras de iptables

2 - execute sudo apt-get install iptables-persistent ; ele perguntará se você deseja salvar as regras e restaurá-las após a inicialização.

    
por 14.10.2017 / 18:22