Skip to content

A simple port knocking application built with Electron, React, and TypeScript.

License

Notifications You must be signed in to change notification settings

iharosi/port-knocking-app

Repository files navigation

Port Knocking App

A user-friendly application that performs port knocking by sending UDP packets to specified ports then checks the status of a TCP port to verify its availability. Built with Electron, React, and TypeScript.

App Screenshot

Installation

Clone the repository:

git clone https://github.com/iharosi/port-knocking-app.git

Install dependencies:

npm install

Development

Run the application:

npm start

Generate macOS electron app

For a standalone Mac distributable generate a Self-Signed Certificate in Keychain Access:

  1. Open Keychain Access from the Utilities folder in your Applications.
  2. From the menu, choose Keychain Access > Certificate Assistant > Create a Certificate.
  3. Follow the prompts to create a self-signed certificate, using settings like:
  • Name: My Self-Signed Certificate
  • Identity Type: Self Signed Root
  • Certificate Type: Code Signing
  • Extension: Key usage, Critical: YES, Usage: Digital Signature
  • Extension: Extended Key usage, Critical: YES, Purpose #1: Code Signing

Add the following line to your .env file:

IDENTITY=My Self-Signed Certificate

Package your application (this will sign the app with your self-signed certificate):

npm run package -- --platform=darwin --arch=universal

Codesign your macOS app:

codesign --deep --force --verify --verbose --sign "My Self-Signed Certificate" ./out/port-knocking-app-darwin-universal/port-knocking-app.app

After signing, it's good practice to verify the signature to ensure it's correctly applied:

codesign -dv --verbose=4 ./out/port-knocking-app-darwin-universal/port-knocking-app.app

Create the app dmg:

npm run make -- --platform=darwin --arch=universal --skip-package

Contributing

Contributions are welcome! Please fork the repository and submit a pull request.

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

About

A simple port knocking application built with Electron, React, and TypeScript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published