Skip to content

macOS NAT Manager v1.0.0

Latest

Choose a tag to compare

@scttfrdmn scttfrdmn released this 08 Sep 04:37

Changelog

All notable changes to macOS NAT Manager will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Homebrew tap distribution (scttfrdmn/macos-nat-manager)
  • Integration with macos-askpass for automated testing
  • Comprehensive security testing framework
  • Enhanced integration tests requiring root privileges
  • Complete dependency management via Homebrew

Changed

  • Refactored ASKPASS implementation to use external macos-askpass project
  • Improved testing architecture with separate unit and integration test suites
  • Updated documentation with Homebrew installation instructions
  • Enhanced GoReleaser configuration for automated releases

Security

  • Added security vulnerability scanning for dependencies
  • Implemented input validation and sanitization tests
  • Added privilege escalation prevention checks
  • Enhanced configuration file security validation

[1.0.0] - TBD

Added

  • Interactive Terminal User Interface (TUI) with bubbletea
  • Full command-line interface with cobra
  • True NAT functionality using pfctl (not bridging)
  • Network interface management and selection
  • YAML-based configuration with validation
  • Real-time connection and device monitoring
  • Automatic bridge interface creation and cleanup
  • DNS forwarding and resolution
  • DHCP server integration with dnsmasq
  • Comprehensive error handling and validation
  • Cross-architecture support (Intel and Apple Silicon)
  • Shell completion support (bash, zsh, fish)
  • Professional logging and debugging features

Features

  • True NAT: Actual address translation, not transparent bridging
  • Privacy: Complete network isolation - internal devices hidden from upstream
  • 802.1x Compatible: Appears as single device to enterprise networks
  • Monitoring: Real-time connection tracking and device discovery
  • Configuration: Persistent YAML configuration with validation
  • Automation: Full CLI support for scripts and automation
  • Security: Input validation, privilege management, clean teardown

Dependencies

  • macOS: 12.0+ (Monterey or later)
  • Go: 1.21+ for building from source
  • dnsmasq: DHCP server functionality
  • macos-askpass: Automated sudo authentication for testing
  • pfctl: Built into macOS (packet filter control)

Installation Methods

  • Homebrew: brew install scttfrdmn/macos-nat-manager/nat-manager
  • Direct Binary: Download from GitHub releases
  • Source: go install github.com/scttfrdmn/macos-nat-manager/cmd/nat-manager@latest

Usage Examples

# Interactive mode
sudo nat-manager

# CLI mode
sudo nat-manager start --external en0 --internal bridge100 --network 192.168.100

# Monitor connections
sudo nat-manager status

# Clean shutdown
sudo nat-manager stop

[0.1.0] - Development

Added

  • Initial project structure
  • Core NAT functionality proof of concept
  • Basic pfctl integration
  • Configuration framework foundation