방화벽 규칙 생성기
iptables, UFW, macOS pf, Windows Defender 방화벽 규칙을 생성합니다.
일반 포트
이 도구 소개
방화벽은 모든 네트워크 시스템의 첫 번째 방어선으로, 컴퓨터로 들어오고 나가는 네트워크 트래픽을 제어합니다. 이 도구는 Linux(iptables, UFW, nftables), macOS(pf), Windows Defender를 포함한 여러 플랫폼에서 방화벽을 구성하기 위한 올바른 명령 구문을 생성하는 데 도움이 됩니다. 각 플랫폼의 복잡한 구문을 외우는 대신 원하는 작업(포트 허용, IP 차단, 특정 서브넷에서 SSH 허용)을 지정하면 시스템에 맞춘 즉시 실행 가능한 명령이 생성됩니다.
시스템 관리자, 서버를 설정하는 개발자, 보안에 관심 있는 사용자들은 이 생성기를 사용하여 규칙을 빠르게 작성하고 시행착오를 피합니다. VPS 강화, 홈 랩 보호, 스테이징 환경 잠금 등 실행 전 규칙 구문이 올바른지 확인합니다. 각 플랫폼은 다른 명령 형식과 플래그 규칙을 사용하므로, 이 도구는 문서 간 컨텍스트 전환의 번거로움을 없앱니다.
자주 묻는 질문
코드 구현
#!/usr/bin/env python3
"""Firewall rule generator — outputs iptables and UFW commands."""
def iptables_allow(port: int, protocol: str = "tcp", source: str = None) -> str:
src = f"-s {source} " if source else ""
return f"sudo iptables -A INPUT {src}-p {protocol} --dport {port} -j ACCEPT"
def iptables_block(port: int = None, source: str = None, protocol: str = "tcp") -> str:
parts = ["sudo iptables -I INPUT"]
if source:
parts.append(f"-s {source}")
if port:
parts.extend([f"-p {protocol}", f"--dport {port}"])
parts.append("-j DROP")
return " ".join(parts)
def ufw_allow(port: int, protocol: str = "tcp", source: str = None) -> str:
if source:
return f"sudo ufw allow from {source} to any port {port} proto {protocol}"
return f"sudo ufw allow {port}/{protocol}"
def ufw_deny(port: int = None, source: str = None) -> str:
if source and not port:
return f"sudo ufw deny from {source}"
if port:
return f"sudo ufw deny {port}/tcp"
return "sudo ufw deny from any"
# Examples
print("=== Allow SSH from specific IP ===")
print(iptables_allow(22, "tcp", "192.168.1.0/24"))
print(ufw_allow(22, "tcp", "192.168.1.0/24"))
print("\n=== Allow HTTP and HTTPS ===")
for port in [80, 443]:
print(iptables_allow(port, "tcp"))
print(ufw_allow(port, "tcp"))
print("\n=== Block IP ===")
print(iptables_block(source="10.0.0.5"))
print(ufw_deny(source="10.0.0.5"))
print("\n=== Save iptables rules (Ubuntu/Debian) ===")
print("sudo netfilter-persistent save")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.