서론: 중소기업에 전문 방화벽 구성이 더 필요한 이유
디지털 전환이 가속화되는 오늘날, 네트워크 보안은 더 이상 대기업만의 과제가 아닙니다. 중소기업 역시 랜섬웨어, DDoS 공격, 데이터 유출 등 갈수록 복잡해지는 네트워크 위협에 직면해 있습니다. 그러나 많은 중소기업은 제한된 예산 탓에 방화벽의 전문적인 구성은 뒷전으로 미룬 채 기본 규칙에만 의존해 운영하고 있으며, 이는 인터넷이라는 망망대해에서 옷을 벗고 헤엄치는 것과 다름없습니다.
MikroTik RouterOS는 가성비가 매우 뛰어난 라우터 운영체제로, 강력한 방화벽 기능과 유연한 규칙 엔진을 바탕으로 중소기업 네트워크 보안에 이상적인 선택입니다. 이 글에서는 실전 관점에서 MikroTik RouterOS 방화벽의 심층 구성 방법을 체계적으로 설명하여, 네트워크 관리자가 흔들리지 않는 엔터프라이즈급 보안 방어선을 구축하도록 돕고자 합니다.
1. MikroTik 방화벽 아키텍처 완전 분석
MikroTik RouterOS의 방화벽은 Linux 커널의 Netfilter 프레임워크를 기반으로 하지만, 그 설계는 더 구조화되어 있고 사용하기 쉽습니다. 이 아키텍처를 이해하는 것이 제대로 된 구성의 전제 조건입니다.
1.1 세 가지 처리 체인(Chain)
MikroTik 방화벽의 핵심 개념은 “체인(Chain)”이며, 패킷은 라우터를 통과할 때 각기 다른 체인을 거쳐 처리됩니다.
- Input 체인: 라우터 자체를 목적지로 하는 패킷을 처리합니다. 라우터 관리 화면, SSH, API 등에 접근하려는 모든 트래픽이 이 체인을 통과합니다.
- Output 체인: 라우터 자체에서 나가는 패킷을 처리합니다. 라우터가 먼저 시작한 연결(예: DNS 조회, NTP 동기화)이 이 체인을 통과합니다.
- Forward 체인: 라우터를 통과해 전달되는 패킷을 처리합니다. 기업 네트워크에서 가장 중요한 체인으로, 내부망과 외부망 사이의 모든 통신이 이 체인을 지납니다.
1.2 연결 상태 메커니즘
MikroTik 방화벽은 완전한 연결 추적(Connection Tracking) 메커니즘을 지원하며, 이것이 상태 검사 방화벽을 구현하는 기반입니다.
- new: 새 연결의 첫 번째 패킷
- established: 이미 수립된 연결의 후속 패킷
- related: 기존 연결과 연관된 패킷(예: FTP 데이터 연결, ICMP 오류 메시지)
- invalid: 식별할 수 없거나 알려진 어떤 연결에도 속하지 않는 패킷
연결 상태를 이해하는 것은 효율적이면서도 안전한 방화벽 규칙을 작성하는 데 매우 중요합니다. 흔한 보안 실수는 포트 필터링만 신경 쓰고 상태 검사를 놓치는 것으로, 이 경우 공격자가 위조 패킷으로 규칙을 우회할 수 있습니다.
2. 기본 보안 구성: 첫 번째 방어선 구축
2.1 기본 거부 정책
보안의 첫 번째 원칙은 “기본 거부(Default Deny)”, 즉 명시적으로 허용하지 않은 것은 모두 금지하는 것입니다. MikroTik에서는 각 체인의 마지막에 drop-all 규칙을 추가하는 방식으로 구현합니다.
/ip firewall filter add chain=input action=drop comment="Drop all input" add chain=forward action=drop comment="Drop all forward"
중요 안내: 기본 거부 규칙을 추가하기 전에 반드시 필요한 서비스를 먼저 허용해야 합니다. 그렇지 않으면 라우터 밖으로 잠겨 버립니다!
2.2 라우터 자체 보안 보호(Input 체인)
라우터는 네트워크의 핵심이므로 그 보안을 지키는 것이 가장 중요합니다. 다음은 Input 체인의 권장 구성입니다.
/ip firewall filter # 수립된 연결 및 관련 연결 허용 add chain=input action=accept connection-state=established,related comment="Accept established,related" # 유효하지 않은 연결 차단 add chain=input action=drop connection-state=invalid comment="Drop invalid" # ICMP 허용(속도 제한) add chain=input action=accept protocol=icmp limit=5,10:packet comment="Accept ICMP with rate limit" # 내부망에서만 라우터 관리 서비스 접근 허용 add chain=input action=accept src-address=192.168.0.0/16 protocol=tcp dst-port=22,80,443,8291 comment="Accept management from LAN" # 내부망 DNS 요청 허용 add chain=input action=accept src-address=192.168.0.0/16 protocol=udp dst-port=53 comment="Accept DNS from LAN" # 기본 거부 add chain=input action=drop comment="Drop all other input"
이 구성은 내부망에서 오는 관리 요청만 허용하고, 외부에서는 라우터 관리 화면에 직접 접근할 수 없도록 합니다. 8291은 Winbox의 기본 포트이므로 사용하는 관리 도구가 다르다면 그에 맞게 조정하십시오.
2.3 내부망 포워딩 보안(Forward 체인)
Forward 체인은 내부망과 외부망 사이의 모든 통신을 제어합니다. Forward 체인을 올바르게 구성하면 외부 공격을 막을 수 있을 뿐 아니라, 내부망이 침해된 뒤의 횡적 확산도 방지할 수 있습니다.
/ip firewall filter # 수립된 연결 및 관련 연결 허용 add chain=forward action=accept connection-state=established,related comment="Accept established,related" # 유효하지 않은 연결 차단 add chain=forward action=drop connection-state=invalid comment="Drop invalid" # 내부망 아웃바운드 트래픽 허용 add chain=forward action=accept in-interface=bridge-lan out-interface=pppoe-wan comment="Accept LAN to WAN" # DNAT(포트 포워딩) 반환 트래픽 허용 add chain=forward action=accept connection-nat-state=dstnat comment="Accept DNAT" # 기본 거부 add chain=forward action=drop comment="Drop all other forward"
3. 고급 보안 전략: 엔터프라이즈급 보호 구축
3.1 주소 목록(Address List) 동적 관리
MikroTik의 주소 목록 기능은 방화벽의 큰 장점으로, 블랙리스트와 화이트리스트를 동적으로 관리할 수 있습니다. 예약 스크립트와 결합하면 위협 인텔리전스 업데이트를 자동화할 수 있습니다.
/ip firewall address-list add address=10.0.0.0/8 list=BOGON comment="RFC1918" add address=172.16.0.0/12 list=BOGON comment="RFC1918" add address=192.168.0.0/16 list=BOGON comment="RFC1918" add address=0.0.0.0/8 list=BOGON comment="Invalid" /ip firewall filter add chain=forward action=drop src-address-list=BOGON in-interface=pppoe-wan comment="Drop bogon from WAN" add chain=forward action=drop dst-address-list=BOGON out-interface=pppoe-wan comment="Drop bogon to WAN"
이 구성은 외부에서 들어오는 위조 출발지 주소 공격(IP Spoofing)을 차단하며, 이는 많은 DDoS 공격의 기반 수단입니다.
3.2 포트 스캔 방어
공격자는 공격을 시작하기 전에 보통 포트 스캔을 통해 대상이 열어 둔 포트와 서비스를 탐색합니다. MikroTik은 스캔 행위를 탐지해 출발지 주소를 자동으로 차단할 수 있습니다.
/ip firewall filter # 포트 스캔 탐지 및 기록 add chain=input action=add-src-to-address-list psd=21,3s,3,1 address-list=port-scanners address-list-timeout=2w comment="Detect port scanners" # 식별된 스캐너 차단 add chain=input action=drop src-address-list=port-scanners comment="Drop port scanners"
PSD(Port Scan Detection) 파라미터 설명: 21=가중치 임계값, 3s=지연 임계값, 3=낮은 가중치 포트 수, 1=높은 가중치 포트 수. 하나의 출발지가 짧은 시간에 여러 포트로 연결을 시도하면 스캔 행위로 판정되어 자동으로 블랙리스트에 2주간 등록됩니다.
3.3 SYN Flood 방어
SYN Flood는 가장 흔한 DDoS 공격 형태 중 하나입니다. 공격자는 대량의 SYN 패킷을 보내면서 3방향 핸드셰이크를 완료하지 않아 서버의 연결 자원을 고갈시킵니다.
/ip firewall filter # 신규 SYN 연결 속도 제한 add chain=forward action=accept tcp-flags=syn connection-state=new limit=50,10:packet comment="Limit new TCP connections" # 속도를 초과한 SYN 패킷 차단 add chain=forward action=drop tcp-flags=syn connection-state=new comment="Drop excess SYN"
3.4 Layer 7 프로토콜 필터링
MikroTik은 Layer 7 프로토콜 매칭을 지원하여 애플리케이션 계층 특징을 기준으로 트래픽을 필터링할 수 있습니다. 기업 환경에서 업무와 무관한 애플리케이션을 통제하는 데 매우 유용합니다.
/ip firewall layer7-protocol add name=facebook regexp="^.+(facebook.com).*\$" add name=youtube regexp="^.+(youtube.com).*\$" /ip firewall filter add chain=forward action=drop layer7-protocol=facebook comment="Block Facebook" add chain=forward action=drop layer7-protocol=youtube comment="Block YouTube"
주의: Layer 7 필터링은 라우터 CPU에 부하가 크므로, 트래픽이 많은 네트워크에서는 신중하게 사용하거나 특정 대역에만 활성화하는 것을 권장합니다.
4. NAT 및 포트 포워딩 보안 실무
4.1 안전한 포트 포워딩 구성
포트 포워딩(DNAT)은 중소기업이 가장 자주 사용하는 기능 중 하나로, 외부 접속을 내부 서버로 매핑하는 데 사용됩니다. 그러나 부적절한 포트 포워딩 구성은 흔히 보안 취약점의 근원이 됩니다:
/ip firewall nat # 안전한 포트 포워딩 예시: 특정 소스 IP만 접근 허용 add chain=dstnat action=dst-nat to-addresses=192.168.1.100 to-ports=443 \ protocol=tcp dst-port=443 src-address-list=trusted-ips comment="Secure DNAT for web server"
핵심 보안 포인트:
- RDP(3389), SSH(22) 등 관리 포트를 절대 공용 인터넷에 직접 노출하지 마십시오
- 비표준 외부 포트를 표준 내부 포트로 매핑하여 사용하십시오
- src-address-list와 함께 사용하여 접근 출처를 제한하십시오
- 각 DNAT 규칙에 용도를 설명하는 상세한 주석을 추가하십시오
4.2 NAT 루프백(Hairpin NAT)
내부 사용자가 공인 IP를 통해 내부 서비스를 이용해야 할 때는 Hairpin NAT를 구성해야 합니다:
/ip firewall nat add chain=srcnat action=masquerade src-address=192.168.1.0/24 \ dst-address=192.168.1.100 out-interface=bridge-lan comment="Hairpin NAT"
Hairpin NAT 구성 누락은 중소기업 네트워크에서 가장 흔한 문제 중 하나이며, 이로 인해 내부 사용자가 도메인이나 공인 IP로 자사 서비스에 접속하지 못하게 됩니다.
5. 로그와 모니터링: 보안 운영의 초석
5.1 방화벽 로그 구성
로그가 없는 방화벽 구성은 불완전합니다. 적절한 로그 기록은 문제 해결을 도울 뿐만 아니라, 보안 사고를 추적하는 핵심 증거가 됩니다:
/ip firewall filter # 거부된 연결 기록 add chain=input action=log log-prefix="INPUT-DROP" action=drop comment="Log dropped input" add chain=forward action=log log-prefix="FORWARD-DROP" action=drop comment="Log dropped forward" # 의심스러운 활동 기록 add chain=input action=log log-prefix="PORT-SCAN" src-address-list=port-scanners comment="Log port scan activity"
5.2 원격 로그 서버
공격자가 라우터 접근 권한을 얻은 뒤에는 보통 로컬 로그를 삭제하기 때문에, 로그를 원격 서버로 전송하는 것이 모범 사례입니다:
/system logging action add name=remote target=remote remote=192.168.1.200 remote-port=514 /system logging add action=remote topics=firewall add action=remote topics=system,error add action=remote topics=system,warning
5.3 트래픽 모니터링과 경보
MikroTik의 Traffic Flow 기능을 활용하면 트래픽 통계를 분석 시스템으로 전송하여 이상 징후를 탐지할 수 있습니다:
/ip traffic-flow set enabled=yes cache-entries=4k set active-flow-timeout=30m inactive-flow-timeout=15s /ip traffic-flow ipfix set src-address=0.0.0.0 dst-address=192.168.1.200 dst-port=2055
6. 자동화 운영: 보안 정책의 자기 진화
6.1 무차별 대입 공격 자동 차단
SSH 무차별 대입 공격은 라우터를 겨냥한 가장 흔한 공격 중 하나입니다. 다음 구성은 무차별 대입 시도를 자동으로 식별하고 차단할 수 있습니다:
/ip firewall filter # 1단계: 실패한 시도 기록 add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 \ src-address-list=ssh-stage1 address-list=ssh-stage2 address-list-timeout=30s \ connection-state=new comment="SSH brute force stage 2" add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 \ src-address-list=ssh-stage2 address-list=ssh-blacklist address-list-timeout=7d \ connection-state=new comment="SSH brute force blacklist" # 1단계 기록 add chain=input action=add-src-to-address-list protocol=tcp dst-port=22 \ address-list=ssh-stage1 address-list-timeout=30s connection-state=new \ comment="SSH brute force stage 1" # 블랙리스트 차단 add chain=input action=drop src-address-list=ssh-blacklist comment="Drop SSH brute forcers"
이 3단계 탐지 메커니즘의 원리는 다음과 같습니다. 첫 SSH 연결 시도 시 stage1 목록에 추가되고(30초 타임아웃), 30초 이내 두 번째 시도는 stage2로 들어가며, 그다음 시도에서는 블랙리스트에 추가되어 7일간 차단됩니다. 정상 사용자가 가끔 비밀번호를 잘못 입력해도 잘못 차단되지 않지만, 무차별 대입 도구의 고속 시도는 신속하게 차단됩니다.
6.2 정기 보안 스크립트
Scheduler 기능과 결합하면 정기적인 보안 점검과 정책 업데이트를 구현할 수 있습니다:
/system scheduler
add name=daily-security-check interval=24h on-event="/system script run security-check" \
start-time=03:00:00
/system script
add name=security-check source={
:log info "Running daily security check..."
/ip firewall address-list remove [find list=port-scanners timeout-active=no]
:log info "Cleaned expired address list entries"
}
7. Siwenlide: 귀사의 IT 운영 올인원 파트너
중소기업에게 네트워크 보안의 복잡성은 내부 IT 팀의 역량 범위를 넘어서는 경우가 많습니다. 전담 네트워크 보안 엔지니어를 고용하는 비용은 높지만, 보안을 소홀히 하는 대가는 더 큽니다. Siwenlide(Beijing Siwen Lide Technology & Trade Co., Ltd.)가 선보인 ‘IT 올인원’ 3-in-1 통합 운영 서비스는 바로 이 모순을 해결하기 위해 탄생했습니다.
당사의 서비스는 세 가지 핵심 영역을 아우릅니다:
- 인터넷 접속: 안정적이고 신뢰할 수 있는 엔터프라이즈급 네트워크 연결을 제공하여 비즈니스의 연속 운영을 보장합니다. 대역폭 설계부터 링크 이중화, MikroTik에서 화웨이 장비에 이르는 심층 구성까지 풍부한 실전 경험을 갖추고 있습니다.
- 무료 네트워크 장비: 계약 즉시 전문가급 네트워크 장비를 무상으로 제공하여 대규모 하드웨어 구매 자금을 일시에 투입할 필요가 없습니다. 장비는 라우터, 스위치, 방화벽 등 전체 네트워크 인프라를 포함합니다.
- 무중단 운영: 7×24시간 모니터링과 대응, 전문 팀이 상시 대기합니다. 앞서 언급한 방화벽 규칙 구성, 보안 정책 최적화, 취약점 패치까지 모두 저희에게 맡기실 수 있습니다.
이 글에서 보여 드린 것처럼, 완성도 높은 방화벽 구성은 기초적인 기본 차단 정책부터 고급 자동 방어 메커니즘까지 여러 계층이 협력하여 작동합니다. Siwenlide의 운영 팀은 이러한 기술을 보유하고 있을 뿐만 아니라, 더 중요하게는 귀사의 실제 비즈니스 요구에 맞춰 가장 적합한 보안 정책을 맞춤 설계하여 귀사의 네트워크 보안이 깊이와 온기를 모두 갖추도록 합니다.
네트워크 보안은 일회성 거래가 아니라 지속적인 공방의 게임입니다. Siwenlide를 선택하여 전문 팀이 귀사의 디지털 전환을 든든히 뒷받침하도록 하십시오. 더 자세한 내용은 www.siwenlide.com을 방문하시거나 전화로 문의해 주십시오.






