iptables restart retorna: Bad argumento 'restart'

1

Eu tenho um sistema Ubuntu LTS em execução há alguns anos. Ontem, uma queda de energia forçou meu computador para baixo. Com a energia restaurada, inicializei o sistema e tudo parecia começar bem, com a exceção de iptables . Sempre que eu reinicializei este sistema, ufw sempre é iniciado, mesmo que eu não o tenha configurado. Eu prefiro iptables simplesmente porque eu sei, então eu desliguei 'ufw' e reconfigurei iptables e reiniciei com o seguinte procedimento:

sudo ufw disable

sudo ip_tables_reset.sh
sudo ip_tables_config.sh

sudo iptables restart

e verifique com

sudo iptables -S

que retorna:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j DROP
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

Agora a linha

sudo iptables restart

retorna com

Bad argument 'restart'

Mas eu tenho usado esse procedimento fielmente há anos. Eu não instalei nenhuma atualização que eu saiba recentemente.

O que mudou nesse método confiável agora falha?

reference: iptables v1.4.12

    
por Roy Hinkley 12.06.2017 / 16:50

1 resposta

1

você menciona este comando

sudo iptables restart  #  wrong usage, its not a service

o conjunto de scripts abaixo é como você faz backup, habilita ou desabilita seu firewall ... primeiro verifique se você tem o pacote instalado

dpkg -l | grep iptables

uma maneira de ver as configurações atuais do iptable

sudo iptables -L -n

a maneira canônica de mostrar regras de iptable atuais (exibir apenas sem alterações)

sudo iptables-save

olhando para as suas regras, você não está bloqueando o tráfego de entrada (seus escudos estão inativos), enquanto o seguinte bloqueia todo o tráfego de entrada, exceto portas especificadas

*filter
:INPUT DROP [331:17104]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [9727:1360720]
:GitHubWebHooks - [0:0]
-A INPUT -p tcp -m tcp --dport 9000 -j GitHubWebHooks
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A GitHubWebHooks -s 192.30.252.0/22 -j ACCEPT
-A GitHubWebHooks -j DROP
COMMIT

aviso que eu abro um endereço IP específico 192.30.252.0/22 para que eu possa rodar um servidor escutando tráfego de entrada então todas as menções do GitHubWebHooks são opcionais ... se você salvar acima em um arquivo então carregue esse arquivo como suas regras então você será bom para ir ... escudos acima

antes de alterar qualquer coisa, permite descarregar suas regras atuais em um arquivo de saída

vi firewall_save_current_rules.sh

#!/usr/bin/env /bin/bash

set -o errexit  #  exit on error

#  dump current iptable rules to file

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

# ........

curr_timestamp=$(date '+%H%M%S%N')

curr_rulesfile=/etc/iptables/rules.v4.${curr_timestamp}.current_rules

rulesdir=$( dirname $curr_rulesfile )

if [[ ! -d $rulesdir ]]; then

    echo about to create dir $rulesdir
    mkdir $rulesdir
fi

iptables-save > ${curr_rulesfile}  # dump current iptable rules into output timestamped file


echo curr_rulesfile $curr_rulesfile

agora execute o script acima para salvar suas regras de iptable atuais

sudo ./firewall_save_current_rules.sh

abaixo o código definirá um novo conjunto de regras onde bloquearemos todo o tráfego de entrada por padrão, exceto as partes especificadas (especialmente a porta ssh + http normal e as portas https)

vi firewall_shields_up.sh

#!/usr/bin/env /bin/bash

set -o errexit  #  exit on error

#  create new set of iptable rules from inline list of rules - Block all incoming traffic by default except specified

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

# ........


curr_timestamp=$(date '+%H%M%S%N')

new_rulesfile=/etc/iptables/rules.v4.${curr_timestamp}.new_rules

rulesdir=$( dirname $new_rulesfile )

if [[ ! -d $rulesdir ]]; then

    echo about to create dir $rulesdir
    mkdir $rulesdir
fi

# .....  park into a new file below list of iptable rules

cat << EOF > ${new_rulesfile}

*filter
:INPUT DROP [331:17104]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [9727:1360720]
:GitHubWebHooks - [0:0]
-A INPUT -p tcp -m tcp --dport 9000 -j GitHubWebHooks
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A GitHubWebHooks -s 192.30.252.0/22 -j ACCEPT
-A GitHubWebHooks -j DROP
COMMIT

EOF


echo new_rulesfile $new_rulesfile


iptables-restore <  ${new_rulesfile}  #  engage new iptable rules from file


echo here is new iptable settings

iptables-save


#  ... if you are running docker you will want to bounce its daemon
#  sudo service docker restart

execute o script acima para definir novas regras de iptable

sudo ./firewall_shields_up.sh 

por completo abaixo está um script de solução de problemas que irá efetivamente desabilitar o firewall abrindo todo o tráfego de entrada e saída ... execute se você quiser um slate vazio no entanto execute acima de firewall_shields_up.sh para recuperar um firewall apropriado

vi firewall_shields_down.sh

#!/usr/bin/env /bin/bash

set -o errexit  #  exit on error

#  open up all incoming and outgoing traffic ... effectively disabling the firewall

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

# ........ lets first backup current rules into timestamped file

curr_timestamp=$(date '+%H%M%S%N')

curr_rulesfile=/etc/iptables/rules.v4.${curr_timestamp}.current_rules_before_opening_up_all_traffic

rulesdir=$( dirname $curr_rulesfile )

if [[ ! -d $rulesdir ]]; then

    echo about to create dir $rulesdir
    mkdir $rulesdir
fi

iptables-save > ${curr_rulesfile}  # dump current iptable rules into output timestamped file

echo curr_rulesfile $curr_rulesfile

# ... now alter iptables to lower shield




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



# ... display new iptable rules

echo
echo following are the new iptable rules after we opened up all incoming and outgoing traffic
echo

iptables-save
    
por Scott Stensland 12.06.2017 / 18:58