Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Captive portal da farklı dns kullanan bilgisayarlarda login gelmemesi (çözüldü)

    Scheduled Pinned Locked Moved Turkish
    41 Posts 11 Posters 23.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      magmaHSS
      last edited by

      Merhabalar,

      Çoğu yerde MikroTik kullanıyorum.

      Mikrotikte mantık nasıl işliyor bilmiyorum ama

      bağlanan cihazın(bilgisayarın) ip adresi, ağ maskesi, ağ geçidi ve dns adresi ne olursa olsun login ekranı geliyor ve login olunca internete girişi sağlıyor.

      Ama nasıl olduğunu anlamış edilim. Sonuçta mikrotik 'in içindeki yazılım da bir çeşit *nix türevi.

      Saygılar,

      Beyin Bedava!

      1 Reply Last reply Reply Quote 0
      • S
        seker
        last edited by

        @mbunal:

        ama işte merak. diğer hotspot cihazlarda pfsense deki bu durum nasıl? ne kullanıyorlarda hallediyorlar farklı dns kullanma işini?

        herkese kolay gele,
        Barış.

        Diğerleri nasıl hallediyor konusuna vakıf değilim ancak pfSense de nasıl işlediğini anlatabilirim… pfSense captiveportal "layer 3" (detaylar için OSI Referans modeline bakınız) seviyesinde, yani tcp/ip seviyesinde işlem yapıyor ve başlamış olan TCP/IP oturumunun (detaylar için RFC793'ü okuyabilirsiniz) arasına giriyor. Bu nedenle bir istemcinin karşılama ekranı görebilmesi için öncelikle bir tcp/ip oturumu başlatması gerekiyor. Bunun içinde öncelikle IP adresi, ağ geçidi, DNS sunucusu almış olması ve DNS sunucuna ulaşabiliyor olması gerekiyor...

        Siz web tarayıcınıza web adresi yazdığınızda, TCP/IP oturumunun başlaması için öncelikle yazdığınız alan adının IP adresine çevilirlmesi (detaylar için RFC1034) gerekiyor. Yazdığınız alan adı IP adresine çevirildikten sonra bilgisayarınız ilgili IP adresine bağlantı kurmaya çalşır. Eğer bu noktada ağ geçidiniz captiveportal çalıştıran bir pfSense ise karşınıza meşhur karşılama ekranımız gelir ve kimlik doğrulama yapmanızı ister... Kullanıcı adı ve parolanızı doğru yazdığınızda sizin IP/MAC adresiniz için TCP/IP seviyesindeki her şey yasak kuralını kaldırır ve siz internete erşim kazanırsınız...

        Şimdi bu senaryoda biraz geriye gidelim... Web tarayıcısına adresi yazdığımızda eğer DNS sorgusuna cevap alıp yazdığımız adresin IP karşılığınu bulamazsak TCP/IP oturumu başlatılmaz. TCP/IP oturumu başlamadığı için pfSense'in araya girebileceği bir durum ortaya çıkmaz. Çünkü web tarayıcınız ben adresi çözemedim der ve olduğu yerde kalır. Hiç bir yere gitmeye çalışmaz.. Hiç bir yere gitmeyen bir tarayıcıyı farklı bir yere yönlendiremezsiniz... :)

        DNS yanlış yada erişilemez olduğunda karşınıza çıkan sorunun nedeni budur. Bu yüzden karşılama ekranı gösterebilmek için DNS erişilebilri olmalıdır ve pfSense gateway konumunda bulunmalıdır... Bu yüzden siz kullanıcının girdiği DNS

        @MuratRaci:

        Mikrotikte mantık nasıl işliyor bilmiyorum ama

        bağlanan cihazın(bilgisayarın) ip adresi, ağ maskesi, ağ geçidi ve dns adresi ne olursa olsun login ekranı geliyor ve login olunca internete girişi sağlıyor.

        Ama nasıl olduğunu anlamış edilim. Sonuçta mikrotik 'in içindeki yazılım da bir çeşit *nix türevi.

        Saygılar,

        Mikrotik nasıl çalışıyor bende bilmiyorum. Eğer dediğiniz gibi ise DNS protokolü kafadan izinli geliyor olabilir veya şu an bilmediğim başka bir yöntem kullanıyor olabilirler. IP adresi, ağ maskesi ne olursa olsun dediğinize göre büyük olasılıkla "Layer 2" seviyesinde işlem yapıyor olabilir varsayımını çıkartıyorum… Uygun bir cihaz ve yeterli zamanı bulursak biraz kurcalar ne yaptığını anlamaya çalışabiliriz...

        Aklınıza gelen tüm ağ cihazlarının (router, modem ya da her neyse işte) , android, blackberry ve iphone gibi telefonların, ipod, ipad, mac gibi cihazların, akıllı resim çerçevelerinin ve hatta kısmen de olsa windows işletim sisteminin içinde de Unix türevleri çalışıyor :) Özetle "Bize Her Yer Unix" :)

        Saygılarımla...

        1 Reply Last reply Reply Quote 0
        • M
          magmaHSS
          last edited by

          Teşekkürler,

          :)

          @seker:

          @mbunal:

          ama işte merak. diğer hotspot cihazlarda pfsense deki bu durum nasıl? ne kullanıyorlarda hallediyorlar farklı dns kullanma işini?

          herkese kolay gele,
          Barış.

          Diğerleri nasıl hallediyor konusuna vakıf değilim ancak pfSense de nasıl işlediğini anlatabilirim… pfSense captiveportal "layer 3" (detaylar için OSI Referans modeline bakınız) seviyesinde, yani tcp/ip seviyesinde işlem yapıyor ve başlamış olan TCP/IP oturumunun (detaylar için RFC793'ü okuyabilirsiniz) arasına giriyor. Bu nedenle bir istemcinin karşılama ekranı görebilmesi için öncelikle bir tcp/ip oturumu başlatması gerekiyor. Bunun içinde öncelikle IP adresi, ağ geçidi, DNS sunucusu almış olması ve DNS sunucuna ulaşabiliyor olması gerekiyor...

          Siz web tarayıcınıza web adresi yazdığınızda, TCP/IP oturumunun başlaması için öncelikle yazdığınız alan adının IP adresine çevilirlmesi (detaylar için RFC1034) gerekiyor. Yazdığınız alan adı IP adresine çevirildikten sonra bilgisayarınız ilgili IP adresine bağlantı kurmaya çalşır. Eğer bu noktada ağ geçidiniz captiveportal çalıştıran bir pfSense ise karşınıza meşhur karşılama ekranımız gelir ve kimlik doğrulama yapmanızı ister... Kullanıcı adı ve parolanızı doğru yazdığınızda sizin IP/MAC adresiniz için TCP/IP seviyesindeki her şey yasak kuralını kaldırır ve siz internete erşim kazanırsınız...

          Şimdi bu senaryoda biraz geriye gidelim... Web tarayıcısına adresi yazdığımızda eğer DNS sorgusuna cevap alıp yazdığımız adresin IP karşılığınu bulamazsak TCP/IP oturumu başlatılmaz. TCP/IP oturumu başlamadığı için pfSense'in araya girebileceği bir durum ortaya çıkmaz. Çünkü web tarayıcınız ben adresi çözemedim der ve olduğu yerde kalır. Hiç bir yere gitmeye çalışmaz.. Hiç bir yere gitmeyen bir tarayıcıyı farklı bir yere yönlendiremezsiniz... :)

          DNS yanlış yada erişilemez olduğunda karşınıza çıkan sorunun nedeni budur. Bu yüzden karşılama ekranı gösterebilmek için DNS erişilebilri olmalıdır ve pfSense gateway konumunda bulunmalıdır... Bu yüzden siz kullanıcının girdiği DNS

          @MuratRaci:

          Mikrotikte mantık nasıl işliyor bilmiyorum ama

          bağlanan cihazın(bilgisayarın) ip adresi, ağ maskesi, ağ geçidi ve dns adresi ne olursa olsun login ekranı geliyor ve login olunca internete girişi sağlıyor.

          Ama nasıl olduğunu anlamış edilim. Sonuçta mikrotik 'in içindeki yazılım da bir çeşit *nix türevi.

          Saygılar,

          Mikrotik nasıl çalışıyor bende bilmiyorum. Eğer dediğiniz gibi ise DNS protokolü kafadan izinli geliyor olabilir veya şu an bilmediğim başka bir yöntem kullanıyor olabilirler. IP adresi, ağ maskesi ne olursa olsun dediğinize göre büyük olasılıkla "Layer 2" seviyesinde işlem yapıyor olabilir varsayımını çıkartıyorum… Uygun bir cihaz ve yeterli zamanı bulursak biraz kurcalar ne yaptığını anlamaya çalışabiliriz...

          Aklınıza gelen tüm ağ cihazlarının (router, modem ya da her neyse işte) , android, blackberry ve iphone gibi telefonların, ipod, ipad, mac gibi cihazların, akıllı resim çerçevelerinin ve hatta kısmen de olsa windows işletim sisteminin içinde de Unix türevleri çalışıyor :) Özetle "Bize Her Yer Unix" :)

          Saygılarımla...

          Beyin Bedava!

          1 Reply Last reply Reply Quote 0
          • A
            asbirim
            last edited by

            port 53 tunnel acigini kapatmak icin soyle bir yontem deneyebilirsiniz.
            1- herhangi bir interface istediginiz bir vlan olusturun.
            2- bu vlan icin static ip tanimlamasi yapin.
            3- ardindan  nat -> port forward yardimi ile dns yonlendirmesi yapmak her interface icin bir kural olusturacagiz.
              a- interface secin (orn. LAN)
              b- source icin networf girin veya secin.(orn. LAN subet)
              c- destination any secin
              d- port olarak DNS (53) secin
              e- redirect ip icin ayarlamis oldugunuz vlan in static ipsini yazin
              f- redirect port icin DNS (53) secin ve kaydedin

            dns yonlendirmesi yapmak istediginiz her interface icin tekrarlayin redirect ip ve port ayni olacak sekilde.

            yardimci olmasi icin resimleri ekliyorum.

            butun diger alanlari oldugu gibi birakin.

            bunlari yaptiktan sonra captive portal da 53 portuna surekli izin verebilirsiniz. artik sadece sizin general setup da ayarladiginiz dnslere sorgu yapilacak. isterseniz dns forwarder dan domain engelleme dahi yapabilirsiniz.

            ![vlan add.png](/public/imported_attachments/1/vlan add.png)
            ![vlan add.png_thumb](/public/imported_attachments/1/vlan add.png_thumb)
            ![vlan assign.png](/public/imported_attachments/1/vlan assign.png)
            ![vlan assign.png_thumb](/public/imported_attachments/1/vlan assign.png_thumb)
            ![interface assign.png](/public/imported_attachments/1/interface assign.png)
            ![interface assign.png_thumb](/public/imported_attachments/1/interface assign.png_thumb)
            ![nat 1.png](/public/imported_attachments/1/nat 1.png)
            ![nat 1.png_thumb](/public/imported_attachments/1/nat 1.png_thumb)
            ![nat 2.png](/public/imported_attachments/1/nat 2.png)
            ![nat 2.png_thumb](/public/imported_attachments/1/nat 2.png_thumb)
            ![nat list.png](/public/imported_attachments/1/nat list.png)
            ![nat list.png_thumb](/public/imported_attachments/1/nat list.png_thumb)

            1 Reply Last reply Reply Quote 0
            • M
              mbunal
              last edited by

              selam asbirim.

              bu yazdıkların 53 nolu portu dışarıya direk açmadan yapılıyor değil mi? birde denediğini ve herhangi bir sorunla karşılaşmadığınıı varsayıyorum.

              @asbirim:

              port 53 tunnel acigini kapatmak icin soyle bir yontem deneyebilirsiniz.
              1- herhangi bir interface istediginiz bir vlan olusturun.
              2- bu vlan icin static ip tanimlamasi yapin.
              3- ardindan  nat -> port forward yardimi ile dns yonlendirmesi yapmak her interface icin bir kural olusturacagiz.
                a- interface secin (orn. LAN)
                b- source icin networf girin veya secin.(orn. LAN subet)
                c- destination any secin
                d- port olarak DNS (53) secin
                e- redirect ip icin ayarlamis oldugunuz vlan in static ipsini yazin
                f- redirect port icin DNS (53) secin ve kaydedin

              dns yonlendirmesi yapmak istediginiz her interface icin tekrarlayin redirect ip ve port ayni olacak sekilde.

              yardimci olmasi icin resimleri ekliyorum.

              butun diger alanlari oldugu gibi birakin.

              bunlari yaptiktan sonra captive portal da 53 portuna surekli izin verebilirsiniz. artik sadece sizin general setup da ayarladiginiz dnslere sorgu yapilacak. isterseniz dns forwarder dan domain engelleme dahi yapabilirsiniz.

              1 Reply Last reply Reply Quote 0
              • A
                asbirim
                last edited by

                hayır daha once bahsettigim yontemdeki gibi 53 portunu ipfw den actiginizi varsayıiyorum. ama 53 portunu natladigimizdan aslinda disariya degil sizin acmis oldugunuz sanal interface e yonleniyor ve pfsense cevap veriyor. bu durumda port tunnel gibi bir acik soz konusu olmuyor. test amacli denedigim tum sistemlerde nslookup sonuclarindan ve states tablosundan calistigini gozlemledim. ornek olarak dns forwarder da bir entry girip nat yonlendirmesini yaptiktan sonra
                nslookup - 8.8.8.8 veya baska bir dns e girdiginiz entry sorguladiginizda pfsense de ki entry nin ip gelecektir. bu da demektir ki 53 portu aslina verilen ip e degil nat yontemi ile sorguyu gene pfsense e yapmaktadir.

                @mbunal:

                selam asbirim.

                bu yazdıkların 53 nolu portu dışarıya direk açmadan yapılıyor değil mi? birde denediğini ve herhangi bir sorunla karşılaşmadığınıı varsayıyorum.

                1 Reply Last reply Reply Quote 0
                • M
                  mbunal
                  last edited by

                  Ellerine sağlık kardeş.

                  @asbirim:

                  hayır daha once bahsettigim yontemdeki gibi 53 portunu ipfw den actiginizi varsayıiyorum. ama 53 portunu natladigimizdan aslinda disariya degil sizin acmis oldugunuz sanal interface e yonleniyor ve pfsense cevap veriyor. bu durumda port tunnel gibi bir acik soz konusu olmuyor. test amacli denedigim tum sistemlerde nslookup sonuclarindan ve states tablosundan calistigini gozlemledim. ornek olarak dns forwarder da bir entry girip nat yonlendirmesini yaptiktan sonra
                  nslookup - 8.8.8.8 veya baska bir dns e girdiginiz entry sorguladiginizda pfsense de ki entry nin ip gelecektir. bu da demektir ki 53 portu aslina verilen ip e degil nat yontemi ile sorguyu gene pfsense e yapmaktadir.

                  1 Reply Last reply Reply Quote 0
                  • E
                    ercev
                    last edited by

                    arkadaşlar bunu nasıl çözdünüz?

                    ben sizin yukarıda vermiş olduğunuz ve benimde aşağıda adres yazdığım yere winscp ile girdim sonra oradaki 559.ncu satırda bulunanları sizin yukarıda verdiklerinizle notepad++ ile değiştirdim amma velakin elle dns verilmiş olan makinaları yine cp karşılamadı.

                    adres:
                    /etc/inc/captiveportal.inc
                    yazdıklarım
                    #dns pass
                    add 65529 allow udp from any to any dst-port 53 keep-state
                    add 65530 allow tcp from any to any dst-port 53 keep-state

                    redirect non-authenticated clients to captive portal

                    add 65531 set 1 fwd 127.0.0.1,8000 tcp from any to any in

                    let the responses from the captive portal web server back out

                    add 65532 set 1 pass tcp from any to any out

                    block everything else

                    add 65533 set 1 deny all from any to any

                    pass everything else on layer2

                    add 65534 set 1 pass all from any to any layer2

                    çözüm olarak ne yapmamız lazım? pfsense 2.1 kullanıyorum.teşekkürler.

                    reboot edince düzeldi :)

                    1 Reply Last reply Reply Quote 0
                    • F
                      fotocum
                      last edited by

                      @asbirim:

                      port 53 tunnel acigini kapatmak icin soyle bir yontem deneyebilirsiniz.
                      1- herhangi bir interface istediginiz bir vlan olusturun.
                      2- bu vlan icin static ip tanimlamasi yapin.
                      3- ardindan  nat -> port forward yardimi ile dns yonlendirmesi yapmak her interface icin bir kural olusturacagiz.
                        a- interface secin (orn. LAN)
                        b- source icin networf girin veya secin.(orn. LAN subet)
                        c- destination any secin
                        d- port olarak DNS (53) secin
                        e- redirect ip icin ayarlamis oldugunuz vlan in static ipsini yazin
                        f- redirect port icin DNS (53) secin ve kaydedin

                      dns yonlendirmesi yapmak istediginiz her interface icin tekrarlayin redirect ip ve port ayni olacak sekilde.

                      yardimci olmasi icin resimleri ekliyorum.

                      butun diger alanlari oldugu gibi birakin.

                      bunlari yaptiktan sonra captive portal da 53 portuna surekli izin verebilirsiniz. artik sadece sizin general setup da ayarladiginiz dnslere sorgu yapilacak. isterseniz dns forwarder dan domain engelleme dahi yapabilirsiniz.

                      Bu çözüm aynı bizim abonelerimize güvenli internet verirken kullanıdğımız forwarding mode çözümü. mantık doğru. teşekkürler @asbirim

                      1 Reply Last reply Reply Quote 0
                      • S
                        sweetevilx
                        last edited by

                        Kusura bakmazsanız bir sey sorucam captive portal altında allowed ip adrese girdigimizde

                        ip adres -description -bandwit up down diye yerler var dns adreslerini burda nereye girmemiz lazım tek tek

                        1 Reply Last reply Reply Quote 0
                        • X
                          X-Adam
                          last edited by

                          Yeni sürümde çalışıyor mu bu paylaşılan yöntem? Deneyen var mı?

                          1 Reply Last reply Reply Quote 0
                          • tuzsuzdeliT
                            tuzsuzdeli
                            last edited by

                            standart bir yönlendirme kuralı olduğundan, çalışması lazım.

                            Çözümün bir parçası değilsen, sorunun bir parçasısındır.

                            1 Reply Last reply Reply Quote 0
                            • X
                              X-Adam
                              last edited by

                              @tuzsuzdeli:

                              standart bir yönlendirme kuralı olduğundan, çalışması lazım.

                              Peki ben niye yapamıyorum? Şu an bunu yeni sürümde deneyip çalıştırabilen var mı?

                              1 Reply Last reply Reply Quote 0
                              • M
                                mbunal
                                last edited by

                                bu uda hortlatayım bari. 2.4.5 de /etc/inc/captiveportal.inc dosyası baya değişmiş. bu yeni yapıda nasıl eklenir bu kurallar şimdi?

                                1 Reply Last reply Reply Quote 0
                                • M
                                  mbunal
                                  last edited by

                                  ihtiyacı olana yeni sürümde eklenmesi gekeren kod parçası:

                                  $cprules .= "# Rules to allow DNS queries to external servers from unauthenticated users\n";
                                  $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
                                  "allow udp from any to any 53 out");
                                  $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
                                  "allow tcp from any to any 53 out");
                                  $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
                                  "allow udp from any to any 53 in keep-state");
                                  $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
                                  "allow tcp from any to any 53 in keep-state");
                                  

                                  peki nereye eklenecek? tabiiki aşağıdaki kodun hemen üstüne:

                                  $cprules .= "# redirect non-authenticated clients to captive portal\n";
                                  $cprules .= captiveportal_create_ipfw_rule("add", $rulenum,
                                  "fwd 127.0.0.1,{$listenporthttp} tcp from any to any dst-port 80 in");
                                  

                                  herkese iyi eğlenceler...

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post
                                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.