Routeur Hamnet sur OrangePi 0 / Linux 

Source : Routeur Hamnet sur OrangePi 0 / Linux | F5NLG – SvxLink –

 

 

La configuration choisie est internet via le wifi , accès au réseau Hamnet sur le Xspotnik ou spotnik , Internet (et VPN) via le Wifi , sortie routeur sur la RJ45 ! d’autres solutions existen…

1er Partie le VPN et la route pour le réseau 44 :

Pré requis , obtenir les informations pour le réseau Hamnet auprès de F6CNB ou F1TZV.

  • adresse IP routeur    : 44.168.X.Y
  • adresse IP gateway   : 44.168.X.Z
  • nom d’utilisateur      : f4xxx-routeur
  • mot de passe              : SuperMotDePasseHyperComplique
  • serveur pptp              : hamnet.fr

1/ étape ajouter le vpn pptp

apt-get install pptp-linux 

2/ le fichier VPN HAMNET à créer

mcedit /etc/ppp/peers/HAMNET

pty "pptp hamnet.fr --nolaunchpppd --nobuffer --timeout 10"
  name f4xxx-router
  persist
  holdoff 30
  mtu 1400
  maxfail 0
  remotename pptp
  require-mppe-128
  refuse-eap
  nobsdcomp
  nodeflate
  file /etc/ppp/options.pptp
  ipparam HAMNE

3/ modifier le fichier /etc/ppp/chap-secret

mcedit /etc/ppp/chap-secret

# Secrets for authentication using CHAP
# client                    server                                    secret                                          IP addresses

f4xxx-router           pptp           SuperMotDePasseHyperComplique                           *

4/ tester que ça fonctionne :

pon HAMNET

en cas de soucis : pon HAMNET debug dump logfd 2 nodetach qui donne le log a l’écran.

tapez ifconfig : vous devez avoir une interface ppp0 monté avec les adresses 44.168.X.Y et 44.168.X.Z

5/ on arrête le vpn :

poff HAMNET 

6/ rajouter une route dans /etc/ppp/ip-up

mcedit /etc/ppp/ip-up

#!/bin/sh
#
# This script is run by the pppd after the link is established.
# It uses run-parts to run scripts in /etc/ppp/ip-up.d, so to add routes,
# set IP address, run the mailq etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-up.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional « ipparam » value foo

# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# These variables are for the use of the scripts run by run-parts
PPP_IFACE= »$1″
PPP_TTY= »$2″
PPP_SPEED= »$3″
PPP_LOCAL= »$4″
PPP_REMOTE= »$5″
PPP_IPPARAM= »$6″
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

