Showing posts with label Ubuntu. Show all posts
Showing posts with label Ubuntu. Show all posts

Tuesday, July 6, 2021

Wireguard on Linux : A basic approach using Ubuntu 20.04 LTS server and client

 We begin with a fresh installation of Ubuntu server 20.04 LTS

Server

  1. Install wireguard
    • sudo apt install wireguard
  2. Generate server and client keys
    • umask 077
    • wg genkey | tee server_private_key | wg pubkey > server_public_key
    • wg genkey | tee client_private_key | wg pubkey > client_public_key
  3. Create server config
    • Create a file wg0.conf in /etc/wireguard/
    • [Interface] Address = 10.199.0.1/24 SaveConfig = true PrivateKey = <insert server_private_key> ListenPort = 51820 [Peer] PublicKey = <insert client_public_key> AllowedIPs = 10.199.0.2/24 <-- it means 254 IPs allowed to connect
    • Note: If you only want 1 IP to connect,change /24 to /3You can change filename from wg0.conf to vpn.conf or whatever name you want
  4. Running the wireguard's service
    • sudo systemctl enable wg-quick@wg0 <-- need to run for the first time only
    • sudo systemctl start wg-quick@wg0
  5. Enable IP forwarding (Applicable for internet-enabled vpn connection. See client's note below)
    • echo 1 > /proc/sys/net/ipv4/ip_forward
    • sudo sysctl -p <-- to make the above change effective without reboot
Client
  1. Install wireguard package
    • sudo apt install wireguard
  2. Create a file in /etc/wireguard called wg0.conf
    • [Interface] Address = 10.199.0.2/24 PrivateKey = <insert client_private_key> DNS = 1.1.1.1 [Peer] PublicKey = <insert server_public_key> Endpoint = <insert vpn_server_address>:51820 AllowedIPs = 10.199.0.0/24 PersistentKeepalive = 60
    • Note: Address parameter is the IP address for the client
      • you can also change the name of the file wg0.conf to something else
      • EndPoint is the wireguard server's IP address above.You can use IP or domain name
      • DNS is the IP of DNS server for the client.
      • *IF* the AllowedIPs is 0.0.0.0/0, it means all the traffic from the client
        • will go through vpn server and if you want the client to be able to go to
        • the internet, you must add this rule in the server:
        • iptables -t nat -A POSTROUTING -s 10.199.0.0/24 -o eth0 -j MASQUERADE or
        • You can put the iptables command above in server's wireguard config as below under [Interface]:
        • PostUp = iptables -t nat -A POSTROUTING -s 10.199.0.0/24 -o eth0 -j MASQUERADE 
  3. Connect the client
    • sudo systemctl enable wg-quick@wg0 <-- run only this time
    • sudo systemctl start wg-quick@wg0
    • Test the connection: ping 10.199.0.1
That'sall there is to it. Hope it is working for you.

Cheers!

PS: Check this out! Easy setup for wireguard : https://github.com/burghardt/easy-wg-quick
            

Saturday, June 24, 2006

Installing Linux on an iMac



What Linux distro is the best for iMac? For a week, by searching with google, I found out that YellowDog is the best. I have to verify it myself by installing one. Before this, I have run Ubuntu Live CD PowerPC Edition to find out whether Linux can be installed on iMac. I couldn't believe my eyes. It was running perfectly. Now it's time to install to hard disk and wipe out the Mac OS 9.

My iMac is a G3 with 60 GB hard drive and Riva 128 is the graphic adapter.


SuSeLinux:~ # cat /proc/cpuinfo
processor : 0
cpu : 745/755
temperature : 27-29 C (uncalibrated)
clock : 400.000000MHz
revision : 50.2 (pvr 0008 3202)
bogomips : 49.79
timebase : 24967326
machine : PowerMac2,2
motherboard : PowerMac2,2 MacRISC2 MacRISC Power Macintosh
detected as : 66 (iMac FireWire)
pmac flags : 00000014
L2 cache : 512K unified
pmac-generation : NewWorld
SuSeLinux:~ #



SuSeLinux:~ # lspci
00:0b.0 Host bridge: Apple Computer Inc. UniNorth AGP
00:10.0 Display controller: ATI Technologies Inc Rage 128 PR/PRO AGP 4x TMDS
0001:10:0b.0 Host bridge: Apple Computer Inc. UniNorth PCI
0001:10:17.0 Class ff00: Apple Computer Inc. KeyLargo Mac I/O (rev 03)
0001:10:18.0 USB Controller: Apple Computer Inc. KeyLargo USB
0001:10:19.0 USB Controller: Apple Computer Inc. KeyLargo USB
0002:20:0b.0 Host bridge: Apple Computer Inc. UniNorth Internal PCI
0002:20:0e.0 FireWire (IEEE 1394): Apple Computer Inc. UniNorth FireWire (rev 01)
0002:20:0f.0 Ethernet controller: Apple Computer Inc. UniNorth GMAC (Sun GEM) (rev 01)
SuSeLinux:~ #



With Ubuntu, to my surprise, the installer couldn't enter X mode. I tweaked the xorg.conf to make it work. I failed. I got no time to tweak a little bit more. I turn to Yellow Dog. The Yellow Dog installer also failed to enter X mode. Lastly, I turned to OpenSuSe. To my relief, it worked. The gui installer had no difficulty to run. After booting, the X worked but the screen was not centered. I tweaked xorg.conf a little bit. It's easy with xvidtune than SaX2. Now the screen looked better. You didn't have to be a rocket scientist to tweak it. :p


The monitor section :

Section "Monitor"
DisplaySize 300 230
HorizSync 60-60
Identifier "Monitor[0]"
ModelName "APPLE IMAC"
Option "DPMS"
VendorName "APP"
VertRefresh 75-117
UseModes "Modes[0]"
EndSection


The modeline section :

Section "Modes"
Identifier "Modes[0]"
Modeline "1024x768" 78.525 1024 1049 1145 1312 768 769 772 800 +hsync +vsync
Modeline "1024x600" 89.40 1024 1088 1200 1376 600 601 604 637
Modeline "1024x600" 88.39 1024 1088 1200 1376 600 601 604 636
Modeline "1024x600" 87.51 1024 1088 1200 1376 600 601 604 636
Modeline "800x600" 69.65 800 848 936 1072 600 601 604 637
Modeline "800x600" 68.86 800 848 936 1072 600 601 604 636
Modeline "800x600" 68.18 800 848 936 1072 600 601 604 636
Modeline "768x576" 66.54 768 816 896 1024 576 577 580 613
Modeline "768x576" 65.80 768 816 896 1024 576 577 580 612
Modeline "768x576" 65.18 768 816 896 1024 576 577 580 612
Modeline "640x480" 50.03 640 680 744 848 480 481 484 513
Modeline "640x480" 49.59 640 680 744 848 480 481 484 513
Modeline "640x480" 49.16 640 680 744 848 480 481 484 513
EndSection


The device section :

Section "Device"
BoardName "Rage 128 PR"
BusID "0:16:0"
Driver "ati"
Identifier "Device[0]"
Screen 0
VendorName "ATI"
Option "AGPMode" "true"
# Option "UseCCEFor2D" "false"
# Option "UseFBDev" "true"
Option "ForcePCIMode" "true"
EndSection


Running Linux on iMac is a wonderful thing. Linux is Linux. Whatever platform it is running, you can turn it to be a server, workstation or desktop. You decide.

Nvidia new hotplug feature on Linux

 If you use nvidia driver for your GPU, you probably wonder why in some config, you can't hotplug your second monitor. You need to reboo...