今年最後のネタとして。
RouterBoardをpppoeのNAT箱として使っていますが、
外部からnmapなどでポートスキャンすると
どのポートをみても「open」になってしまいます。
それだと困るので、
「in-interface」でインターネット側からのコネクションステータス「new」をドロップし、
そのあとにコネクションステータス「established,related,new」を許可してあげます。
で残りは明示的に「action=drop」します。
「pppインターフェイス=pppoe-out」としてます。
iptablesと同じく上から順番に評価されますので、
順番には注意しましょ。
[admin@MikroTik] > ip firewall filter print detail Flags: X - disabled, I - invalid, D - dynamic 0 chain=forward action=accept connection-state=new protocol=tcp dst-address=192.168.1.123 in-interface=pppoe-out dst-port=80 log=no log-prefix="" 1 chain=forward action=drop connection-state=new in-interface=pppoe-out log=no log-prefix="" 2 chain=forward action=accept connection-state=established,related,new log=no log-prefix="" 3 chain=forward action=drop log=no log-prefix=""
内側にサーバがある場合はドロップする前に、
「forward action=accept connection-state=new」してあげればOK。
NAT、ポートマッピングはこんな感じ
[admin@MikroTik] > ip firewall nat print detail Flags: X - disabled, I - invalid, D - dynamic 0 chain=srcnat action=masquerade out-interface=pppoe-out log=no log-prefix="" 1 chain=dstnat action=dst-nat to-addresses=192.168.1.123 to-ports=80 protocol=tcp in-interface=pppoe-out log=no log-prefix=""
まぁ明示的に書かなくても、設定してないところはDrop、Denyされているはずですけど。
*追記
@kometchtech さんありがとうございます!!
もう少しセキュリティーを確保したいなら
[admin@MikroTik] > ip settings print rp-filter: strict tcp-syncookies: yes route-cache: no
を入れたほうが良いらしいです。
https://wiki.mikrotik.com/wiki/Manual:IP/Settings
良いお年を!!