Junos router, routing-engine koruma

Filtreleri yazar iken, interface ip adreslerini, sunucu bilgilerini v.b dinamik olarak güncellemek ve en az sayıda giriş ile yazmak için appy-path komutu kullanılmıştır. Bakınız : Junos üzerinde dinamik prefix filtre yazmak

Temel olarak Hardening Junos Devices kullanılmıştır.

LDP, BFD için ek yapılmış, radius kısmı tacacs olarak şekilde değiştirilmiştir.

Junos üzerinde kullanılan diğer servisler eklenmelidir. Biraz gevşek olarak yazılmıştır. İstenirse daha sıkı filtreler kullanılabilir (LDP discovery için ayrı, LDP targetten session establishment için ayrı v.s).

prefix-list bgp-neighbors {
apply-path “protocols bgp group <*> neighbor <*.*>”;
}
prefix-list ipv4-interfaces {
apply-path “interfaces <*> unit <*> family inet address <*>”;
}

prefix-list ospf-all-routers {
224.0.0.5/32;
224.0.0.6/32;
}
prefix-list ntp-servers {
apply-path “system ntp server <*>”;
}
prefix-list snmp-servers {
apply-path “snmp community <*> clients <*>”;
}
prefix-list mgmt-nets {
### Tüm yönetim ip addreslerini eklenmeli.
}
prefix-list tacplus-servers {
apply-path “system tacplus-server <*>”;
}

prefix-list ipv4-loopbacks {
### ipv4 igp loopback adresler bloğu eklenmeli. Burada genellikle cihazlar üzerinde tanımlanan loopback interfaceleri /32 olarak yazılır ve ipv4-interfaces prefix listine dinamik olarak /32 olarak girerler. Fakat diğer cihazların loopback interfaceleri için /24 ihtiyaç vardır. Dolayısı ile bu blok manual olarak /24 olacak şekilde eklenmelidir.
}

policer limit-10m {
if-exceeding {
bandwidth-limit 10m;
burst-size-limit 625k;
}
then discard;
}
policer limit-3m {
if-exceeding {
bandwidth-limit 3m;
burst-size-limit 15k;
}
then discard;
}
policer limit-1m {
if-exceeding {
bandwidth-limit 1m;
burst-size-limit 15k;
}
then discard;
}
policer limit-100k {
if-exceeding {
bandwidth-limit 100k;
burst-size-limit 15k;
}
then discard;
}
policer limit-32k {
if-exceeding {
bandwidth-limit 32k;
burst-size-limit 15k;
}
then discard;
}

filter protect-re {
term synflood-protect {
from {
source-prefix-list {
bgp-neighbors;
mgmt-nets;
}
protocol tcp;
tcp-flags “(syn & !ack) | fin | rst”;
}
then {
policer limit-100k;
accept;
}
}
term dent-telnet {
from {
port telnet;
}
then {
reject;
}
}
term allow-bgp {
from {
prefix-list {
bgp-neighbors;
}
protocol tcp;
destination-port bgp;
}
then accept;
}
term allow-ldp {
from {
source-prefix-list {
ipv4-interfaces;
ipv4-loopbacks;
}
protocol [ udp tcp ];
port 646;
}
then accept;
}
term allow-bfd {
from {
source-prefix-list {
ipv4-interfaces;
}
destination-prefix-list {
ipv4-interfaces;
}
protocol [ tcp udp ];
port [ 3784 3785 ];
}
then accept;
}
term allow-ospf {
from {
source-prefix-list {
ipv4-interfaces;
}
destination-prefix-list {
ospf-all-routers;
ipv4-interfaces;
}
protocol ospf;
}
then accept;
}
term allow-ssh {
from {
prefix-list {
mgmt-nets;
}
protocol tcp;
destination-port ssh;
}
then {
policer limit-10m;
accept;
}
}
term allow-snmp {
from {
prefix-list {
snmp-servers;
}
protocol udp;
destination-port 161;
}
then {
policer limit-1m;
accept;
}
}
term allow-ntp {
from {
prefix-list {
ntp-servers;
localhost;
}
protocol udp;
destination-port ntp;
}
then {
policer limit-32k;
accept;
}
}
term allow-tacplus {
from {
prefix-list {
tacplus-servers;
}
protocol tcp;
source-port 49;
}
then {
policer limit-32k;
accept;
}
}
term icmp-frags {
from {
is-fragment;
protocol icmp;
}
then {
syslog;
discard;
}
}
term allow-icmp {
from {
protocol icmp;
icmp-type [ echo-request echo-reply unreachable time-exceeded ];
}
then {
policer limit-1m;
accept;
}
}
term allow-traceroute {
from {
protocol udp;
destination-port 33434-33523;
}
then {
policer limit-1m;
accept;
}
}
term tcp-established {
from {
protocol tcp;
source-port [ ssh bgp ];
tcp-established;
}
then {
policer limit-10m;
accept;
}
}
term default-deny {
then {
log;
syslog;
discard;
}
}
}

Leave a Reply