투명 방화벽

Written by

in

필요한 일이 있을 수 있어서 시도해 보았다.

OSI 레이어 어쩌고 하는 것은 모르니 넘어간다. 일반인 수준에서 설명하면 랜선 중간에 방화벽 기능을 추가하는 것이다.

처음에는 N100 같은 PC에 pfSense를 이용해 보려고 했다. 돈이 많이 들어가니 이미 가지고 있는 유휴 mikrotik 장비를 이용했다.

apt-cacher-ng을 이용하는 서버를 대상으로 설치했다.

1, 2번 포트를 이용하는 브릿지를 만든다. Hardware Offload를 비활성화 해야 한다. 터미널 명령어로는 hw=no.

/interface bridge
add name=br-transparent
/interface bridge port
add bridge=br-transparent hw=no interface=ether1
add bridge=br-transparent hw=no interface=ether2

fast-path도 같은 이유로 비활성화 한다. 그리고 ip 기반 방화벽을 이용하는 옵션을 설정한다.

/interface bridge settings
set allow-fast-path=no use-ip-firewall=yes

필터를 설정한다.

Ping 차단

/ip firewall filter
add action=drop chain=forward comment="Block Ping Forward" icmp-options=8:0 log-prefix=drop-ping protocol=icmp

SSH 허용, NTP 허용, apt-cacher-ng 허용, HTTPS 허용.

/ip firewall filter
add action=accept chain=forward comment=established,related connection-state=established,related log-prefix=state
add action=accept chain=forward comment="Allow SSH" dst-port=22 log-prefix=ssh protocol=tcp
add action=accept chain=forward comment="Allow apt-cacher-ng" dst-port=3142 log=yes log-prefix=apt_cacher_ng protocol=tcp
add action=accept chain=forward comment="Allow HTTPS" dst-port=443 log-prefix=HTTPS protocol=tcp
add action=accept chain=forward comment="Allow NTP" dst-port=123 log-prefix=ntp protocol=udp

마지막으로 잡스러운 패킷은 모두 drop

/ip firewall filter
add action=drop chain=forward in-bridge-port=ether1