1 of 1

Firewall Manager

The Firewall Manager is an application, currently under development, that hopes to provide a software-driven configurations of the firewalls here at the University of Michigan. As an software development intern, I worked on the backend utilizing multitude of Python libraries, web frameworks, etc.

Yoon Sung Ji

ITS Infrastructure Intern

FastAPI: “FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.7+ based on standard Python type hints”

SQLModel: “SQLModel is a library for interacting with SQL databases from Python code, with Python objects. It is designed to be intuitive, easy to use, highly compatible, and robust”

Aerleon: “Aerleon provides a command line tool and a Python API that will generate configs for multiple firewall platforms from a single platform-agnostic configuration language”

INTERNSHIP

Showcase

FastAPI

Aerleon

SQLModel

Problem

  • Firewall management is currently handled manually by the firewall team here at ITS
    • Receive Ticket
    • Document proposed firewall configuration changes…
    • Execute configuration changes (during Maintenance Window)

Methods & Iterations

Results

  • Good progress with the Firewall Manager
  • Learning Experience:
    • I was able to learn more about web frameworks, Python libraries, and basic coding skills.
      • ex) FastAPI, SQLModel, Pydantic, DB Browser for SQLite, Asyncio, Poetry, Docker, etc.
    • How to learn and utilize open source projects
      • ex) Aerleon

To achieve what was proposed by the infrastructure team, I aided the backend development of the Firewall Manager.

  • Implemented & Edited new/existing VMware API endpoints
    • For VMware’s security policy, security policy rules, virtual machine, etc.
    • Used FastAPI, Pydantic Models, Asyncio
  • Planned & Produced preprocessor prototype for all incoming firewall configuration inputs
    • Used FastAPI
  • Built the foundational structure for the Firewall Manager’s backend security (gatekeeper) that filters all incoming requests
    • Used FastAPI, SQLModel, etc.
  • Miscellaneous: NSX-T Plugin Cleanup, Verify HTTP Methods for existing API endpoints