This repository contains a firewall application developed in C#, designed to provide an intuitive graphical user interface (GUI) for managing firewall rules. The application allows users to define custom rules, validate packets, and enhance network security.
- Programming Language: C#
- Framework: .NET Framework (version 4.7 or higher)
- IDE/Compiler: Visual Studio 2019 (or higher)
- Supported Platforms: Windows OS
- Development Environment: Visual Studio 2019 or later (with Windows Forms development workload installed).
- Framework: .NET Framework 4.7 or later.
- Visual Studio 2019
- Visual Studio 2022
- Welcome Form: Entry point of the application. Contains navigation buttons to access tutorials and the main firewall program.
- Tutorial Form: Provides step-by-step instructions for using the firewall and adding custom rules.
- Firewall Form: Central interface for validating packets and managing rules. Allows users to:
- Enter source and destination IP addresses, ports, and protocols.
- View default and custom rules.
- Add custom rules.
- Admin Login Form: Secures access to the custom rule management section.
- Add Custom Rules Form: Enables users to define and add custom rules to the firewall.
- Packet Class: Represents a network packet with attributes such as source/destination IP, port, protocol, and timestamp.
- Rule Class: Defines firewall rules with properties like rule number, IP address, port, protocol, and decision (allow or deny).
- Firewall Class: Manages default and custom rules, and validates packets against these rules. Contains methods for loading rules, adding new ones, and performing packet checks.
- Welcome Page:
- Users start at the Welcome Form, where they can choose to view a tutorial or proceed to the Firewall Form.
- Tutorial Form:
- Provides a guide on how to use the application and manage rules.
- Firewall Form:
- Users input packet details (IP, port, protocol) and validate packets.
- Custom rules can be added after successful admin authentication.
- Default and custom rules can be viewed via pop-up message boxes.
- Admin Login Form:
- Ensures only authorized users can add custom rules.
- Upon successful login, the Add Custom Rules Form is displayed.
- Add Custom Rules Form:
- Allows users to define rule parameters such as IP address, port, protocol, and decision.
- Validates user input and updates the rule set accordingly.
- Authentication: The application uses hardcoded admin credentials instead of a secure database-driven authentication system.
- Batch Operations: Does not support batch processing of packets or rules.
- Database Integration: Custom rules are stored in files instead of a database, limiting scalability and robustness.
- Platform Restriction: The application is Windows-only due to its reliance on Windows Forms.