FedoraRHEL Based

How to Install PPTP VPN on Fedora 43

Install PPTP VPN on Fedora 43

PPTP (Point-to-Point Tunneling Protocol) is still widely used in legacy corporate networks and ISP-provided VPN environments. If you manage a remote team or connect to an older enterprise gateway, you’ve likely hit the wall where Fedora 43 doesn’t support PPTP out of the box. This guide shows you exactly how to install PPTP VPN on Fedora 43 using both the GUI NetworkManager interface and the CLI terminal — fully configured and tested in under 10 minutes.

⚠️ Security Notice: PPTP uses MS-CHAPv2 authentication, which has known cryptographic weaknesses. Use this guide only when PPTP is required by your network environment. For new deployments, consider WireGuard or OpenVPN instead.

Prerequisites

Before starting this PPTP VPN on Fedora 43 setup, confirm you have the following:

  • Fedora 43 installed — verify with cat /etc/fedora-release
  • sudo or root privileges on the system
  • Active internet connection
  • VPN server credentials: hostname/IP, username, and password
  • GNOME desktop (for GUI method)
  • Terminal access (required for both methods)
  • firewalld active — check with sudo systemctl status firewalld

Step 1: Update Your Fedora 43 System

Always update your system before installing new packages. This prevents dependency conflicts and ensures you’re working with the latest package metadata.

sudo dnf update -y

After the update, verify your OS version and kernel:

uname -r
cat /etc/fedora-release

Expected output:

6.x.x-xxx.fc43.x86_64
Fedora release 43 (...)

Step 2: Install Required PPTP Packages

Fedora 43 does not include PPTP support by default. You need three packages from the official Fedora repositories:

  • pptp — the core PPTP client that manages tunnel creation
  • NetworkManager-pptp — integrates PPTP with NetworkManager and nmcli
  • NetworkManager-pptp-gnome — adds PPTP to the GNOME Settings VPN dialog

Install all three in one command:

sudo dnf install pptp NetworkManager-pptp NetworkManager-pptp-gnome -y

Verify the installation succeeded:

rpm -qa | grep pptp

Expected output:

pptp-1.10.0-23.fc43.x86_64
NetworkManager-pptp-1.x.x-x.fc43.x86_64
NetworkManager-pptp-gnome-1.x.x-x.fc43.x86_64

Optionally, install the pptp-setup helper script for guided configuration:

sudo dnf install pptp-setup -y

Step 3: Load Required Kernel Modules

PPTP depends on two kernel modules for connection tracking. Skipping this step is the most common cause of “tunnel connects but no traffic passes” issues.

Load them immediately:

sudo modprobe nf_conntrack_pptp
sudo modprobe nf_conntrack_proto_gre

Make them persistent across reboots:

echo "nf_conntrack_pptp" | sudo tee /etc/modules-load.d/pptp.conf
echo "nf_conntrack_proto_gre" | sudo tee -a /etc/modules-load.d/pptp.conf

Confirm the modules loaded:

lsmod | grep nf_conntrack_pptp

Step 4: Configure Firewall Rules for PPTP

PPTP uses TCP port 1723 for control traffic and GRE protocol 47 for data. Both must be explicitly allowed through firewalld — blocking GRE is the second most common cause of PPTP failures on Fedora.

sudo firewall-cmd --permanent --add-port=1723/tcp
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport 1723 -j ACCEPT
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --permanent --add-masquerade
sudo firewall-cmd --reload

Verify rules are active:

sudo firewall-cmd --list-all

Port 1723/tcp should appear in the ports section. The --add-masquerade flag enables NAT, which routes VPN traffic correctly to the external network.

Step 5: Connect via GUI — NetworkManager (Desktop Method)

This is the recommended method for Fedora 43 desktop users running GNOME.

Open Network Settings

Go to Activities → Settings → Network. Under the VPN section, click the + icon to add a new connection.

Select PPTP as the VPN Type

Select Point-to-Point Tunneling Protocol (PPTP) from the list. If it’s missing, run the following and restart NetworkManager:

sudo dnf install NetworkManager-pptp-gnome -y
sudo systemctl restart NetworkManager

Enter Connection Details

  • Connection Name: e.g., Office-PPTP
  • Gateway: Your VPN server hostname or IP (e.g., vpn.company.com)
  • Username: Your VPN account username
  • Password: Click the 🔑 icon → select “Store the password only for this user”

Configure Advanced Security Settings

Click Advanced and apply these settings to prevent authentication failures:

Authentication:

  • ❌ Uncheck PAP
  • ❌ Uncheck CHAP
  • ✅ Check MSCHAP
  • ✅ Check MSCHAPv2

Security and Compression:

  • ✅ Enable Use Point-to-Point Encryption (MPPE) → set to 128-bit
  • ✅ Enable Allow BSD data compression
  • ✅ Enable Allow Deflate data compression
  • ✅ Enable Use TCP header compression

Click OK, then Add to save the profile. Toggle the VPN to ON in the Network panel to connect.

Step 6: Connect via CLI — Terminal Method (Server / Headless)

