Ana içeriğe geç

Güvenlik sertleştirme kontrol listesi

Bir YTCC sunucusu gerçek bir tesisi kumanda etmeden önce ve her yükseltmeden sonra bu listeyi baştan sona uygulayın.

Başlamadan önce​

  • Ana sayfada, her projenin kullanıcılarını yöneten sistem yöneticisi root olarak oturum açabilmelisiniz.
  • Sunucuda bir yönetici hesabıyla oturum açabilmeli, kurulum programını çalıştırabilmeli ve YTCC servisini yeniden başlatabilmelisiniz. 4., 6. ve 7. adımlar kurulumun ayar dosyalarını denetler; bunlar kurulumun desteğine ait işlerdir.

Adımlar​

1. Her projede kullanıcı girişini açın​

Kullanıcı girişi kapalıyken arayüze ulaşan herkes her yetkiye sahiptir. Her projede açın. Bkz. Yetki modeli.

2. Varsayılan hesapları güvenceye alın​

Kullanıcı girişi konfigürasyon editöründe açıldıysa YTCC her varsayılan profil için parolası kullanıcı adıyla aynı bir kullanıcı oluşturmuştur, örneğin operator / operator. Bu kullanıcıları devre dışı bırakın ve projeyi kullanan kişiler için kişisel hesaplar oluşturun. Bkz. Yetkiler ve varsayılan profiller. Önceki bir sürümden yükseltilen sunucuda root hesabı root şifresiyle başlar; şifreyi ana sayfadan değiştirin (oturum düğmesi, Change password, Şifre değiştir). Bkz. root şifresini değiştirme.

3. Güçlü bir PostgreSQL parolası kullanın​

YTCC PostgreSQL parolasını boşsa, 1, 1234, postgres, admin ya da password gibi bilinen bir varsayılansa ya da kullanıcı adıyla aynıysa zayıf sayar. Zayıf parola her açılışta uyarı üretir.

  1. PostgreSQL'de postgres kullanıcısının parolasını değiştirin, örneğin pgAdmin'de: postgres oturum açma rolüne sağ tıklayın, Properties…'i seçin ve yeni parolayı Definition altında girin.
  2. Kurulu sürümün kurulum programını yeniden çalıştırın, YTCC on this computer (Bu bilgisayardaki YTCC) sayfasında Repair'i (Onar) seçin, yeni parolayı Database (Veritabanı) sayfasında girip Test connection'a (Bağlantıyı dene) tıklayın. Onarımı tamamlayın. Kurulum programı parolayı yalnız yöneticilerin okuyabildiği bir ayar dosyasına yazar ve servisi yeniden başlatır. Bkz. Veritabanı şifresini girin.

YTCC dururken scada-manager db-password aynı işi tek komutla yapar: parolayı PostgreSQL'de değiştirir, denetler ve ayarları günceller. Bkz. Veritabanı parolası.

Parola değiştirilene dek YTCC her açılışta zayıf parola uyarısı yazar. Destek, YTCC'nin zayıf parolayla açılmayı reddetmesini de sağlayabilir; bkz. scada-manager komutları.

4. Mesaj yolunu yerel tutun​

Mesaj yolu (NATS, port 4222) sunucudaki süreçler içindir. Varsayılan olarak yalnız 127.0.0.1'de dinler. manager.toml içindeki nats_bind ayarını boş bırakın. Bir ağ adresine ayarlarsanız YTCC güvenlik uyarısı yazar; 4222 portuna güvenlik duvarında yalnız YTCC sürücülerini çalıştıran bilgisayarlardan izin verin.

5. Ağda dinleyen servisleri sınırlayın​

Şu servisler bütün ağ arayüzlerinden bağlantı kabul eder. Portlarına Windows güvenlik duvarında yalnız ihtiyaç duyan bilgisayar ve cihazlardan izin verin:

PortServisTek bir arayüze bağlanabilir mi
8770Canlı veri sunucusuHayır (bütün arayüzlere ayarlı)
162 (UDP)SNMP trap alıcısıEvet, cihazın trap dinleme adresiyle
1883MQTT broker sürücüsüHayır
4840OPC UA sunucu sürücüsüHayır
20000 / 19999Dinleme modundaki DNP3 sürücüsüEvet, dinleme adresiyle
47808 (UDP)BACnet/IP sürücüsüEvet, yerel IP adresiyle

Sürücü portları yalnız bir projede böyle bir sürücü çalışırken açıktır. Web arayüzü, config\ui-web.toml onu açana kadar yalnız sunucunun kendisinde dinler; izinli ağları orada listeleyin. Bkz. Port tablosu ve Arayüzü başka bilgisayarlardan açma.

