# macros ext_if="rl0" int_if="sis0" #computers ip slack="10.0.0.1" mac="10.0.0.2" korolis="10.0.0.3" localnet="10.0.0.0/24" #computers ports slack_tcp_port="{ 80, 5555 }" slack_udp_port="{ 5555 }" mac_tcp_port="{ 5100 }" mac_udp_port="{ 5100 }" korolis_tcp_port="{ 1412 }" korolis_udp_port=" { 1412 }" tcp_services="{ 22, 113 }" icmp_types="echoreq" # options set block-policy return set loginterface $ext_if set skip on lo # scrub scrub in ##########queue####### #download altq on sis0 cbq bandwidth 99Mb queue { lan_in, net_in } queue net_in bandwidth 1Mb { slack_in, mac_in, korolis_in } queue slack_in bandwidth 33% cbq(borrow) queue mac_in bandwidth 34% cbq(borrow) queue korolis_in bandwidth 33% cbq(borrow) queue lan_in bandwidth 99Mb cbq(default red borrow) #upload altq on rl0 cbq bandwidth 256Kb queue { std_out, slack_out, mac_out, korolis_out } #std_out stand queue the defualt queue std_out bandwidth 100Kb cbq(default borrow) queue slack_out bandwidth 50Kb cbq(borrow) queue mac_out bandwidth 56Kb cbq(borrow) queue korolis_out bandwidth 50Kb cbq(borrow) # nat/rdr nat on $ext_if from !($ext_if) -> ($ext_if:0) nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021 # .................. port forwarding #slackware port forwanding rdr on $ext_if proto tcp from any to any port $slack_tcp_port -> $slack rdr on $ext_if proto udp from any to any port $slack_udp_port -> $slack #mac port forwarding rdr on $ext_if proto tcp from any to any port $mac_tcp_port -> $mac rdr on $ext_if proto udp from any to any port $mac_udp_port -> $mac #korolis port forwarding rdr on $ext_if proto tcp from any to any port $korolis_tcp_port -> $korolis rdr on $ext_if proto udp from any to any port $korolis_udp_port -> $korolis # filter rules block on { $ext_if, int_if } all antispoof quick for $int_if inet pass out keep state anchor "ftp-proxy/*" ##### PASS IN ON $EXT_IF #imac pass in on $ext_if inet proto tcp from any to $mac port $mac_tcp_port flags S/SA synproxy state pass in on $ext_if inet proto udp from any to $mac port $mac_udp_port #slackware pass in on $ext_if inet proto tcp from any to $slack port $slack_tcp_port flags S/SA synproxy state #korolis pass in on $ext_if inet proto tcp from any to $korolis port $korolis_tcp_port flags S/SA synproxy state pass in on $ext_if inet proto udp from any to $korolis port $korolis_udp_port #####PASS IN ola ta icmp requests pass in inet proto icmp all icmp-type $icmp_types keep state #PASS TCP UDP ICMP requests: LAN -> Internet pass in quick on $int_if ######### PASS OUT ON $EXT_IF #########upload pass out on $ext_if inet proto {tcp, udp} from $ext_if to $slack keep state queue slack_out pass out on $ext_if inet proto {tcp, udp} from $ext_if to $mac keep state queue mac_ out pass out on $ext_if inet proto {tcp, udp} from $ext_if to $korolis keep state queue korolis_out ############ PASS IN ON $INT_IF ########download pass out on $int_if from any to $slack queue slack_in pass out on $int_if from any to $mac queue mac_in pass out on $int_if from any to $korolis queue korolis_in