## 2016/09/15 추가: 격리된 포트가 다른 포트와 통신이 되는 것을 확인하여 격리설정은 다음에 수정하겠습니다. ##
## 2016/09/19 추가 : 격리포트는 /ip route rules에서 설정하여 Layer 3 레벨 격리를 구현하였습니다. ##
격리공간을 만들어 둔 이유는, 직업상 영어메일을 읽어야 할 상황이 있어서 만약을 대비한 격리공간입니다.
이 모든 설정은 winbox GUI로도 커맨드와 똑같은 메뉴를 따라 설정가능합니다만 사진을 왕창 추가하기에는
여러모로 곤란하므로 불친절하더라도 커맨드와 설명만 적어두었습니다.
혹시 이 세팅을 적용하실 경우 일단 현재 세팅을 백업 후에 하시길 권장합니다.
> export verbose file=[적당한 파일이름].rsc
이렇게 하면 라우터의 루트디렉토리에 설정파일이 저장되고, Files탭에서 파일을 볼 수 있으며, 드래그해서
컴퓨터에 간단하게 저장도 가능합니다. 물론 반대도 가능합니다.
이렇게 세팅하면 무선기기는 AP에 접속할 경우 CCR1009로부터 dhcp로 ip를 받아와 인터넷에 연결됩니다.
VLAN을 쓰면 더 간단하고 CPU부하도 적게 할 수도 있을 것 같은데 저는 잘 몰라서 이렇게 설정했습니다.
메인라우터 CCR1009 설정
# 각 포트별 명칭을 알아보기 쉽게 지정하였습니다. 굳이 안해도 됩니다만, 후반 설정에 이름이 영향을 #
# 미치므로 변경하지 않을 경우 포트이름만 etherX로 고쳐쓰시면 됩니다. eth1-4는 스위치그룹이므로 eth1을 #
# 마스터로 지정하였습니다. #
/interface ethernet
set [ find default-name=ether1 ] arp=proxy-arp comment="LAN1 Switch1" name=eth1-LAN1
set [ find default-name=ether2 ] arp=proxy-arp master-port=eth1-LAN1 name=eth2-LAN1
set [ find default-name=ether3 ] arp=proxy-arp master-port=eth1-LAN1 name=eth3-LAN1
set [ find default-name=ether4 ] arp=proxy-arp master-port=eth1-LAN1 name=eth4-LAN1
set [ find default-name=ether5 ] comment=LAN2 name=eth5-LAN2
set [ find default-name=ether6 ] comment="LAN3 RBcAP2n AP" name=eth6-LAN3
set [ find default-name=ether7 ] comment="Isolated sandbox port" name=eth7-LAN4SB
set [ find default-name=ether8 ] arp=proxy-arp comment=WAN name=eth8
set [ find default-name=sfp-sfpplus1 ]comment=SFP
# 각 LAN환경에 설정해 줄 대역을 지정해줍니다. 구체적으로 VPN클라이언트 연결이나 DHCP ip분배 등에 쓰입니다. #
/ip pool
add name=LAN1 ranges=192.168.88.10-192.168.88.49
add name=LAN2 ranges=192.168.89.10-192.168.89.49
add name=LAN3 ranges=192.168.90.10-192.168.90.49
add name=LAN4SB ranges=192.168.91.10-192.168.91.49
# NAT-LAN 환경에서 분배할 DHCP 서버를 구성합니다. 위의 그림에서 설명한 대역을 지정하였습니다. #
# eth1-eth4는 같은 스위치그룹이므로 편하게 쓰고자, eth1을 master로 두고 2,3,4를 slave로 설정하였습니다. #
/ip dhcp-server
add add-arp=yes address-pool=LAN1 disabled=no interface=eth1-LAN1 name=DHCP-LAN1
add add-arp=yes address-pool=LAN2 disabled=no interface=eth5-LAN2 name=DHCP-LAN2
add add-arp=yes address-pool=LAN3 disabled=no interface=eth6-LAN3 name=DHCP-LAN3
add address-pool=LAN4SB disabled=no interface=eth7-LAN4SB name=DHCP-LAN4/ip dhcp-server network
add address=192.168.88.0/24 dns-server=192.168.88.1 gateway=192.168.88.1
add address=192.168.89.0/24 dns-server=192.168.89.1 gateway=192.168.89.1
add address=192.168.90.0/24 dns-server=192.168.90.1 gateway=192.168.90.1
add address=192.168.91.0/24 dns-server=192.168.91.1 gateway=192.168.91.1
# 라우팅 테이블의 룰에서 OSI layer 3레벨 수준(IP)에서 격리포트의 네트워크로 통신 또는#
# 격리포트의 네트워크에서 타 포트로 통신하는 경우를 막았습니다.#
# Layer 2 수준(MAC통신)는 네트워크 대역이 다르므로 자동으로 막혀있습니다. #
/ip route rule
add action=drop disabled=no dst-address=192.168.91.0/24 !interface !routing-mark src-address=192.168.88.0/24
add action=drop disabled=no dst-address=192.168.91.0/24 !interface !routing-mark src-address=192.168.89.0/24
add action=drop disabled=no dst-address=192.168.91.0/24 !interface !routing-mark src-address=192.168.90.0/24
add action=drop disabled=no dst-address=192.168.88.0/24 !interface !routing-mark src-address=192.168.91.0/24
add action=drop disabled=no dst-address=192.168.89.0/24 !interface !routing-mark src-address=192.168.91.0/24
add action=drop disabled=no dst-address=192.168.90.0/24 !interface !routing-mark src-address=192.168.91.0/24
# 각 포트별 NAT 환경의 IP주소대역을 지정합니다 #
/ip address
add address=192.168.88.1/24 interface=eth1-LAN1 network=192.168.88.0
add address=192.168.89.1/24 interface=eth5-LAN2 network=192.168.89.0
add address=192.168.90.1/24 interface=eth7-LAN3 network=192.168.90.0
add address=192.168.91.1/24 interface=eth7-LANSB network=192.168.91.0
# 미크로틱에서 제공하는 라우터보드의 자체 DDNS입니다. 가정에서는 딱히 사용하는 도메인이 없다면 켜두시는 게 여러모로 편리합니다. #
/ip cloud
set ddns-enabled=yes
# DNS 참조주소를 구글 퍼블릭 DNS로 지정합니다. KT나 SKT, LG의 주소로 지정해도 상관없습니다. #
# 주의할 점은 allow-remote-requests를 활성화하면 외부로부터 DNS flood가 심각하게 들어오므로 방화벽에서 tcp/udp 53을 차단해야합니다. #
# 이 예제에서는 뒤에서 서술할 방화벽 설정에서 차단해 두었습니다. #
/ip dns
set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4
# 방화벽을 걸기 전에 여러 대역을 통째로 걸기위한 리스트를 작성했습니다. #
/ip firewall address-list
add address=0.0.0.0/8comment="Self-Identification [RFC 3330]" list=bogons
add address=127.0.0.0/8comment="Loopback [RFC 3330]" list=bogons
add address=169.254.0.0/16comment="Link Local [RFC 3330]" list=bogons
add address=192.168.88.0/24 comment=LANlist=LAN
add address=192.168.91.0/24comment="Isolated Sandbox Ethernet" list=LAN4
add address=192.168.89.0/24 list=LAN
add address=192.168.90.0/24 list=LAN
add address=10.0.0.0/8 list=LAN
# 방화벽 설정입니다. fasttrack 설정과 여러 포트를 열어주고 그 외에는 막았습니다. #
# 참고로 fastpath는 방화벽 필터가 1개라도 있으면 아마 동작하지 않을 겁니다 #
# NAT 라우팅이 되기 이전에 막을 수 있는 것은 raw필터로 막아 CPU에 부담을 덜 주게 하였습니다. #
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related
add action=accept chain=forward connection-state=established,related
add action=accept chain=inpu tconnection-state=established,related
/ip firewall raw
add action=drop chain=prerouting comment="tcp/udp 53 block" dst-port=53 in-interface=eth8 protocol=udp
add action=drop chain=prerouting dst-port=53 protocol=tcp
add action=drop chain=prerouting comment="North Korea block" src-address=175.45.176.0/22
add action=drop chain=prerouting src-address=210.52.109.0/24
add action=drop chain=prerouting comment="LANSB isolation" dst-address-list=LAN4 in-interface-list=LAN src-address-list=LAN
add action=drop chain=prerouting dst-address-list=LAN in-interface-list=LANSB src-address-list=LAN4
add action=drop chain=forward comment="Drop to bogon list" dst-address-list=bogons
add action=accept chain=prerouting comment="Full access to SUPPORT address list" src-address-list=support
add action=drop chain=ICMP comment="Drop to the other ICMPs" protocol=icmp
# ipv6용 방화벽입니다. 특별히 설정을 해두진 않았습니다. #
/ipv6 firewall filter
add action=accept chain=input protocol=255
add action=accept chain=input protocol=igmp
add action=accept chain=input connection-state=""
add action=accept chain=input connection-state=""
add action=passthrough chain=input
add action=accept chain=input comment=ICMPv6 protocol=icmpv6
add action=accept chain=input comment="DHCPv6 client" dst-port=546 in-interface=eth8 protocol=udp
add action=accept chain=forward comment="Accept forward" in-interface=eth8
add action=accept chain=output comment="Accept output"
add action=accept chain=input comment="Router - Allow IPv6 ICMP" protocol=icmpv6
# NAT 마스커레이딩 설정입니다. 각 포트별로 지정해둔 IP대역을 NAT주소변환 해주지 않으면 통신이 안됩니다. #
/ip firewall nat
add action=masquerade chain=srcnat out-interface=eth8 src-address=192.168.88.0/24
add action=masquerade chain=srcnat out-interface=eth8 src-address=192.168.89.0/24
add action=masquerade chain=srcnat out-interface=eth8 src-address=192.168.90.0/24
add action=masquerade chain=srcnat out-interface=eth8 src-address=192.168.91.0/24
# FTP나 irc 서버 등을 운영하지 않으면 꺼둡니다. pptp VPN과 인터넷전화기 (sip)만 열어두었습니다. #
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
# 라우터OS에서 사용하는 서비스 포트입니다. winbox 이외에는 다 막았습니다. #
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
# 라우터의 시간설정 및 시간동기화 설정을 합니다.#
/system clock
set time-zone-name=Asia/Seoul
/system ntp client
set enabled=yes primary-ntp=203.254.163.74
# 어찌보면 대단히 중요합니다. 라우터OS 관리용 접근제어인데, 위의 방화벽단에서 막는 것은 L3/L4 에서 막는 설정이기에 #
# 여전히 L2 (맥주소) 기반 접근은 가능한 상태이므로 반드시 외부로부터 오는 접근은 막아야합니다. #
# 맥 텔넷과 맥 winbox를 무선(eth6)/외부(eth8)로부터 접근을 막습니다. 만약 방화벽에서 eth8 인터페이스를 막으면 #
# 이 설정은 신경쓰지 않아도 괜찮을지도 모르겠습니다. #
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=eth1-LAN1
add interface=eth5-LAN2
add interface=eth7-LAN4SB
add interface=sfp-sfpplus1
add interface=sfp1
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=eth1-LAN1
add interface=eth5-LAN2
add interface=eth7-LAN4SB
add interface=sfp-sfpplus1
add interface=sfp1
CCR1009 하단 RBcAP2n 설정
# 브릿지를 생성하여 ether1과 wlan1을 묶어줍니다. 이 설정은 메인라우터 밑단에서 단순 투명한 AP로서 작동시키기 위해 브릿지로 유선과 무선을 묶습니다. #
# 브릿지이름은 자유롭게 지어도 상관없습니다. #
# 무선이 2.4g, 5g 듀얼 또는 그 이상 여러개일 경우 한 브릿지 포트에 계속 추가해주거나 다른 브릿지로 별도로 설정해도 됩니다. #
/interface bridge
add name=bridge1
/interface bridge port
add bridge=bridge1 interface=ether1
add bridge=bridge1 interface=wlan1
#2.4G wifi 통신의WPA2-AESPSK암호화 프로파일을 설정합니다.[SSID]에 원하는 wifi이름을 입력,[password]에 접속 패스워드를 입력합니다. #
#여기서는 설정하지 않지만 인증서기반 WPA2-EAP는 보다 더 강력한 보안을 제공합니다.
/interface wireless security-profiles
set [ find default=yes ]supplicant-identity=[SSID]
add authentication-types=wpa2-psk eap-methods=""\
mode=dynamic-keys name=wpa2aespsk wpa2-pre-shared-key=[Password]
# 무선라디오의 자잘한 설정을 합니다. 주파수채널과 위에서 설정한 암호화 프로파일 선택 및 송출파워,SSID 비표시 등을 지정합니다. #
# 이 설정은 스펙상 2.4g만 지원하므로 2.4만 설정하며 최근기기들은 대부분 802.11n을 기본지원하므로 n만 쓰도록 했습니다.#
# 손님용 별도의 SSID를 생성할 경우, interface에서 virtual AP를 추가해주고 비슷하게 설정하면 됩니다. #
/interface wireless
set [ find default-name=wlan1 ]band=2ghz-onlyn bridge-mode=disabled \
default-forwarding=no disabled=no frequency=[Channel] hide-ssid=yesmode=\
ap-bridgesecurity-profile=wpa2aespsk ssid=[SSID] tx-power=[Power] \
tx-power-mode=all-rates-fixedwireless-protocol=802.11 wps-mode=disabled
# 관리용 및 게이트웨이 지정을 위해 브릿지로 묶은 인터페이스의 ip를 지정해줍니다. #
/ip address
add address=192.168.90.2/24interface=bridge1 network=192.168.90.0
# DNS주소를메인라우터에서 192.168.90.0/24 서브넷의 게이트웨이 ip인 192.168.90.1로 지정해줍니다. #
# 구글 주소 8.8.8.8로 지정해도 됩니다. #
# 내부IP를 고정시키기 위해 DHCP-client를 활성화하지 않았기에 직접 지정해야 합니다.
# 그 말은 즉, DHCP-client를 활성화하면 이 작업은 넘어가도 됩니다.
/ip dns
set servers=192.168.90.1
# 필요없는 서비스포트를 닫습니다. #
/ip firewall service-port
set h323 disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
# 라우팅 경로를 지정하여 밖으로 통신이 가능하게 합니다. #
# AP에서 중앙 라우터로부터 IP를 받기 위한 DHCP client를 활성화시키지 않았기 때문에 (내부 고정IP로 지정) #
# 라우팅을 직접 설정해야 합니다. AP의 맥주소를 지정하여 고정적으로 IP를 받게하면 이 설정은 필요 없습니다. #
/ip route
Add dst-address=0.0.0.0/0 gateway=192.168.90.1
add dst-address=192.168.90.0/24 gateway=bridge1 pref-src=192.168.90.2
# 관리용텔넷/FTP/웹/ssh/api서비스를 필요에 따라 닫습니다. 저는 Winbox빼고 다 닫았습니다. #
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
# AP의 시간대를 설정합니다. #
/system clock
set time-zone-name=Asia/Seoul
# SNTP클라이언트(인터넷 시간동기화)를 설정합니다. #
/system ntp client
set enabled=yes primary-ntp=203.254.163.74
# 관리용 맥주소기반의 텔넷과 winbox 허용여부 포트를 설정합니다.#
# 손님용 지정이 따로 없다면 메인라우터를 통해 들어오는 것이니 열어두셔도 괜찮습니다.#
# 손님용을 따로 만들겠다면 virtualAP를 하나 만들어 guest용 SSID를 생성하고 해당 virtualAP를 대상에서추가하지 않으면 됩니다.#
/tool mac-server
set [ find default=yes ] disabled=yes
add interface=ethr1
add interface=wlan1
add interface=bridge1
/tool mac-server mac-winbox
set [ find default=yes ] disabled=yes
add interface=ethr1
add interface=wlan1
add interface=bridge1
±×¸²ÀÇ switch´Â ¹ÌÅ©·Îƽ ³»ºÎ¸¦ À̾߱â ÇϽô °ÍÀÎÁö¿ä?
wan¿¡ ´ëÇÑ ¼³Á¤Àº ¾î´À ºÎºÐÀ̸ç, ¿¬°áÀ» ¾î¶»°Ô ÇؾßÇÏ´Â °ÍÀÎÁö¿ä?
(8¹ø¿¡ ¿¬°áÇؼ ¾ÈµÇ°í, 1¹ø¿¡ ¿¬°áÇصµ ¾ÈµÇ³×¿ä.)
ºÎŹµå¸³´Ï´Ù.
/ip dhcp-client add add-default-route=yes use-peer-dns=yes use-peer-ntp=yes disabled=no interface=eth8
±×¸®°í 1-4¹ø Æ÷Æ®°¡ ³»ºÎ¿¡¼ ½ºÀ§Ä¡·Î¼ µ¿ÀÛÇÕ´Ï´Ù.