6. Canlı veri sunucusuna yalnız bilinen bilgisayarları bağlayın (isteğe bağlı)​

Bu adımı atlarsanız 8770 portuna ulaşan her bilgisayar eskisi gibi bağlanabilir. Canlı veri sunucusu bu portta /api'yi ve canlı güncellemeleri (/ws) sunar; config\gateway.toml içindeki bir [access] bölümü orada hangi istemci adreslerini kabul edeceğini sınırlar:

[access]
allow = ["10.0.0.0/24", "192.168.1.15"]
deny = ["10.0.0.66"]
KuralAnlamı
Bölüm yok ya da iki liste de boşHer istemci kabul edilir.
allow doluYalnız eşleşen adresler kabul edilir.
denyallow ile eşleşseler de reddedilir. allow boşsa bunlar dışında herkes kabul edilir.
Loopback (127.0.0.0/8, ::1)Her zaman kabul edilir: sunucunun kendisindeki YTCC süreçleri bu yolla bağlanır. deny içindeki bir loopback girdisinin etkisi yoktur; canlı veri sunucusu açılışta uyarı yazar.
GirdilerTek adres (192.168.1.15) ya da CIDR gösteriminde bir ağ (10.0.0.0/24), IPv4 ya da IPv6. IPv6 olarak yazılmış bir IPv4 adresi (::ffff:10.0.0.5) IPv4 sayılır.
Geçersiz girdiCanlı veri sunucusu başlamaz ve girdiyi adıyla yazar. 10.0.0.5/24 gibi konak bitleri dolu bir ağ da geçersizdir: 10.0.0.0/24 ya da 10.0.0.5 yazın.

Denetim TCP bağlantısının adresine uygulanır. İletilen istemci adresi (X-Forwarded-For) yalnız bağlantı sunucunun kendisindeki bir ters vekilden geliyorsa kullanılır. Reddedilen istemci access_forbidden koduyla HTTP 403 alır; canlı veri sunucusu adres başına dakikada en çok bir uyarı yazar. Değişiklikler canlı veri sunucusu yeniden başlatılınca geçerli olur: YTCC servisini Services (Hizmetler) içinde yeniden başlatın.

Web arayüzünü açan tarayıcılar canlı veri sunucusuna arayüz üzerinden, sunucunun kendisinden ulaşır; bu liste onlara uygulanmaz. Onları config\ui-web.toml içindeki allow ile sınırlayın; bkz. Arayüzü başka bilgisayarlardan açma.

Liste Windows güvenlik duvarının arkasında ikinci bir katmandır, onun yerine geçmez: 5. adımdaki güvenlik duvarı kurallarını koruyun. Ağa hangi cihazların bağlanabileceğini denetlemek için anahtarlarda port güvenliği ya da 802.1X kullanın.

7. Geliştirme anahtarlarını kapalı tutun​

Bu anahtarlar geliştirme ve deneme içindir; hepsi varsayılan olarak kapalıdır. Saha sunucusunda hiçbirinin ayarlı olmadığını kontrol edin:

AnahtarYeriAçtığı
YTCC_AUTO_LOGIN_USERProje sunucusunun ortamıSunucudaki tarayıcı için parolasız giriş. Bkz. Oturumlar.
YTCC_GATEWAY_AUTH=offCanlı veri sunucusunun ortamıGirişsiz değer okuma, canlı güncelleme ve süreç kontrolü
YTCC_WRITE_AUTH=offCanlı veri sunucusunun ortamıGirişsiz komut, anonymous olarak kaydedilir; yalnız YTCC_DEV=1 ile birlikte
test_inject (ya da YTCC_TEST_INJECT)Canlı veri sunucusu yapılandırmasıAPI üzerinden sinyallere deneme değeri yazma
ws_catch_allCanlı veri sunucusu yapılandırmasıBütün sinyallere birden abone olma
allow_writesOPC UA sunucu sürücüsüOPC UA istemcilerinden yazma kabulü; YTCC komut denetimleri, yetkiler ve komut kaydı olmadan

YTCC açık olan her anahtar için açılışta uyarı ya da hata yazar.

8. YTCC'yi virüs programının silmesinden muaf tutun​

Virüs programı YTCC programlarını silerse ya da engellerse kurulum programının Antivirus (Virüs koruması) maddesinde adı geçen klasörü, <kurulum klasörü>\target\release, örneğin C:\ytcc\v15\target\release, dışlama listesine ekleyin.