Arquivo de inicializaçao com comandos postrouting masquerade não executa

1. Arquivo de inicializaçao com comandos postrouting masquerade não executa

Tiago
Tiagocwb

(usa Ubuntu)

Enviado em 14/09/2017 - 21:50h

Já fiz de tudo. Não consigo fazer com que o ubuntu grave e inicialize os comando pra distribuir internet de server (2placas de rede) para outras maquinas. Criei um scrip que, quando executado /etc/init.d/firewall.sh na linha de comando, ativa o roteamento e as maquinas passam a reber internet. Porem se reinicio elas se perdem. Tentei iptables persistent, gravei a imagem atual com roteamento funcionando. Na listagem iptables -t nat aparece o routing nasquerade mas se reinicio, as configurações se perdem.



  


2. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Leandro Silva
LSSilva

(usa Outra)

Enviado em 14/09/2017 - 22:46h

Qual procedimento utilizou pra tentar adicionar esse script no boot?

Poderia postar o cabeçalho do seu script?




3. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Tiago
Tiagocwb

(usa Ubuntu)

Enviado em 15/09/2017 - 08:44h

Segue.
----------------------------------------
#! /bin/sh

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -s 0/0 -j MASQUERADE
iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT


----------------------------------------
Dei permissao chmod +x
update-rc.d -n firewall.sh defaults

O interessante e que nao existe este diretorio ou arquivo rc.d no init.d somente rc0 rc1 rc2.d etc.





4. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Leandro Silva
LSSilva

(usa Outra)

Enviado em 15/09/2017 - 19:50h

Tiagocwb escreveu:

Segue.
----------------------------------------
#! /bin/sh

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -s 0/0 -j MASQUERADE
iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT


----------------------------------------
Dei permissao chmod +x
update-rc.d -n firewall.sh defaults

O interessante e que nao existe este diretorio ou arquivo rc.d no init.d somente rc0 rc1 rc2.d etc.




Se for Debian >= 8 seu script tem que ter um cabeçalho específico.

Segue exemplo genérico de como ficaria:

#!/bin/sh
# Start/stop the firewall script.
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Should-Start: $network $named slapd autofs ypbind nscd nslcd winbind
# Should-Stop: $network $named slapd autofs ypbind nscd nslcd winbind
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Firewall script with iptables rules
# Description: This firewall script allow traffic on HA network.
#
#
#
### END INIT INFO

start() {

modprobe iptable_nat
# Zerando table nat
iptables -t nat -X
iptables -t nat -F
# Isso abaixo pode ser feito via /etc/sysctl.conf, aproveitaria pra ativar rp_filter, tcp_syncookies e log_martians.
echo 1 > /proc/sys/net/ipv4/ip_forward
# Regra abaixo é insegura
iptables -t nat -I POSTROUTING -s 0/0 -j MASQUERADE
# Regra abaixo é insegura (ip spoofing accept) e não é necessária se política padrão do firewall for accept.
iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT

}
stop() {

iptables -t nat -F
iptables -t nat -X

}
case $1 in
start) start;;
stop) stop;;
*) echo "Use Start/Stop";;
esac




5. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Tiago
Tiagocwb

(usa Ubuntu)

Enviado em 16/09/2017 - 20:41h

Ao iniciliazar:
Failed to start firewall.service
See systemctl status firewall.service


6. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Leandro Silva
LSSilva

(usa Outra)

Enviado em 18/09/2017 - 09:34h

Tiagocwb escreveu:

Ao iniciliazar:
Failed to start firewall.service
See systemctl status firewall.service


Quando for adicionar o script na inicialização do sistema, não utilize o parâmetro "n" no update-rc.d. O "n" apenas mostra o que aconteceria (muito útil).

Apenas:
update-rc.d firewall.sh defaults

Os runlevels no cabeçalho padrão irão determinar quando o script será iniciado junto ao sistema.

Não precisa deixar o script como "firewall.sh", pode deixar apenas "firewall" mesmo.
Então:

mv firewall.sh firewall
update-rc.d firewall defaults



7. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Tiago
Tiagocwb

(usa Ubuntu)

Enviado em 18/09/2017 - 09:47h

Consegui inicializar o script. Tive que colocar o script na pasta /bin. No systemd criei uma associação para especificando o caminho para o arquivo em/bin.


8. Re: Arquivo de inicializaçao com comandos postrouting masquerade não executa

Leandro Silva
LSSilva

(usa Outra)

Enviado em 18/09/2017 - 12:49h

Tiagocwb escreveu:

Consegui inicializar o script. Tive que colocar o script na pasta /bin. No systemd criei uma associação para especificando o caminho para o arquivo em/bin.


Tudo bem.
A cartilha manda fazer o esquema com o cabeçalho + update-rc.d, mais se funcionou, tudo bem. A questão é ajudar.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts