Qual é o equivalente do Ubuntu /etc/network/if-pre-up.d/ no Fedora (22)

1

Estou tentando migrar do Ubuntu para o Fedora (22), mas não consigo encontrar como executar um script de rede antes que a interface seja ativada. Existe algum equivalente a este /etc/network/if-pre-up.d/ no Fedora?

Preciso disparar um script sempre que uma (qualquer) interface estiver ativa e capturar a interface em uma variável (para que eu possa executar o macchanger nela). Inicialmente, pensei que isso pudesse ser gerenciado com systemd-networkd, mas parece que não é o caso quando o NetworkManager está ativo [1]

[0] https://help.ubuntu.com/community/AnonymizingNetworkMACAddresses

[1] https://superuser.com/a/948996/412798

Anthony Hunt
fonte

Respostas:

1

Eu estive executando alguns testes e a única maneira que funcionou para mim foi com uma unidade systemd:

vim /etc/systemd/system/macspoof@[your-interface].service

[Unit]
Description=macchanger on %I
Wants=network-pre.target
Before=network-pre.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
ExecStart=/usr/bin/macchanger -r %I
Type=oneshot

[Install]
WantedBy=multi-user.target

altere as permissões para 755

chmod 755 /etc/systemd/system/macspoof@[your-interface].service

depois ative o serviço

systemctl enable macspoof@[your-interface].service

verifique este link para obter mais informações: falsificação de endereço MAC

nando
fonte
Isso joga Failed to get properties: Access denied. eu acho que vim /etc/systemd/system/macspoof@[your-interface].serviceestá incorreto. Deveria estar, /etc/systemd/system/[email protected]mas não está funcionando de qualquer maneira. Tem certeza de que testou isso?
Anthony Hunt
a ideia é usar o nome da sua interface, por exemplo [email protected]. No meu caso eu usei [email protected]e funcionou muito bem
nando
Observe que os arquivos de serviço systemd não precisam ser executáveis ​​(eles não têm um shebang; portanto, tentar executá-los não funcionará de qualquer maneira). Você provavelmente não precisa chmoddeles, mas se o fizer, seria mais apropriado para definir o modo de 644, não 755.
jbg
0

/etc/NetworkManager/dispatcher.d/pre-up.d/

nando
fonte
Eu já adicionou o script macchanger para /etc/NetworkManager/dispatcher.d/pre-up.d/e chmod + x, mas o mac não é alterado
Anthony Hunt
0

Parece que o script deve ser colocado no distribuidor de gerenciador de rede. O caminho pode ser "/usr/local/etc/NetworkManager/dispatcher.d/pre-up.d/macchanger" ou "/etc/NetworkManager/dispatcher.d/pre-up.d/macchanger". Comparado com o tutorial do Ubuntu, você deve usar o primeiro argumento ($ 1) em vez de $ IFACE.

#!/bin/bash
ip link set dev $1 down
macchanger -e "$1"
ip link set dev $1 up
Anthony Hunt
fonte