while(<>) {
chomp;
if ( /set\spolicy\sid\s(\d+)\s(from|name\s\"[^"]+\")?\sfrom/ ) { $id = $1; push ( @{ $id_policy{$id}}, $_ ); next; }
push ( @{$id_policy{$id}}, $_ ) if $id
}
for my $id ( keys %id_policy ) {
foreach (@{ $id_policy{$id} }) {
if ( /set\spolicy\sid\s(\d+)\s(from|name\s\"[^"]+\"\sfrom)\s\"Untrust\"\sto\s"DMZ/ ) {
# ?????????
}
}
}
####
input
set policy id 155 from "Trust" to "Untrust" "**** Users" "Safe Boot Servers" "ANY" nat src permit
set policy id 155
exit
set policy id 150 from "DMZ" to "Untrust" "**** Zone1" "Postini" "SMTP" nat src permit log
set policy id 150
set src-address "**** Zone2"
set src-address "***** Farm Servers"
set src-address "**** Zones"
set log session-init
exit
set policy id 154 from "Trust" to "DMZ" "*** - **** DB" "****" "Oracle - 1521" permit
set policy id 154
exit
set policy id 157 from "Untrust" to "Trust" "Postini" "MIP(194.82.***.***)" "SMTP" permit
set policy id 157
exit
set policy id 162 from "DMZ" to "Trust" "*****" "****_DEV Database server" "HTTP" permit
set policy id 162
exit
set policy id 163 name "mail-relay.**** => OUTBOUND" from "Trust" to "Untrust" "Mail-Relay" "Postini" "SMTP" nat src dip-id 5 permit
set policy id 163
exit
####
set policy id 148 from "Untrust" to "DMZ" "Any" "MIP(194.82.***.180)" "HTTP" permit
set policy id 148 application "HTTP"
set policy id 148
exit