iptables restart retorna: argumento incorreto 'restart'

iptables restart retorna: argumento incorreto 'restart'

Eu tenho um Ubuntu LTSsistema funcionando há alguns anos. Ontem uma queda de energia forçou meu computador a desligar. Com a energia restaurada, inicializei o sistema e tudo pareceu começar bem, com exceção do iptables. Sempre que reinicio este sistema, ufwele sempre inicia, mesmo que eu tenha configurado para não fazê-lo. Prefiro iptablessimplesmente porque sei disso, então encerro o 'ufw' e reconfiguro iptablese reinicio 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 tenho usado esse procedimento fielmente há anos. Não instalei nenhuma atualização que eu saiba recentemente.

O que mudou para que esse método confiável falhe agora?

referência: iptables v1.4.12

Responder1

você mencionou 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 visualizar as configurações atuais do iptable

sudo iptables -L -n

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

sudo iptables-save

olhando para suas regras, você não está bloqueando o tráfego de entrada (seus escudos estão desativados), enquanto seguir bloqueia todo o tráfego de entrada, exceto as 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

observe que abro um endereço IP específico 192.30.252.0/22 ​​para poder executar um servidor ouvindo o tráfego de entrada, então todas as menções ao GitHubWebHooks são opcionais ... se você salvar acima em um arquivo, carregue esse arquivo como suas regras, então você irá esteja pronto para ir... proteja-se

antes de mudar alguma coisa, vamos despejar 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 atuais do iptable

sudo ./firewall_save_current_rules.sh

O código abaixo definirá um novo conjunto de regras onde bloquearemos todo o tráfego de entrada por padrão, exceto partes especificadas (especialmente a porta ssh + portas normais http e 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 

para completar, abaixo está um script de solução de problemas que desabilitará efetivamente o firewall, abrindo todo o tráfego de entrada e saída ... execute se quiser uma tela vazia, mas execute acima de firewall_shields_up.sh para restaurar um firewall adequado

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

informação relacionada