MikroTik VPN istifadəçisi həddindən çox yerə çatır: bir host, bir portla məhdudlaşdırın
PPP profili verilən tunel ünvanını ünvan siyahısına sala bilər və bir jump zənciri drop-dan əvvəl tək bir host və porta icazə verə bilər.
Tunel qalxır, giriş uğurlu olur və şəbəkədəki hər host cavab verir. Bu pozulmuş VPN deyil; bu, icazə modeli olmayan VPN-dir. RouterOS hesabı yoxlayır və sonra paketlərini hər kəsin paketləri kimi yönləndirir, buna görə məhdudiyyəti firewall təmin etməlidir. Girişi pozmadan bu məhdudiyyəti əlavə etmək bütün işdir.
Doğrulama icazənin başladığı yerdə bitir
PPP sessiyası qalxdıqdan sonra müştəridən gələn paketlər hər hansı digər interfeysin trafiki kimi forward zəncirinə daxil olur. Əgər router-in forward siyasəti icazəvericidirsə, konsultant girişdə həmin icazəvericiliyi miras alır. Hesab heç vaxt əhatə dairəsi daşımırdı, buna görə hesabda dəyişdiriləcək bir şey yoxdur. Qaydalar dəsti işçilər üçün yazılmışdı və yeni sessiya sadəcə ona qoşuldu.
Nəyisə yazmadan əvvəl sorğunun hansı yola aid olduğunu yoxlayın. Router-in arxasındakı hostlara trafik forward-dan keçir, router-in özünə, winbox və SSH daxil olmaqla, gedən trafik isə input-dan keçir. Yalnız forward-ı əhatə edən dairə cihazı eyni müştəriyə açıq qoyur.
Hər iki zəncir qərar tələb edir, hətta qərar input-u bağlı saxlamaq olsa belə. Bu seçim giriş sorğusuna aid olmalıdır, sonradan düşünülən bir şeyə deyil.
Sessiyanı adlı siyahıya bağlayın
PPP profili verdiyi ünvanı sessiya başlayanda adlı ünvan siyahısına yerləşdirə bilər. Bu, keçici tunel ünvanını firewall-un adla uyğunlaşdıra biləcəyi bir şeyə çevirir və giriş sessiya bitəndə yox olur. Sonra hesab əhatə dairəsini ünvanı sərt kodlayan qaydadan deyil, profilindən miras alır.
Əvvəlcə profili yaradın, sonra secret-i ona açıq şəkildə bağlayın. Hələ də default profilə baxan secret ilkin problemi təkrar yaradır.
Profili və siyahını elə adlandırın ki, vəzifələri aydın olsun və hər ikisinə sorğu istinadı ilə şərh yazın. Bir profil eyni əhatə dairəsi ilə bir neçə nəfərə xidmət edə bilər, siyahı isə hər canlı sessiyanı yenə də müəyyən edir. Bu, hər şəxs üçün bir qaydadan daha ucuz yoxlamadır.
/ppp profile add name=scoped-consultant remote-address=consultant-pool address-list=vpn-scoped-clients
/ppp secret add name=consultant password=... service=ovpn profile=scoped-consultant
İcazə verilən xidməti bir siyahıda qeyd edin
İcazə verilən serveri ünvanı filter qaydasına yerləşdirmək əvəzinə öz ünvan siyahısına qoyun. Siyahı audit edilə, genişləndirilə və şərh oluna bilər və onu istifadə edən qayda server köçəndə dəyişmir. Tək giriş həddindən artıq görünür, ta ki ikinci host gələnə qədər, ki bu adətən olur.
Ünvan dinamik və ya yük balanslı olduqda siyahı ilə, ehtiyatda saxlanılan və sabit olduqda isə birbaşa ünvanla uyğunlaşdırın. Şərh xidməti və sahibini adlandırırsa, hər iki seçim aydın oxunur.
Hostla yanaşı protokolu və portu da məhdudlaşdırın. Port məhdudiyyəti olmayan host üçün accept həmin hostun işlətdiyi hər xidməti açır, bu da əksər giriş sorğularının nəzərdə tutduğundan genişdir. Port icazənin bir hissəsidir, sonradan əlavə olunan detal deyil.
/ip firewall address-list add list=vpn-targets address=10.0.0.10 comment="consultant RDP target"
Jump-u hər hansı geniş accept-dən əvvəl yerləşdirin
Jump qaydası əhatəli siyahıdan gələn yönləndirilmiş trafiki bütün siyasətin üç sətirə sığdığı xüsusi zəncirə göndərir. Birinci qayda icazə verilən təyinatı və portu qəbul edir, sonuncu qayda isə qalan hər şeyi drop edir. Jump forward-da hər hansı geniş accept-dən yuxarıda olmalıdır, çünki əvvəlki accept jump-un heç vaxt işləməməsi deməkdir. Geri dönən trafik axsın deyə established və related accept-i jump-dan əvvəl saxlayın.
Heç bir fasttrack qaydasının bu trafiki əhatəli zəncirdən yan keçirmədiyini yoxlayın. Fasttrack filter yolunun qalanını ötür və fasttrack edilən əhatəli sessiya heç əhatəli deyil.
Router-in öz xidmətləri əlçatmaz olmalıdırsa, qərarı input zənciri üçün təkrarlayın. Yönləndirilmiş trafiki bloklayıb winbox-u açıq qoyan əhatə dairəsi yalnız yarı bitmişdir.
/ip firewall filter
add chain=forward action=jump jump-target=scoped-vpn src-address-list=vpn-scoped-clients
add chain=scoped-vpn action=accept protocol=tcp dst-address-list=vpn-targets dst-port=3389
add chain=scoped-vpn action=drop
Sayğaclarla və siyahı üzvlüyü ilə yoxlayın
Müştəridən icazə verilən xidməti və mütləq uğursuz olmalı olan bir xidməti sınayın, sonra router-də qayda statistikasını oxuyun. Accept və drop sayğacları hər paketin hansı yolu tutduğunu göstərir, bunu müştəri görə bilməz. Canlı sessiya ünvanının əhatəli siyahıda göründüyünü də təsdiqləyin.
Boş siyahı hesabın fərqli profildə olduğunu və ya profilin ünvan siyahısı ayarını itirdiyini bildirir. İcazə verilən xidmət uğursuz olarkən artan drop sayğacı təyinatın və ya portun müştərinin göndərdiyi ilə uyğun gəlmədiyini bildirir.
Nəticə çıxarmazdan əvvəl eyni xidməti həm adla, həm ünvanla sınayın. Ad həllinin uğursuzluğu müştəri tərəfdən bloklanmış porta tam bənzəyir. Sonra profili, hər iki siyahını və tək icazə verilən xidməti giriş sorğusunda qeyd edin ki, növbəti baxış yenidən qurmaq əvəzinə müqayisə etsin.
/ip firewall filter print stats where chain=scoped-vpn
/ip firewall address-list print where list=vpn-scoped-clients