nm-ssh-server.sh 744 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/bin/bash
  2. # return the external interface
  3. _get_external_interface() {
  4. ip route get 1.1.1.1 | head -1 | cut -d' ' -f5
  5. }
  6. # permit tunnel on server
  7. permit_tunnel() {
  8. echo 'PermitTunnel=yes' >> /etc/ssh/sshd_config
  9. service sshd reload
  10. }
  11. # enable ip_forward
  12. kernel_forwarding() {
  13. echo 1 > /proc/sys/net/ipv4/ip_forward
  14. }
  15. # firewall rules
  16. firewall_rules() {
  17. local device
  18. for device in tun tap; do
  19. iptables -I FORWARD -i $device+ -j ACCEPT
  20. iptables -I FORWARD -o $device+ -j ACCEPT
  21. iptables -I INPUT -i $device+ -j ACCEPT
  22. done
  23. local external_interface=`_get_external_interface`
  24. iptables -t nat -I POSTROUTING -o $external_interface -j MASQUERADE
  25. }
  26. # main
  27. main() {
  28. permit_tunnel
  29. kernel_forwarding
  30. firewall_rules
  31. }
  32. main "$@"