Afficher/cacher Sommaire
Cubieboard2
- AllWinnerTech SOC A20,ARM® Cortex™-A7 Dual-Core ARM® Mali400 MP2 Complies with OpenGL ES 2.0/1.1
- 1GB DDR3 @480M
- 3.4GB internal NAND flash, up to 64GB on SD slot, up to 2T on 2.5 SATA disk
- 5VDC input 2A or USB otg input
- 1x 10/100 ethernet, support usb wifi
- 2x USB 2.0 HOST, 1x mini USB 2.0 OTG, 1x micro sd
- 1x HDMI 1080P display output
- 1x IR, 1x line in, 1x line out
- 96 extend pin interface, including I2C, SPI, RGB/LVDS, CSI/TS, FM-IN, ADC, CVBS, VGA, SPDIF-OUT, R-TP, and more
Debian Stretch
Création clé USB debian arm (ex /dev/sde)
zcat firmware.Cubieboard2.img.gz partition.img.gz > /dev/sdd
Utilisation module USB/Série /dev/ttyUSB0 et minicom Insertion carte SD et mise sous tension A20-OlinuxIno-Micro Installation :
- Europe/France
- Hostname : cubieboard
- Domaine :
- Miroir : France , ftp.fr.debian.org
- Http Proxy :
- Utilisateur : cubie
- Partionnement
- SDcard /boot ext2 512M
- SSD 64Go LVM VG ssd64 ,root-lv 15G ext4, home-lv 20G ext 4 et swap 4G
- software to install : SSH server et standard system utilities
A la fin de l’installation,redémarrage
Machine : cubieboard
Passage en super utilisateur
su
Les points de montage
mount
/dev/mmcblk0p1 on /boot type ext2 (rw,relatime,block_validity,barrier,user_xattr,acl)
/dev/mapper/ssd64-root on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/ssd64-home on /home type ext4 (rw,relatime,data=ordered)
Version linux et debian:
uname -a
Linux cubieboard 4.9.0-4-armmp-lpae #1 SMP Debian 4.9.51-1 (2017-09-28) armv7l GNU/Linux
9.2
locales
dpkg-reconfigure locales
Generating locales (this might take a while)...
fr_FR.UTF-8... done
Generation complete.
TimeZone : Europe/Paris (facultatif car défini à l’installation de debian)
dpkg-reconfigure tzdata
Installer sudo et modifier /etc/sudoers pour accès sans mot de passe à l’utilisateur yann
apt install sudo
echo "cubie ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Installer les outils
apt install rsync curl tmux jq figlet git -y
Disques
Les disques LVM
root@cubieboard:/home/cubie# pvs
PV VG Fmt Attr PSize PFree
/dev/sda1 ssd64 lvm2 a-- 59.62g 23.30g
root@cubieboard:/home/cubie# vgs
VG #PV #LV #SN Attr VSize VFree
ssd64 1 3 0 wz--n- 59.62g 23.30g
root@cubieboard:/home/cubie# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home ssd64 -wi-ao---- 18.62g
root ssd64 -wi-ao---- 13.97g
swap ssd64 -wi-ao---- 3.72g
Modification nom des interfaces
Sur une installation debian stretch , il est impossible de définir plusieurs points d'accès avec hostapd ,car les interfaces réseau ont un nom complexe au lieu des traditionnels eth0 et wlan0
boot.scr est créé par un fichier script de démarrage. Si vous en avez un, vous pouvez utiliser mkimage pour créer votre fichier.
Si vous voulez baser votre script de démarrage sur un boot.scr et que vous n’avez pas la source d’origine, il est possible de créer le fichier source boot.txt
sudo dd bs=1 skip=72 if=/boot/boot.scr of=boot.txt
Sauvegarde de l’original
sudo cp /boot/boot.scr /boot/boot.scr.bak
Modification du fichier source de boot boot.txt,ajout commande kernel (net.ifnames=0 biosdevname=0) pour ne pas renommer les interfaces eth et wlan
setenv bootargs "${bootargs} quiet net.ifnames=0 biosdevname=0"
Regénérer le fichier boot.scr
sudo mkimage -A arm -T script -C none -n "Interfaces wlan" -d boot.txt /boot/boot.scr
Image Name: Interfaces wlan
Created: Mon Jan 1 17:06:12 2018
Image Type: ARM Linux Script (uncompressed)
Data Size: 2429 Bytes = 2.37 kB = 0.00 MB
Load Address: 00000000
Entry Point: 00000000
Contents:
Image 0: 2421 Bytes = 2.36 kB = 0.00 MB
Redémarrer la machine
HotSpot Wifi
Passer en mode su
Modification fichier /etc/apt/sources.list pour installer les “firmwares” Ralink et/ou Realtek
nano /etc/apt/sources.list
Ajouter “ contrib non-free” après stretch main des 2 lignes concernées
Màj
apt update && apt upgrade
Installation des pilotes Realtek et Ralink
apt -y install firmware-realtek firmware-misc-nonfree
Installer les outils wifi dns et réseau
apt install wireless-tools iw wpasupplicant dnsutils net-tools -y
Interface USB
lsusb
Bus 002 Device 002: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
Compatibilité Access Point
iw list |grep -i AP
* AP
* AP/VLAN
Capabilities: 0x17e
* start_ap
* set_noack_map
* set_qos_map
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* AP/VLAN
* #{ AP, mesh point } <= 8,
HT Capability overrides:
Device supports AP scan.
Driver supports full state transitions for AP/GO clients
Interface systéme
ip link
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:0f:00:3b:2e:31 brd ff:ff:ff:ff:ff:ff
HostApd
Installer hostapd et les outils wifi
sudo apt install hostapd
Configurer HostApd , éditer ou créer le fichier hostapd.conf
sudo nano /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=YanProtonVPN
hw_mode=g
channel=5
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=passphrase_YanProtonVPN
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Modifier le fichier /etc/default/hostapd
sudo nano /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DHCP DnsMasq
Installer dnsmasq
sudo apt install dnsmasq
Sauuver configuration par défaut
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.sav
Configuration /etc/dnsmasq.conf
sudo nano /etc/dnsmasq.conf
no-resolv
interface=wlan0
dhcp-range=10.6.0.3,10.6.0.20,12h
server=208.67.222.222 # OpenDNS
server=208.67.222.220
Configurer interface wifi
Configurer l’interface’ wlan0 pour être statique
sudo nano /etc/network/interfaces
Supprimer tout ce qui fait référence aux anciens paramètres de configuration de wlan0, nous allons les changer
Ajouter en fin de fichier
allow-hotplug wlan0
iface wlan0 inet static
address 10.6.0.1
netmask 255.255.255.0
Activer et définir une adresse statique wifi dans une autre plage privée d’adresse 10.6.0
sudo ip link set dev wlan0 up
Pour corriger l’erreur RTNETLINK answers: Operation not possible due to RF-kill
sudo -s
apt install rfkill
rfkill unblock all
ip link set dev wlan0 up
On définit l’IP de wlan0 manuellement pour éviter de relancer le service
sudo ip addr add 10.6.0.1/24 dev wlan0
Configuration NAT
NAT (Network Address Translation) est une technique qui permet à plusieurs périphériques d’utiliser une seule connexion à Internet.
Linux prend en charge NAT en utilisant Netfilter (également connu sous le nom iptables)
Passage en su
sudo -s
Tout d’abord, activez le redirection IP dans le noyau:
sysctl net.ipv4.ip_forward=1
Pour le configurer automatiquement au démarrage, modifiez le fichier /etc/sysctl.conf
nano /etc/sysctl.conf
et décommenter la ligne suivante:
net.ipv4.ip_forward=1 # enable packet forwarding for IPv4
Dans la chaîne POSTROUTING, (après routage) on ne peut modifier que l’adresse source. L’adresse de destination est conservée. On fait donc du SNAT. On dit qu’on fait du “NAT source”.(masquerade : les adresses privées, utilisent toutes la même adresse publique)
Activer MASQUERADE sur l’interface qui partage internet Internet (eth0)
# RAZ tables
iptables -t filter -F
iptables -t nat -F
iptables -t filter -X
iptables -t nat -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
# HotSpot Wifi
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE -m comment --comment "Activer MASQUERADE sur interface eth0 qui partage Internet"
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT -m comment --comment "Accepter les connexions etablies"
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT -m comment --comment "Accepter les nouvelles connexions venant interface wlan0"
Charger les règles iptables au démarrage
apt install iptables-persistent
Faut-il enregistrer les règles IPv4 actuelles ? OUI
Faut-il enregistrer les règles IPv6 actuelles ? NON
Les tables sont enregistrés sous /etc/iptables/ , rules.v4 pour IPv4 et rules.v6 pour IPv6
Sauvegarde/Restauration manuelle des régles iptables
iptables-save > /etc/iptables/rules.v4
iptables-restore < /etc/iptables/rules.v4
Relancer hostapd
sudo systemctl restart hostapd
Relancer dnsmasq
sudo systemctl restart dnsmasq
Accès internet via SSID “YanProtonVPN” et mot de passe
ProtonVPN
Utiliser le hotspot YanProtonVPN pour se connecter sur internet via un VPN
Installer openvpn
sudo apt install openvpn
Télécharger le fichier Secure ProtonVPN “se-fr-01.protonvpn.com.udp1194.ovpn”
Tester la configuration
cd ~
sudo openvpn se-fr-01.protonvpn.com.udp1194.ovpn
Entrer Username et Password ,au terme de l’initialisation, si tout est ok , le message suivant est affiché
Tue Dec 26 20:01:44 2017 Initialization Sequence Completed
Démarrage automatique de la configuration VPN
sudo mv se-fr-01.protonvpn.com.udp1194.ovpn /etc/openvpn/frProtonVpnSecure.conf
Création d’une seconde configuration nommée frProtonVpnSecure.conf
La différence entre les 2 configurations
frProtonVpnSecure.conf | ukProtonVpnSecure.conf |
---|---|
remote 185.159.156.15 1194 | remote 185.159.157.12 1194 |
remote 185.159.156.16 1194 | remote 185.159.157.15 1194 |
TRES IMPORTANT : Un seul fichier conf sous /etc/openvpn/
renommer extension .conf en .ovpn pour celui qui n’est pas utilisé
Le fichier contenant log et mot de passe sur 2 lignes
sudo mv protonvpn /etc/openvpn/client/
Modifier la configuration pour la prise en charge log et mot de passe
sudo nano /etc/openvpn/frProtonVpnSecure.conf
Ajouter la ligne suivante en fin de fichier
auth-user-pass protonvpn
On peut tester que tout fonctionne avec systemd :
sudo systemctl start openvpn@frProtonVpnSecure
Statut
déc. 26 20:36:37 cubieboard ovpn-frProtonVpnSecure[7406]: Initialization Sequence Completed
Vérification du tunnel VPN
ip addr
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.8.67/24 brd 10.8.8.255 scope global tun0
valid_lft forever preferred_lft forever
inet6 fe80::1ece:f513:d9d5:29c0/64 scope link flags 800
valid_lft forever preferred_lft forever
si tun0 est bien dans la liste, paramétrer le démarrage automatique de la configuration vpn (boot startup)
sudo systemctl enable openvpn@frProtonVpnSecure
Les règles NAT
sudo -s
# RAZ tables
iptables -t filter -F
iptables -t nat -F
iptables -t filter -X
iptables -t nat -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
# HotSpot Wifi VPN
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE -m comment --comment "Activer MASQUERADE sur tunnel vpn tun0"
iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT -m comment --comment "Accepter les connexions etablies"
iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT -m comment --comment "Accepter les nouvelles connexions venant interface wlan0"
Sauvegarder les règles
sudo iptables-save > /etc/iptables/rules.v4
L’accès internet se fera à travers le tunnel protonVPN
NOTE : Pour désactiver openvpn
sudo systemctl disable openvpn@frProtonVpnSecure
sudo systemctl disable openvpn
Point d’accès Multiple
https://static.cinay.pw/vpn/2017/12/29/Multiple-Point-Acces-Wifi-et-OpenVPN.html
Adresse Mac
Adresse mac : 00:0f:00:3b:2e:31
Modifiée : 02:0f:00:3b:2e:30
Interfaces
Modification des interfaces wifi /etc/network/interfaces
# interface wifi
allow-hotplug wlan0
iface wlan0 inet static
address 10.6.0.1
netmask 255.255.255.0
pre-up ip link set dev wlan0 address 02:0f:00:3b:2e:30
# interface wifi wirtuelle
allow-hotplug wlan0_0
iface wlan0_0 inet static
address 10.6.1.1
netmask 255.255.255.0
HostApd
Modification /etc/hostapd/hostapd.conf
interface=wlan0
driver=nl80211
ssid=YanCubieOne
hw_mode=g
channel=5
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
bssid=02:0f:00:3b:2e:30
wpa=2
wpa_passphrase=passphrase_YanCubieOne
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
# Réseau Two
bss=wlan0_0
ssid=YanCubieTwo
wpa=2
wpa_passphrase=passphrase_YanCubieTwo
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
DnsMasq
Modification /etc/dnsmasq.conf
no-resolv
interface=wlan0
interface=wlan0_0
dhcp-range=10.6.0.3,10.6.0.20,12h
dhcp-range=10.6.1.3,10.6.1.20,12h
server=208.67.222.222 # OpenDNS
server=208.67.222.220