UniFi – config.gateway.json Kullanarak USG Gelişmiş Yapılandırma
config.gateway.json , UniFi Network uygulama dosya sisteminde bulunan ve web GUI’de bulunmayan USG’de özel değişikliklere izin veren bir dosyadır . Bazı olası özelleştirmeler şunlar olacaktır: ana bilgisayar adlarıyla siteden siteye VPN’leri yapılandırma, belirli trafiği WAN2 dışına yönlendirme politikası veya hatta bir arabirime birden çok IP adresi ekleme. Bu özellikler henüz UniFi Network uygulamasında mevcut değildir, bu nedenle config.gateway.json dosyası, GUI’de kullanılabilir olana kadar bu özellikleri tamamlayacaktır.
config.gateway.json dosyası üzerinden özelleştirmeler yaparken , sadece Ağ uygulaması üzerinden gerçekleştirilemeyecek özelleştirmeleri girmek en iyisidir. Biçimlendirme yanlışsa, USG’de bir sağlama döngüsü tetiklenir ve USG sağlama döngüsünden çıktığında yeniden başlatma gerçekleşir. Bu noktada, bunu düzeltmek için config.gateway.json dosyası düzeltilebilir veya kaldırılabilir.
config.gateway.json Dosyasını Oluşturma
Varsayılan olarak, config.gateway.json dosyası mevcut değildir, onu kullanmak için oluşturulması gerekir.
1. TextEdit veya Notepad++ gibi bir metin düzenleyici kullanarak yeni bir dosya oluşturun.
2. Bir json dosyasının yapısı, kelimelerin kendisi kadar önemlidir. Köşeli ayraçların, girintilerin, satır sonlarının veya diğer herhangi bir yapısal öğenin yanlış yerleştirilmesi, json dosyasını geçersiz kılacaktır. Doğru sözdizimine sahip olduğunu doğrulamak için metni bir json doğrulayıcı aracılığıyla çalıştırmanız önerilir. JSON Formatter web sitesi , çevrimiçi olarak bulacağınız birçok json doğrulayıcı seçeneğine bir örnektir.
3. Dosyanın içeriği doğrulandıktan sonra, dosyayı config.gateway.json olarak adlandırarak ve Ağ uygulamasında depolanan <unifi_base>/data/sites/site_ID dizini altına yerleştirerek kaydedin.
ls -l <unifi_base>/data/sites/site_ID
. Bunu değiştirmek için site dizinine girdikten sonra şu komutu kullanın:chown unifi:unifi config.gateway.json
<unifi_base> konumu bir işletim sisteminden diğerine farklılık gösterecektir. Daha fazla bilgi için bu makaleye bakın. Site_ID , Ağ uygulamasındayken tarayıcınızın URL’sinde görülebilir. Orijinal site “varsayılan” olarak adlandırılır ve oluşturulan her siteye rastgele bir dize atanır. Örneğin, bir sitenin kontrol paneli sayfasının içindeyken URL çubuğunda görülecek şey şudur:
https://127.0.0.1:8443/manage/s/ceb1m27d/dashboard
Yukarıdaki durumda, ceb1m27d rastgele dizesi , <unifi_base> /data/sites/ altında kullanılacak klasör adıdır . Bu nedenle, config.gateway.json <unifi_base>/data/sites/ceb1m27d/ içine yerleştirilmelidir.
- Bulut Anahtarında .json dosyasının yolu şu şekildedir: /srv/unifi/data/sites/[site adı/varsayılan]/
- Bir Ubuntu’da .json dosyasının yolu şudur: /usr/lib/unifi/data/sites/[site adı/varsayılan]/
config.gateway.json Dosyasını Düzenleme
Güvenlik duvarını veya NAT kurallarını özelleştirmeden önce, UniFi Network uygulamasında Ayarlar > Yönlendirme ve Güvenlik Duvarı > Güvenlik Duvarı altında kullanılan kural numaralarını not edin . Varsayılan güvenlik duvarı kuralları 3001 veya 6001’den başlar ve NAT kuralları da 6001’den başlar (güvenlik duvarı kurallarıyla çakışmaz). config.gateway.json‘da oluşturulan özel kurallar, USG’deki mevcut kurallarla mükerrer kural numaralarına sahip olamaz veya bir sağlama döngüsü olacaktır. İki eşleşen kural arasında daha düşük sayı kazanacağından, özel kuralları mevcut kural kümesinden önce koymanız önerilir.
Seviye 3’te “modüller”in de “zaman aşımı” ile birlikte mevcut olduğuna dikkat edin, ancak “kapatma” yolunun bir parçası olmadığı için onu json dosyasına dahil etmeyeceğiz. “tcp” altındaki 5. seviyedeki diğer öğelerle aynı. Yolun parçası olmadıkları için config.gateway.json dosyasında görünmeleri gerekmez . 10’dan 20’ye “kapat” yapılandırmasında başarılı bir değişiklik şöyle görünür:
Aşağıda, EdgeOS biçimlendirmesi kullanılarak yapılandırılan DNS için bir DNAT kuralının nasıl oluşturulduğuna ilişkin bir örnek verilmiştir:
1. USG’ye SSH üzerinden bağlanın ve aşağıdaki komutları verin:
yapılandırma hizmeti nat kuralı 1 türü hedef ayarla hizmet nat kuralı 1 gelen-arayüz eth0 hizmet nat kuralı 1 protokolü ayarla tcp_udp hizmet nat kuralı 1 hedef bağlantı noktası 53 ayarla hizmet nat kuralı 1 adres içi adres 10.0.0.1 ayarla hizmet nat kuralı 1 içeride - adres bağlantı noktası 53 taahhüt; kaydet; çık
2. Sonraki, yapılandırmayı gösteriyor. Aşağıdaki komut, tüm yapılandırmayı bir JSON biçiminde görüntüler:
mca-ctrl -t dump-cfg
Tercih edilirse yapılandırma da dışa aktarılabilir. Aşağıdaki örnek, çıktıyı şuraya aktarır config.txt
:
mca-ctrl -t dump-cfg > config.txt
3. Yapılandırma çıktısında özel değişikliklerin olduğu uygun bölümü bulun, yukarıdaki örneğimiz için aşağıdaki gibi olacaktır:
"nat": {
"kural": {
"1": {
"hedef": {
"bağlantı noktası": "53"
},
"gelen arabirim": "eth0",
"iç adres": {
"adres": "10.0.0.1",
"bağlantı noktası": "53"
},
"protokol":"tcp_udp",
"type": "hedef"
},
4. Yukarıdaki özel kuraldır, ancak doğru olması için sonundaki tüm parantezler (}) eksik. Config çıktısına baştan bakarsanız, dosyanın doğru okunması için gerekli olan belirli bir format vardır. Bir bölümdeki her düğüm bir virgülle (,) ayrılmalı ve bölüm bir açılış ayracı ({) ile başlamalı ve bir kapanış (}) ile bitmelidir. Mevcut formatı dikkatli bir şekilde takip edin. config.gateway.json ‘daki tek değişiklik yukarıdaki kuralsa, onu şöyle görünecek şekilde düzenlersiniz:
{
"hizmet": {
"nat": {
"kural": {
"1": {
"hedef": {
"bağlantı noktası": "53"
},
"gelen arabirim": "eth0",
"iç adres" : {
"adres": "10.0.0.1",
"bağlantı noktası": "53"
},
"protokol": "tcp_udp",
"type": "hedef"
}
}
}
}
}
5. Eklenecek birden fazla bölüm varsa, örneğin Güvenlik Duvarı, Hizmet, VPN, sonraki bölüme başlamadan önce o bölümün kapanış parantezinden sonra virgül (},) gelir. Bu biçimlendirme ayrıntılarını aşağıdaki örnekte görebilirsiniz.
DNAT kural # aralıkları 1-4999 arasındadır ve Kaynak/Maskeli balo kural numaraları 5000-9999 arasındadır. Bir multiWAN (yük dengesi) kurulumunda WAN2 için config.gateway.json dosyasına ileri bağlantı noktası (DNAT) eklemek isterseniz, yalnızca bu belirli NAT kuralıyla config.gateway.json şöyle görünür:
{ "hizmet": { "nat": { "kural": { "4500": { "açıklama": "port_forward_WAN2", "hedef": { "adres": "100.64.100.100", "bağlantı noktası": "22" }, "gelen arayüz": "eth3", "Adres İçinde": { "adres": "192.168.1.100" }, "protokol": "tcp", "type": "hedef" } } } } }
Ve dosyaya ana bilgisayar adlarıyla bir VPN ekleseydik, config.gateway.json aşağıdaki gibi görünürdü. Bölüme başlamadan önce, açma ve kapama parantezlerine ve ayrıca virgüllü parantezlere dikkat edin "vpn"
:
{ "hizmet": { "nat": { "kural": { "4500": { "açıklama": "port_forward_WAN2", "hedef": { "adres": "100.64.100.100", "bağlantı noktası": "22" }, "gelen arayüz": "eth3", "Adres İçinde": { "adres": "192.168.1.100" }, "protokol": "tcp", "type": "hedef" } } } }, "vpn": { "ipsec": { "şantiye": { "akran": { "yyyy.ignorelist.com": { "kimlik doğrulama": { "id": "xxxx.ignorelist.com" }, "yerel adres": "xxxx.ignorelist.com" } } } } } }
Test ve Doğrulama
config.gateway.json oluşturmayı bitirdikten sonra kodu doğrulamanız önerilir . Orada bir dizi ücretsiz seçenek var, jsonlint.com Ubiquiti destek ekibi tarafından oldukça sık kullanılıyor.
config.gateway.json’u seçtiğiniz UniFi Network sitesine ekledikten sonra , UniFi Devices > USG > Config > Manage Device > Force provizyon’u seçerek USG’ye “zorla provizyon” çalıştırarak test edebilirsiniz . Bunun sağlanması biraz zaman alacaktır (30 saniye ila 3 dakika) ve bundan daha uzun süre sağlamada kalırsa, config.gateway.json’da bir biçimlendirme hatası olabilir ve daha önce bahsedilen sağlama döngüsüyle karşılaşıyorsunuz. . Uygulamayı kontrol edebilir server.log
ve arayabilirsiniz commit error
. Yeni özelleştirilmiş yapılandırmanın sağlanmasında neyin yanlış gittiğini genellikle günlük dosyalarında bulabilirsiniz. Bununla ilgili bilgileri burada bulabilirsiniz .
Değişiklikleri Silme veya Önceki Duruma Dönme
Belirli bir gelişmiş yapılandırmayı kaldırmak için, config.gateway.json dosyasındaki o yapılandırmayla ilgili bölümü silmeniz yeterlidir. config.gateway.json dosyasında oluşturulan tüm gelişmiş yapılandırmaları tamamen kaldırmak için dosyayı silin veya yeniden adlandırın. Bu, tüm manuel değişiklikleri geçersiz kılar. USG, UniFi Network uygulamasında bulunan mevcut yapılandırma ile sağlanacaktır.
Halihazırda çalışan bir config.gateway.json dosyasını düzenlerken en iyi uygulama, bir yedek oluşturmaktır. config.gateway.json dosyasına ek değişiklikler eklemeniz gerekiyorsa, mevcut dosyayı config.gateway.json.old olarak yeniden adlandırın, esasen bir yedek oluşturun ve mevcut ve yeni tüm değişiklikleri config.gateway adlı yeni bir dosyaya kopyalayın. .json. Bu şekilde, “commit” hatasıyla veya provizyon döngüsüyle sonuçlanan herhangi bir hata olursa, config.gateway.json dosyasını silebilir ve config.gateway.json.old’dan başlayarak yeniden deneyebilirsiniz.