summaryrefslogtreecommitdiff
path: root/skel/multistrap-hooks/completion_80_rootscript_net.sh
blob: 41b4fd312e67b0ebfb428c3bd78237bb71133ff5 (plain)
  1. #!/bin/sh
  2. #
  3. # completion_80_rootscript_net.sh
  4. # Copyright 2016 Jonas Smedegaard <dr@jones.dk>
  5. # License: GNU Public License version 3 or newer
  6. #
  7. # multistrap completion hook adding root script to setup network
  8. #
  9. # Enhances: multistrap
  10. set -eu
  11. fs="$1"
  12. # FIXME: do this far more flexible!
  13. cat <<'EOF' > "$fs/root/init-network-settings"
  14. #!/bin/sh
  15. set -eu
  16. set -x
  17. # Add static-IP internal first-port ethernet connection
  18. # network-manager 1.2:
  19. nmcli connection add type ethernet con-name eth0-static ifname eth0 -- ipv4.addresses 192.168.1.1 ipv4.method manual connection.zone internal
  20. nmcli connection modify eth0-static connection.autoconnect on
  21. # network-manager 1.4:
  22. #nmcli connection add type ethernet con-name eth0-static ifname eth0 ip4 192.168.1.1 ipv4.method manual autoconnect on connection.zone internal
  23. # Add dynamic-IP external wildcard ethernet connection
  24. # network-manager 1.2:
  25. nmcli connection add type ethernet con-name dhcp ifname '*' connection.zone external
  26. nmcli connection modify dhcp connection.autoconnect on
  27. # network-manager 1.4:
  28. #nmcli connection add type ethernet con-name dhcp ifname '*' autoconnect on connection.zone external
  29. # Add dynamic-IP external WWAN connection (hardcoded provider for now)
  30. # network-manager 1.2:
  31. nmcli connection add ifname '*' autoconnect yes type gsm apn data.tre.dk -- connection.id gsm-tre.dk-noauth connection.zone external gsm.password-flags 1
  32. #nmcli connection add ifname '*' autoconnect yes type gsm apn internet -- connection.id gsm-internet-noauth connection.zone external gsm.password-flags 1
  33. # network-manager 1.4:
  34. #nmcli connection add ifname '' autoconnect yes type gsm apn data.tre.dk connection.id gsm-tre.dk-noauth connection.zone external gsm.password-flags 1
  35. ##nmcli connection add ifname '' autoconnect yes type gsm apn internet connection.id gsm-internet-noauth connection.zone external gsm.password-flags 1
  36. # Permit mosh from anywhere:
  37. firewall-cmd --permanent --zone external --add-service mosh
  38. firewall-cmd --permanent --zone internal --add-service mosh
  39. firewall-cmd --reload
  40. # setup dynamic-IP subnet
  41. incfile "/etc/dhcp/dhcpd.d/80-shared-network-10-10-0.conf"
  42. cfgfile="/etc/dhcp/dhcpd.conf"
  43. line="#include \"$incfile\";"
  44. mkdir -p "$fs//etc/dhcp/dhcpd.d"
  45. cat <<'EOf' > "$fs$incfile"
  46. # Dynamic-IP subnet in private class A net
  47. shared-network 10-10-0 {
  48.     option domain-search "internal.localnet";
  49.     option domain-name-servers 10.10.0.1;
  50.     subnet 10.10.0.0 netmask 255.255.255.0 {
  51.         option routers 10.10.0.1;
  52.         range 10.10.0.100 10.10.0.254;
  53.     }
  54. }
  55. EOf
  56. grep -q "$line" "$fs$incfile" || echo "$line" >> "$fs$incfile"
  57. echo 'Network settings applied succesfully!'
  58. EOF
  59. chmod a+"$fs/root/init-network-settings"