From 7fa98548ee3aac08d135c5f01bd0907df47e5e33 Mon Sep 17 00:00:00 2001 From: choibk Date: Mon, 9 Feb 2026 13:12:57 +0000 Subject: [PATCH] Add gemini_mikrotik_wireguard_ --- gemini_mikrotik_wireguard_ | 245 +++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 gemini_mikrotik_wireguard_ diff --git a/gemini_mikrotik_wireguard_ b/gemini_mikrotik_wireguard_ new file mode 100644 index 0000000..4f3fb00 --- /dev/null +++ b/gemini_mikrotik_wireguard_ @@ -0,0 +1,245 @@ +오늘 +mikrotik router os에서 초기 셑팅 스크립트를 rsc 파일로 만들어줘 +좋습니다! MikroTik RouterOS에서 초기 설정을 자동화하려면 .rsc 스크립트 파일을 작성해두면 편리합니다. 아래는 기본적인 초기 셋팅 예시 스크립트입니다. 네트워크 환경에 맞게 IP, DNS, 인터페이스 이름 등을 수정해서 사용하시면 됩니다. + +rsc +# 기본 초기 설정 스크립트 예시 + +# 호스트네임 설정 +/system identity set name="MyRouter" + +# 관리자 계정 비밀번호 변경 +/user set [find name=admin] password="StrongPassword123" + +# WAN 인터페이스 이름 변경 (예: ether1 → WAN) +/interface ethernet set [find default-name=ether1] name=WAN + +# LAN 인터페이스 이름 변경 (예: ether2 → LAN) +/interface ethernet set [find default-name=ether2] name=LAN + +# LAN IP 주소 설정 +/ip address add address=192.168.88.1/24 interface=LAN + +# DHCP 서버 설정 +/ip pool add name=dhcp_pool ranges=192.168.88.10-192.168.88.100 +/ip dhcp-server add name=dhcp1 interface=LAN address-pool=dhcp_pool lease-time=1d +/ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=192.168.88.1 + +# DNS 설정 +/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes + +# NAT 설정 (LAN → WAN 인터넷 공유) +/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade + +# 기본 방화벽 규칙 (필요시 추가) +/ip firewall filter add chain=input connection-state=established,related action=accept +/ip firewall filter add chain=input connection-state=invalid action=drop +/ip firewall filter add chain=input in-interface=WAN action=drop + +# 로그 설정 (필요시) +/system logging add topics=firewall action=memory +설명 +호스트네임: 라우터 이름을 지정합니다. + +관리자 비밀번호: 반드시 강력한 비밀번호로 변경하세요. + +인터페이스 이름 변경: 관리 편의를 위해 WAN/LAN 이름을 지정합니다. + +LAN IP/DHCP: 내부 네트워크용 IP와 DHCP 서버를 설정합니다. + +DNS: 구글(8.8.8.8)과 Cloudflare(1.1.1.1) DNS를 사용하도록 설정했습니다. + +NAT: LAN → WAN 트래픽을 인터넷으로 공유합니다. + +방화벽: 기본적인 보안 규칙을 추가했습니다. + +혹시 이 스크립트를 가정용 공유기 초기 설정 용도로 쓰실 건가요, 아니면 기업/사무실 네트워크 환경에 맞춘 좀 더 복잡한 설정(예: VLAN, VPN, QoS 등)이 필요하신가요? + +mikrotik router os에서 ether1,ether2,ether3,ether4의 포트가 있고, wireguard를 써서 외부에서 접속하여 내부의 192.168.1.44 ip주소에 접속하기 위해서는 어떻게 설정을 해야하는지 rsc 파일로 작성해줘 +좋습니다! ether1~ether4 포트가 있고, WireGuard를 통해 외부에서 접속하여 내부의 특정 IP(192.168.1.44)에 접근할 수 있도록 하는 기본 .rsc 설정 예시를 작성해드릴게요. + +아래 스크립트는 ether1을 WAN, ether2~ether4를 LAN으로 가정하고, WireGuard VPN을 설정하여 외부 클라이언트가 접속하면 내부 IP 192.168.1.44로 포트포워딩 되도록 구성한 예시입니다. + +rsc +# 호스트네임 설정 +/system identity set name="WG-Router" + +# 인터페이스 이름 변경 +/interface ethernet set [find default-name=ether1] name=WAN +/interface ethernet set [find default-name=ether2] name=LAN1 +/interface ethernet set [find default-name=ether3] name=LAN2 +/interface ethernet set [find default-name=ether4] name=LAN3 + +# LAN IP 주소 설정 +/ip address add address=192.168.1.1/24 interface=LAN1 +/ip address add address=192.168.1.1/24 interface=LAN2 +/ip address add address=192.168.1.1/24 interface=LAN3 + +# DHCP 서버 설정 (LAN1 기준) +/ip pool add name=dhcp_pool ranges=192.168.1.10-192.168.1.100 +/ip dhcp-server add name=dhcp1 interface=LAN1 address-pool=dhcp_pool lease-time=1d +/ip dhcp-server network add address=192.168.1.0/24 gateway=192.168.1.1 dns-server=192.168.1.1 + +# DNS 설정 +/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes + +# NAT 설정 (LAN → WAN 인터넷 공유) +/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade + +# WireGuard 인터페이스 생성 +/interface wireguard add name=wg0 listen-port=51820 private-key="서버프라이빗키" + +# WireGuard 서버 IP 설정 +/ip address add address=10.10.10.1/24 interface=wg0 + +# WireGuard 피어 추가 (외부 클라이언트) +# 클라이언트 퍼블릭키와 Allowed Address는 클라이언트 설정에 맞게 수정 +/interface wireguard peers add interface=wg0 public-key="클라이언트퍼블릭키" allowed-address=10.10.10.2/32 + +# 방화벽 규칙 (WireGuard 허용) +/ip firewall filter add chain=input action=accept protocol=udp dst-port=51820 in-interface=WAN + +# 내부 특정 IP(192.168.1.44)로 포트포워딩 (예: TCP 3389 원격데스크톱) +/ip firewall nat add chain=dstnat action=dst-nat protocol=tcp dst-port=3389 in-interface=wg0 to-addresses=192.168.1.44 to-ports=3389 + +# 기본 방화벽 규칙 +/ip firewall filter add chain=input connection-state=established,related action=accept +/ip firewall filter add chain=input connection-state=invalid action=drop +/ip firewall filter add chain=input in-interface=WAN action=drop +핵심 설명 +WireGuard 인터페이스(wg0): VPN 서버 역할을 하며, 외부 클라이언트가 접속합니다. + +VPN IP 대역(10.10.10.0/24): VPN 전용 네트워크를 구성합니다. + +포트포워딩 규칙: WireGuard로 들어온 트래픽을 내부 IP 192.168.1.44로 전달합니다. + +방화벽 규칙: WAN에서 WireGuard 포트(51820/UDP)를 허용하고, 나머지는 차단합니다. + +👉 질문: 외부에서 접속 시 특정 서비스 포트(예: RDP 3389, 웹서버 80/443)만 열어두실 건가요, 아니면 WireGuard VPN을 통해 전체 내부 네트워크(192.168.1.0/24)에 접근 가능하게 하실 계획인가요? + +상기조건에서 포트포워딩 말고 라우팅 개념으로 접근해서 rsc파일 작성해 줄래? +좋습니다! 이번에는 포트포워딩 대신 라우팅 개념으로 WireGuard를 설정하여 외부 클라이언트가 VPN을 통해 내부 네트워크(192.168.1.0/24)에 직접 접근할 수 있도록 하는 .rsc 예시를 작성해드릴게요. + +즉, 클라이언트가 WireGuard에 연결되면 192.168.1.44 같은 내부 IP에 바로 접근할 수 있습니다. + +rsc +# 호스트네임 설정 +/system identity set name="WG-Router" + +# 인터페이스 이름 변경 +/interface ethernet set [find default-name=ether1] name=WAN +/interface ethernet set [find default-name=ether2] name=LAN1 +/interface ethernet set [find default-name=ether3] name=LAN2 +/interface ethernet set [find default-name=ether4] name=LAN3 + +# LAN IP 주소 설정 +/ip address add address=192.168.1.1/24 interface=LAN1 +/ip address add address=192.168.1.1/24 interface=LAN2 +/ip address add address=192.168.1.1/24 interface=LAN3 + +# DHCP 서버 설정 (LAN1 기준) +/ip pool add name=dhcp_pool ranges=192.168.1.10-192.168.1.100 +/ip dhcp-server add name=dhcp1 interface=LAN1 address-pool=dhcp_pool lease-time=1d +/ip dhcp-server network add address=192.168.1.0/24 gateway=192.168.1.1 dns-server=192.168.1.1 + +# DNS 설정 +/ip dns set servers=8.8.8.8,1.1.1.1 allow-remote-requests=yes + +# NAT 설정 (LAN → WAN 인터넷 공유) +/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade + +# WireGuard 인터페이스 생성 +/interface wireguard add name=wg0 listen-port=51820 private-key="서버프라이빗키" + +# WireGuard 서버 IP 설정 (VPN 전용 네트워크) +/ip address add address=10.10.10.1/24 interface=wg0 + +# WireGuard 피어 추가 (외부 클라이언트) +/interface wireguard peers add interface=wg0 public-key="클라이언트퍼블릭키" allowed-address=10.10.10.2/32 + +# 방화벽 규칙 (WireGuard 허용) +/ip firewall filter add chain=input action=accept protocol=udp dst-port=51820 in-interface=WAN + +# 라우팅 설정: VPN 클라이언트가 내부 네트워크(192.168.1.0/24)에 접근 가능하도록 +/ip route add dst-address=192.168.1.0/24 gateway=wg0 + +# 기본 방화벽 규칙 +/ip firewall filter add chain=input connection-state=established,related action=accept +/ip firewall filter add chain=input connection-state=invalid action=drop +/ip firewall filter add chain=input in-interface=WAN action=drop +핵심 설명 +WireGuard 인터페이스(wg0): VPN 서버 역할을 하며, 외부 클라이언트가 접속합니다. + +VPN 네트워크(10.10.10.0/24): 클라이언트에게 할당되는 IP 대역입니다. + +라우팅 규칙: 10.10.10.0/24 네트워크에서 들어온 트래픽을 내부 네트워크 192.168.1.0/24로 라우팅합니다. 따라서 클라이언트는 192.168.1.44 같은 내부 IP에 직접 접근 가능합니다. + +포트포워딩 불필요: VPN 연결 후 내부 네트워크가 그대로 보이므로, 특정 IP/포트에 직접 접근할 수 있습니다. + +👉 여기서 선택지가 있습니다: + +클라이언트가 VPN 연결 시 전체 내부 네트워크(192.168.1.0/24)를 접근 가능하게 할지, + +아니면 특정 IP(192.168.1.44)만 접근 가능하게 제한할지. + +원하시는 방식에 따라 방화벽 규칙을 조금 더 세밀하게 조정할 수 있습니다. +혹시 원하시는 게 전체 네트워크 접근인가요, 아니면 192.168.1.44만 접근 허용인가요? + +라우팅 설정을 해도 내부 네트워크 접속이 안되는데? +내부 네트워크로 라우팅이 안 되는 경우는 몇 가지 흔한 원인이 있습니다. WireGuard는 단순히 터널 인터페이스를 만들어줄 뿐이고, 실제로 내부 네트워크로 접근하려면 클라이언트와 서버 양쪽 모두 올바른 라우팅과 방화벽 설정이 필요합니다. + +체크리스트 🔧 +서버 측 라우팅 + +MikroTik에서 192.168.1.0/24 네트워크를 WireGuard 인터페이스(wg0)로 광고해야 합니다. + +예시: + +rsc +/interface wireguard peers set [find public-key="클라이언트퍼블릭키"] allowed-address=10.10.10.2/32,192.168.1.0/24 +→ 이렇게 하면 클라이언트가 VPN을 통해 내부 네트워크로 라우팅할 수 있습니다. + +클라이언트 측 라우팅 + +클라이언트 WireGuard 설정에서 AllowedIPs = 192.168.1.0/24 를 반드시 지정해야 합니다. + +그렇지 않으면 클라이언트가 내부 네트워크로 패킷을 보내지 않습니다. + +방화벽 규칙 + +MikroTik 방화벽에서 wg0 인터페이스에서 들어오는 트래픽이 LAN으로 전달되도록 허용해야 합니다. + +예시: + +rsc +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN1 +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN2 +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN3 +NAT 설정 확인 + +단순 라우팅을 원한다면 NAT 규칙이 wg0 트래픽을 변환하지 않도록 주의해야 합니다. + +필요하다면 srcnat 규칙에서 wg0를 제외시켜야 합니다: + +rsc +/ip firewall nat add chain=srcnat out-interface=WAN action=masquerade +# wg0 → LAN 트래픽은 NAT 불필요 +수정된 .rsc 예시 (라우팅 기반 접근) +rsc +# WireGuard 인터페이스 +/interface wireguard add name=wg0 listen-port=51820 private-key="서버프라이빗키" +/ip address add address=10.10.10.1/24 interface=wg0 + +# WireGuard 피어 (클라이언트) +/interface wireguard peers add interface=wg0 public-key="클라이언트퍼블릭키" allowed-address=10.10.10.2/32,192.168.1.0/24 + +# 방화벽 규칙 (VPN → LAN 허용) +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN1 +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN2 +/ip firewall filter add chain=forward action=accept in-interface=wg0 out-interface=LAN3 + +# WireGuard 포트 허용 +/ip firewall filter add chain=input action=accept protocol=udp dst-port=51820 in-interface=WAN +👉 핵심은 서버에서 피어 Allowed-Address에 내부 네트워크(192.168.1.0/24)를 포함시키고, 클라이언트 설정에서도 AllowedIPs에 동일하게 지정해야 한다는 점입니다. + +혹시 클라이언트 쪽 설정 파일(wg0.conf)도 같이 확인해드릴까요? WireGuard는 양쪽 설정이 맞아야 라우팅이 정상 동작합니다. \ No newline at end of file