Salut!
Am urmatoarea problema: am facut un firewall cu pf (il gasiti in fisierul atasat) si realizarea conexiunii pe servicile de ftp si ssh merge groaznic de greu.
Concret, in cazul ssh-ului lucrurile se intampla cam asa:
- ma conectez cu putty sau de pe o alta statie linux
- imi apare imediat promptul pentru introducerea username-ului
- promptul pentru parola apare dupa 3 minute sau cam asa ceva
- dupa ce, in sfarsit, apare promptul pentru parola, totul decurge normal si ca viteza si ca orice altceva.
In cazul ftp-ului, incercarea de conectare dureaza de asemenea cateva minute, dupa care merge, iar viteza de transfer e cea normala
nu inteleg ce se intampla ... cand firewall-ul e scos si sunt active doar regulile de nat, totul merge ok
Multam anticipat
Mircea
PS. fisierul cu regulile pf sunt in fisierul atasat.
#____________________________________________________________________________ #MACROS: variabile folosite de script (interfete, clase, adrese clienti, etc.)
# Interfetele serverului
ext_if="de0"
int_if="de1"
# Ip-urile corespondente interfetelor
int_ip="10.0.0.1"
ext_ip="192.168.16.117"
# Servicii oferite in internet (porturi pe care exista acces pe interfata
ext_if)
servicii_internet = "{ 20, 21, 80, 443 }"
# Servicii la care au acces clientii
servicii_clienti = "{ 20, 21, 80, 443, 53, 135:139 }"
# Servicii pentru administratori
servicii_admin = "{ 20, 21, 80, 443, 53, 135:139, 222, 11324, 10000 }"
#____________________________________________________________________________
#TABLES: similare cu "macros", dar mult mai flexibile pentru adrese numeroase
table <clienti> { 10.0.0.0/24, !10.0.0.1, !10.0.0.2 }
table <admin> { 10.0.0.2 }
#______________________________________________________________________
#OPTIONS: rafineaza executia "pf"-ului. Acestea sunt valorile implicite
#set timeout { interval 10, frag 30 }
#set timeout { tcp.first 120, tcp.opening 30, tcp.established 86400 }
#set timeout { tcp.closing 900, tcp.finwait 45, tcp.closed 90 }
#set timeout { udp.first 60, udp.single 30, udp.multiple 60 }
#set timeout { icmp.first 20, icmp.error 10 }
#set timeout { other.first 60, other.single 30, other.multiple 60 }
#set timeout { adaptive.start 0, adaptive.end 0 }
#set limit { states 10000, frags 5000 }
#set loginterface none
#set optimization normal
#set block-policy drop
#set require-order yes
#set fingerprints "/etc/pf.os"
#_______________________________________________________________________________________
#NORMALIZATIONS: reasambleaza fragmentele si rezolva sau reduce ambiguitatile
traficului
#scrub in all
#__________________________________
#QUEING: controlul latimii de banda
#altq on $ext_if bandwidth 2Mb cbq queue { dflt, developers, marketing }
#queue dflt bandwidth 5% cbq(default)
#queue developers bandwidth 80%
#queue marketing bandwidth 15%
#__________________________
# assign packets to a queue
#pass out on $ext_if from 192.168.0.0/24 to any keep state queue
developers
#pass out on $ext_if from 192.168.1.0/24 to any keep state queue
marketing
#__________________________________________________________________
# TRANSLATIONS: NAT echivalent cu SNAT, RDR echivalent cu DNAT
nat on $ext_if from { <clienti>, <admin> } to any -> $ext_ip
#rdr on $int_if proto { tcp udp } from any to any port 23 -> $int_ip
port 23
#______________________________________________
# FILTERING:
# ACCES CLIENTI
#______________
# Clientii sunt conectati fizic numai pe "INT_IF", prin urmare
pentru
# a-i selecta din toata reteaua numai pe cei cu drept de iesire in
internet:
# BLOCAM TOATE PACHETELE DE INTRARE PE "INT_IF"
# PERMITEM ACCESUL NUMAI DE LA IP-urile CLIENTILOR, dar NUMAI PE
PORTURILE ENUMERATE
block in on $int_if from any to any
pass in on $int_if proto { tcp udp } from <clienti> to any port
$servicii_clienti
pass in on $int_if proto { tcp udp } from <admin> to any port
$servicii_admin
# FILTRAREA SERVICIILOR LA CARE POATE RASPUNDE SERVERUL IN URMA
APELURILOR
# DIN INTERNET
#
_______________________________________________________________________
# BLOCAM TOATE PACHETELE DE INTRARE PE "EXT_IF"
# PERMITEM ACCESUL DE LA TOATE IP-urile, dar NUMAI PE PORTURILE
ENUMERATE
# mentiune!!! ftp-ul merge mai greu cand filtrele sunt active, iar
ssh-ul
# merge doar pana la momentul solicitarii username-ului, dupa care
promptul
# de parola nu mai apare (!?!?!?!?)
block in on $ext_if from any to any
pass in on $ext_if proto { tcp udp } from any to any port
$servicii_internet

