Setting up a PPTP VPN on MikroTik RouterOS remains a quick way to provide remote access for administrators, developers, or small teams. While PPTP is not the strongest protocol by modern standards, it is widely supported and simple to deploy for low-risk internal use, lab environments, or compatibility scenarios. This guide walks you through an efficient, step-by-step MikroTik configuration with practical details on PPP profiles, secrets, IP pools, encryption (MPPE), firewall rules, NAT, MTU tuning, and client settings on Windows, macOS, and Linux.
Before you begin — considerations and prerequisites
Before configuring PPTP on MikroTik, verify the following:
- Your RouterOS version is reasonably recent (6.x and early 7.x support PPTP server features). Check compatibility because RouterOS v7+ has evolving PPP support.
- You have administrative access to the router (Winbox, WebFig, or SSH) and a backup of current configuration.
- PPTP is appropriate for your security model. PPTP uses MS-CHAPv2 and MPPE but is generally considered less secure than OpenVPN, WireGuard, or IPSec. Use it only when compatibility or simplicity outweighs security concerns.
- Your public WAN IP or a reachable dynamic DNS name is available. PPTP uses TCP 1723 and a GRE (protocol 47) data channel — ensure your ISP/router path allows GRE.
High-level setup steps
- Create an IP pool for VPN clients.
- Create a PPP profile linking the pool, DNS, and routes.
<li.Add PPP secrets (user accounts) or use RADIUS if needed.
<li.Enable PPTP server and configure MPPE requirements.
<li.Adjust firewall to allow TCP/1723 and GRE and permit VPN client traffic.
<li.Configure NAT or routing for internet access if desired.
<li.Test clients and tune MTU/MRU if fragmentation issues appear.
Step 1 — Create an IP pool for VPN clients
Assign a private subnet specifically for PPTP clients to simplify routing and firewall rules. For example, use 10.10.10.0/24:
Commands:
/ip pool add name=pptp-pool ranges=10.10.10.2-10.10.10.254
This pool provides address assignment to connected PPTP clients via the PPP profile.
Step 2 — Create a PPP profile
The PPP profile defines IP addressing, DNS, and local address for the PPTP interface. Configure DNS to your preferred resolvers and set the local-address to your router’s LAN address or the gateway address for the VPN subnet.
Commands:
/ppp profile add name=pptp-profile local-address=10.10.10.1 remote-address=pptp-pool dns-server=8.8.8.8,8.8.4.4 use-encryption=yes
Notes:
- use-encryption=yes enables MPPE (if negotiated) — important for confidentiality.
- Set local-address to the router IP that will act as the VPN gateway visible to clients.
Step 3 — Add PPP secrets (user accounts)
For small deployments, use local PPP secrets. For production environments, consider RADIUS integration for centralized authentication and accounting.
Commands (example):
/ppp secret add name=alice password=StrongPass123 profile=pptp-profile service=pptp
/ppp secret add name=bob password=AnotherPass456 profile=pptp-profile service=pptp
Each secret ties a username and password to the profile, controlling IP assignment and session settings.
Step 4 — Enable the PPTP server
Enable the server and configure allowed encryption and authentication options.
Commands:
/interface pptp-server server set enabled=yes default-profile=pptp-profile mru=1492 mtu=1492 max-mru=1492 max-mtu=1492
Notes on MTU/MRU:
- PPTP adds overhead (GRE and PPP headers). Using 1492 or lower avoids fragmentation on typical Ethernet links. If you encounter fragmentation, reduce MTU/MRU to 1400 or 1380 and retest.
- Clients must accept the negotiated MTU. Windows usually negotiates correctly; some devices require manual MTU adjustments.
Step 5 — Firewall: allow PPTP and secure traffic
You must allow TCP 1723 and GRE (IP protocol 47) from the internet to the router, while still protecting the rest of the network. Use connection tracking where possible and restrict source IPs if you have static client addresses.
Commands (basic example):
/ip firewall filter add chain=input protocol=tcp dst-port=1723 action=accept comment=”Allow PPTP control”
/ip firewall filter add chain=input protocol=gre action=accept comment=”Allow GRE data”
/ip firewall filter add chain=input connection-state=established,related action=accept
/ip firewall filter add chain=input connection-state=invalid action=drop
Security tips:
- Place the PPTP accept rules above generic drop rules.
- Limit source addresses if possible (e.g., company IP ranges) and log suspicious attempts.
- Monitor /log and /ppp active sessions for brute-force patterns; consider fail2ban-style scripts using RouterOS scripting.
Step 6 — NAT and routing for internet access
If VPN clients should access the internet through the router, configure masquerade on the WAN interface:
Commands:
/ip firewall nat add chain=srcnat src-address=10.10.10.0/24 out-interface= action=masquerade
Replace <WAN-IF> with the actual WAN interface name (ether1, wlan1, etc.).
If clients need access to internal subnets, ensure the LAN firewall accepts traffic from the VPN subnet or add explicit allow rules:
/ip firewall filter add chain=forward src-address=10.10.10.0/24 dst-address=192.168.1.0/24 action=accept
Step 7 — Client configuration (Windows, macOS, Linux)
General client tips:
- Use the router’s public IP or DDNS name as the server address.
- Ensure the client allows MPPE or encryption; most modern OS defaults support it.
- If unable to connect, verify GRE is not blocked by intermediate devices (some NATs/ISPs block GRE).
Windows
Create a new VPN connection: Network > VPN > Add a VPN connection. Select PPTP as the VPN type, enter username and password, and under Security settings choose MS-CHAP v2 and enable encryption (MPPE).
macOS
System Preferences > Network > + > Interface: VPN > VPN Type: PPTP (older macOS versions; newer versions may remove PPTP due to security). Enter server address and credentials. Enable “Send all traffic over VPN” if you require internet routing through the tunnel.
Linux (NetworkManager)
Install network-manager-pptp plugin, then add a new VPN using PPTP, set authentication to MSCHAPv2, and optionally enable MPPE encryption. On Debian/Ubuntu: sudo apt install network-manager-pptp, then configure via GUI or nmcli.
Troubleshooting common issues
Connection fails to establish:
- Check if TCP/1723 and GRE pass through your WAN and any upstream NAT. Use packet sniffers or ISP support if GRE is blocked.
- Verify PPP secret credentials and ensure service=pptp is set.
- Inspect logs: /log print where message~”pptp” and /ppp active.
MPPE negotiation fails or no encryption:
- Ensure use-encryption=yes in the PPP profile and client supports MPPE.
- MS-CHAPv2 is required for MPPE; older authentication methods may prevent encryption.
Routing or DNS issues for clients:
- Confirm the VPN profile provides DNS servers and correct default gateway (local-address on the profile acts as gateway).
- If only internal resources are required, push routes using route entries or instruct clients to use split-tunneling.
Performance or fragmentation issues:
- Lower MTU/MRU on server and client (e.g., 1400) to avoid fragmentation, especially if PPPoE sits upstream.
Advanced configuration notes
RADIUS integration: Use /radius settings and add radius server entries to offload authentication and accounting to a central server such as FreeRADIUS.
Scripts and automation: Monitor failed attempts and dynamically block IPs using RouterOS scripts triggered by log messages. Use /system script and scheduler to implement basic intrusion prevention.
Accounting and session control: PPP profiles support session timeout, rate-limiting (simple queues), and address lists. For example, set session-timeout or integrate with RADIUS attributes for bandwidth limits.
Security recap
- PPTP is convenient but has well-known weaknesses. Avoid using it for sensitive traffic over untrusted networks unless protected by an additional layer (e.g., IPsec tunnel over PPTP, though that is uncommon).
- Prefer stronger protocols (WireGuard, IPSec IKEv2, OpenVPN) for production and public-facing services.
- Harden RouterOS: strong passwords, updated RouterOS, logging, and firewall rules to reduce exposure to brute force.
Conclusion — MikroTik makes PPTP deployment straightforward for compatibility-focused scenarios. By carefully configuring IP pools, PPP profiles, secrets, firewall rules, NAT, and client parameters — and by monitoring and tuning MTU and encryption — you can provide reliable remote access for administrative or legacy client needs. Remember to weigh PPTP’s convenience against its security limitations and consider migrating to stronger VPN technologies where possible.
For more detailed guides, configuration examples, and VPN service options, visit Dedicated-IP-VPN at https://dedicated-ip-vpn.com/.