route add -net 44.0.0.0 netmask 255.0.0.0 dev ppp0

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename « $2″`
export PPP_TTYNAME

# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
exec > /var/log/ppp-ipupdown.log 2>&1
echo $0 $@
echo
fi

# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-up.local ]; then
exec /etc/ppp/ip-up.local « $@ »
fi

run-parts /etc/ppp/ip-up.d \
–arg= »$1″ –arg= »$2″ –arg= »$3″ –arg= »$4″ –arg= »$5″ –arg= »$6″

# if pon was called with the « quick » argument, stop pppd
if [ -e /var/run/ppp-quick ]; then
rm /var/run/ppp-quick
wait
kill $PPPD_PID
fi

7/ et enfin supprimer la route dans /etc/ppp/ip-down

mcedit /etc/ppp/ip-down

#!/bin/sh
#
# This script is run by the pppd _after_ the link is brought down.
# It uses run-parts to run scripts in /etc/ppp/ip-down.d, so to delete
# routes, unset IP addresses etc. you should create script(s) there.
#
# Be aware that other packages may include /etc/ppp/ip-down.d scripts (named
# after that package), so choose local script names with that in mind.
#
# This script is called with the following arguments:
# Arg Name Example
# $1 Interface name ppp0
# $2 The tty ttyS1
# $3 The link speed 38400
# $4 Local IP number 12.34.56.78
# $5 Peer IP number 12.34.56.99
# $6 Optional « ipparam » value foo

# The environment is cleared before executing this script
# so the path must be reset
PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin
export PATH

# These variables are for the use of the scripts run by run-parts
PPP_IFACE= »$1″
PPP_TTY= »$2″
PPP_SPEED= »$3″
PPP_LOCAL= »$4″
PPP_REMOTE= »$5″
PPP_IPPARAM= »$6″
export PPP_IFACE PPP_TTY PPP_SPEED PPP_LOCAL PPP_REMOTE PPP_IPPARAM

route del -net 44.0.0.0 netmask 255.0.0.0 dev ppp0

# as an additional convenience, $PPP_TTYNAME is set to the tty name,
# stripped of /dev/ (if present) for easier matching.
PPP_TTYNAME=`/usr/bin/basename « $2″`
export PPP_TTYNAME

# If /var/log/ppp-ipupdown.log exists use it for logging.
if [ -e /var/log/ppp-ipupdown.log ]; then
exec >> /var/log/ppp-ipupdown.log 2>&1
echo $0 $@
echo
fi

# This script can be used to override the .d files supplied by other packages.
if [ -x /etc/ppp/ip-down.local ]; then
exec /etc/ppp/ip-down.local « $@ »
fi

run-parts /etc/ppp/ip-down.d \
–arg= »$1″ –arg= »$2″ –arg= »$3″ –arg= »$4″ –arg= »$5″ –arg= »$6″

Le VPN est fonctionnel a ce stade , si vous ne souhaiter pas utiliser le réseau Hamnet sur une autre machine la configuration s’arrête la .

pon HAMNET lance le VPN sur Hamnet

poff HAMNET arrete le VPN sur Hamnet.

2eme Partie le DHCP , le NAT , le firewall , et la configuration de l’interface RJ45 eth0

apt-get install isc-dhcp-server

on configure le DHCP sur l’interface eth0

mcedit  /etc/dhcp/dhcpd.conf

authoritative;
option domain-name "Hamnet";
subnet 192.168.44.0 netmask 255.255.255.0 {
range 192.168.44.2 192.168.44.254;
option routers 192.168.44.1;
option domain-name-servers 8.8.8.8, 8.8.4.4; }

on va configurer 2 scripts dans /root pour le démarrage , le firewall , et l’arrêt .

mcedit /root/hamnet_on

#!/bin/bash
  #
  pon HAMNET
  # on active le routage 
  sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

# on configure l'interface RJ45 en 192.168.44.1
  ifconfig eth0 192.168.44.1 netmask 255.255.255.0

# on lance le dhcpcd
  service isc-dhcp-server start

# on applique les règles de Firewall et masqueradd
  iptables --insert OUTPUT 1 --source 0.0.0.0/0.0.0.0 --destination 44.0.0.0/8 --jump ACCEPT --out-interface ppp0
  iptables --insert INPUT 1 --source 44.0.0.0/8 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --in-interface ppp0
  iptables --insert FORWARD 1 --source 0.0.0.0/0.0.0.0 --destination 44.0.0.0/8 --jump ACCEPT --out-interface ppp0
  iptables --insert FORWARD 1 --source 44.0.0.0/8 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT

  iptables --table nat --append POSTROUTING --out-interface ppp0 --jump MASQUERADE
  iptables --append FORWARD --protocol tcp --tcp-flags SYN,RST SYN --jump TCPMSS --clamp-mss-to-pmtu

on rends le fichier  exécutable : chmod +x hamnet_on

on édite le fichier hamnet_off

mcedit /root/hamnet_off

  #!/bin/bash
  #
  # on arrête le Firewall
  iptables -F
  # on arrête le DHCP
  service isc-dhcp-server stop
  # on arrête le VPN
  poff HAMNET

on rends le fichier exécutable : chmod +x hamnet_off

on lance le vpn ./hamnet_on et on test dans midori par exemple sur le xspotnik ici le site hamnet de f5ktr.

Source : Routeur Hamnet sur OrangePi 0 / Linux | F5NLG – SvxLink –