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.
Clone the repository:
git clone https://github.com/iharosi/port-knocking-app.git
Install dependencies:
npm install
Run the application:
npm start
For a standalone Mac distributable generate a Self-Signed Certificate in Keychain Access:
- Open Keychain Access from the
Utilities
folder in yourApplications
. - From the menu, choose
Keychain Access
>Certificate Assistant
>Create a Certificate
. - 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
Contributions are welcome! Please fork the repository and submit a pull request.
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.