Tenho tentado adicionar automaticamente regras UFW para permitir acesso SSH durante uma instalação do 16.04 ao usar um arquivo de pré-configuração. No entanto, nenhum dos métodos documentados resulta na abertura da porta 22 após a primeira inicialização.
Especificamente, tentei variações das seguintes linhas:
ufw ufw/enable boolean true
ufw ufw/allow_custom_ports string 22/tcp
ufw ufw/allow_known_ports string 22/tcp
ufw ufw/allow_known_ports string SSH
Mas nenhum deles parecia fazer diferença. Além disso, minhas tentativas de adicionar a regra na seção pós-instalação falharam porque o módulo do kernel iptables não foi carregado, resultando em um erro.
Isso é possível dentro do arquivo preseed? Ou devo simplesmente desistir e ativar o firewall na inicialização com um hack?
Responder1
Eu também tenho tentado fazer isso funcionar há algum tempo. Nada parece funcionar. Até que finalmente desisti e consertei o problema com uma solução alternativa simples do rc.local:
d-i preseed/late_command string \
mv /target/etc/rc.local /target/etc/rc.local.orig; \
echo '#!/bin/sh -e' > /target/etc/rc.local; \
echo '/usr/sbin/ufw allow ssh' >> /target/etc/rc.local; \
echo 'mv -f /etc/rc.local.orig /etc/rc.local' >> /target/etc/rc.local; \
echo 'test -x /etc/rc.local && /etc/rc.local' >> /target/etc/rc.local; \
echo 'exit 0' >> /target/etc/rc.local; \
chmod +x /target/etc/rc.local
A solução alternativa adicionará um rc.local
script personalizado preseed/late_command
que irá:
Faça um backup do original
rc.local
comorc.local.orig
(usandomv
)Então o novo
rc.local
é criado - que é um script que será executado na primeira inicialização do sistemaO novo script irá:
- Habilite o acesso SSH usando
ufw
- Restaurar o original
rc.local
(movendorc.local.orig
pararc.local
, excluindo-se) - Teste se o original
rc.local
é executável e execute-o - Sair com sucesso
- Habilite o acesso SSH usando