forked from andonome/lk
		
	add wireguard
This commit is contained in:
		
							
								
								
									
										83
									
								
								networking/wireguard.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								networking/wireguard.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,83 @@ | |||||||
|  | --- | ||||||
|  | title: "wireguard" | ||||||
|  | tags: [ "Documentation", "Networking" ] | ||||||
|  | --- | ||||||
|  | <!-- | ||||||
|  | from  | ||||||
|  | https://engineerworkshop.com/blog/how-to-set-up-wireguard-on-a-raspberry-pi/ | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | ## On Server | ||||||
|  |  | ||||||
|  | Install `wireguard-tools` on the server. | ||||||
|  |  | ||||||
|  | > sudo -i | ||||||
|  |  | ||||||
|  | > cd /etc/wireguard | ||||||
|  |  | ||||||
|  | umask 077 | ||||||
|  |  | ||||||
|  | > wg genkey | tee server_private_key | wg pubkey > server_public_key | ||||||
|  |  | ||||||
|  | > wg genkey | tee client_private_key | wg pubkey > client_public_key | ||||||
|  |  | ||||||
|  |     echo " | ||||||
|  |     [Interface] | ||||||
|  |     Address = 10.0.0.1/24 | ||||||
|  |     SaveConfig = true | ||||||
|  |     PrivateKey = $(cat server_private_key) | ||||||
|  |     ListenPort = 51900 | ||||||
|  |      | ||||||
|  |     PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||||||
|  |     PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE | ||||||
|  |      | ||||||
|  |     [Peer] | ||||||
|  |     PublicKey = $(cat client_public_key) | ||||||
|  |     AllowedIPs = 10.0.0.2/32 | ||||||
|  |     " > /etc/wireguard/wg0.conf | ||||||
|  |  | ||||||
|  | > echo 'net.ipv4.ip_forward=1' > /etc/sysctl.d/wg.conf | ||||||
|  |  | ||||||
|  | > systemctl enable --now wg-quiqck@wg0 | ||||||
|  |  | ||||||
|  | > chown -R root:root /etc/wireguard/ | ||||||
|  |  | ||||||
|  | > chmod -R og-rwx /etc/wireguard/\* | ||||||
|  |  | ||||||
|  | Forward traffic from port 51900 to the server. | ||||||
|  |  | ||||||
|  | ## Client | ||||||
|  |  | ||||||
|  | Be root. | ||||||
|  |  | ||||||
|  | Install `wireguard-tools` on the client. | ||||||
|  |  | ||||||
|  | Copy the client private key and server public key to the server (or just fill in the variables). | ||||||
|  |  | ||||||
|  | > server_ip=*your server's public ip* | ||||||
|  |  | ||||||
|  |     echo " | ||||||
|  |     [Interface] | ||||||
|  |     Address = 10.0.0.2/32 | ||||||
|  |     PrivateKey = $(cat client_private_key) | ||||||
|  |     DNS = 9.9.9.9 | ||||||
|  |      | ||||||
|  |     [Peer] | ||||||
|  |     PublicKey = $(cat server_public_key) | ||||||
|  |     Endpoint = $(echo $server_ip:51900) | ||||||
|  |     AllowedIPs = 0.0.0.0/0, ::/0 | ||||||
|  |     " > /etc/wireguard/wg0-client.conf | ||||||
|  |  | ||||||
|  | > wg-quick up wg0-client | ||||||
|  |  | ||||||
|  | ## Extras | ||||||
|  |  | ||||||
|  | ### Multiple Peers | ||||||
|  |  | ||||||
|  | Add multiple peers by copying the `[peer]` section (they each get called `peer`). | ||||||
|  |  | ||||||
|  | ### Make a QR Code for Mobile Users | ||||||
|  |  | ||||||
|  | Make a standard client configuration, then: | ||||||
|  |  | ||||||
|  | > qrencode -t ansiutf8 < /etc/wireguard/mobile_user.conf | ||||||
		Reference in New Issue
	
	Block a user