This method works perfectly on headless Fedora 43 servers or any SSH session. It gives you full control of the configure PPTP VPN on Fedora 43 process through the command line.

Create the PPP Peer Configuration File

sudo nano /etc/ppp/peers/my-vpn

Add the following — replace YOUR_SERVER_ADDRESS and YOUR_USERNAME with real values:

pty "pptp YOUR_SERVER_ADDRESS --nolaunchpppd"
name YOUR_USERNAME
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam my-vpn

Save with Ctrl+O, Enter, then exit with Ctrl+X.

Add Authentication Credentials

sudo nano /etc/ppp/chap-secrets

Add your credentials using tabs (not spaces) between fields:

YOUR_USERNAME    PPTP    YOUR_PASSWORD    *

Lock down file permissions:

sudo chmod 600 /etc/ppp/chap-secrets
sudo chmod 644 /etc/ppp/peers/my-vpn

Launch the VPN Tunnel

sudo pppd call my-vpn

Verify the ppp0 interface was created:

ip addr show ppp0

Expected output:

3: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1396 qdisc fq_codel state UNKNOWN
    inet 10.x.x.x peer 10.x.x.x/32 scope global ppp0

Monitor live logs:

sudo journalctl -xe | grep pppd

[IMAGE: Screenshot of terminal showing ppp0 interface created and IP address assigned]

Step 7: Verify and Test the VPN Connection

Run these three tests to confirm the tunnel is fully operational, regardless of which method you used:

# Test basic connectivity
ping -c 4 8.8.8.8

# Verify your public IP changed to the VPN server's IP
curl ifconfig.me

# Inspect the routing table for VPN entries
ip route show

If curl ifconfig.me returns your VPN server’s IP address instead of your local ISP IP, your setup is working correctly.

To enable autoconnect on login (GUI method via nmcli):

nmcli connection modify "Office-PPTP" connection.autoconnect yes

Troubleshooting Common PPTP VPN Issues on Fedora 43

Here are the five most common problems encountered during a Linux server tutorial for PPTP — and exactly how to fix each one.

1. PPTP Not Listed in VPN Type Selection

Cause: NetworkManager-pptp-gnome is missing or NetworkManager hasn’t reloaded.

sudo dnf install NetworkManager-pptp-gnome -y
sudo systemctl restart NetworkManager

2. Connection Fails or Hangs on “Authenticating”

Cause: Firewall blocking GRE traffic or kernel modules not loaded.

sudo modprobe nf_conntrack_pptp nf_conntrack_proto_gre
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
sudo firewall-cmd --reload

3. CHAP Authentication Rejected

Cause: PAP or CHAP enabled instead of MSCHAPv2 in Advanced settings.

Fix: Return to Advanced settings → uncheck PAP and CHAP → enable only MSCHAPv2.

4. ppp0 Interface Not Created (CLI Method)

Cause: Syntax error in peer config file or incorrect credentials format.

sudo journalctl -xe | grep pppd
cat /etc/ppp/peers/my-vpn

Ensure fields in /etc/ppp/chap-secrets are separated by tabs, not spaces.

5. VPN Connects but Internet Stops Working

Cause: VPN is overriding your default gateway and capturing all routes.

ip route add default via YOUR_LOCAL_GATEWAY dev eth0 metric 100

Alternatively, disable “Use this connection only for resources on its network” in the IPv4 tab of your VPN profile.

Security Considerations and Modern Alternatives

PPTP is cryptographically broken by current security standards. The MS-CHAPv2 protocol is vulnerable to offline dictionary attacks, and MPPE provides limited protection against a determined attacker. Use it only when your infrastructure mandates it.

For any new deployment, these modern alternatives are available on Fedora 43:

Protocol Security Speed Install Command
WireGuard ✅ Excellent ✅ Very Fast sudo dnf install wireguard-tools
OpenVPN ✅ Excellent ⚠️ Moderate sudo dnf install NetworkManager-openvpn
IPsec/L2TP ✅ Good ✅ Good sudo dnf install NetworkManager-l2tp
PPTP ❌ Weak ✅ Fast sudo dnf install pptp NetworkManager-pptp

If your organization gives you any choice, migrate to WireGuard. It’s kernel-native on Fedora 43, faster than PPTP, and takes the same time to configure.

Congratulations! You have successfully installed PPTP VPN. Thanks for using this tutorial for installing PPTP VPN on Fedora 43 Linux system. For additional help or useful information, we recommend you check the official PPTP VPN website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is a dedicated and highly skilled Linux Systems Administrator with over a decade of progressive experience in designing, deploying, and maintaining enterprise-grade Linux infrastructure. His professional journey began in the telecommunications industry, where early exposure to Unix-based operating systems ignited a deep and enduring passion for open-source technologies and server administration.​ Throughout his career, r00t has demonstrated exceptional proficiency in managing large-scale Linux environments, overseeing more than 300 servers across development, staging, and production platforms while consistently achieving 99.9% system uptime. He holds advanced competencies in Red Hat Enterprise Linux (RHEL), Debian, and Ubuntu distributions, complemented by hands-on expertise in automation tools such as Ansible, Terraform, Bash scripting, and Python.
Back to top button