Inverter = Güç çevirici demektir.
On grid Inverter = Şebekeye direk bağlanabilen inverterdir. Şehir Şebekesi olduğundan dolayı illaki aküye ihtiyacı yoktur.
Bu blog bir Elk.-Elkt. mühendisi ve bir Makine Mühendisi tarafından yönetilmektedir.
Inverter = Güç çevirici demektir.
On grid Inverter = Şebekeye direk bağlanabilen inverterdir. Şehir Şebekesi olduğundan dolayı illaki aküye ihtiyacı yoktur.
Esnek ve kolay bir mimariye sahiptir.
Yazılım geliştirmeye yeni başlayanlar için oldukça basit ev anlaşılabilir yapıdadır.
Nesne tabanlı dildir.
Açık kaynaklıdır.
Syntax yapısı: camelCase
Swift programlama dilinin standart kütüphanesi sınıflar, protokoller, global fonksiyonlar, yapılar, data türleri bulunmaktadır.
Declaration yani bir değişkenin kullanılmadan önce derleyiciye bildirilmesi/tanıtılmasıdır.
Type Inference yani tür çıkarımı mekanizması
String Interpolation yani metin(String) içerisine veri (değişken, sabit) koymak. \()
immutable
Multi Paradigm yani çok paradigmalı dil yapısına sahiptir.
Dictionary Hash Map
Set
if else condition
Fonksiyonlar
Tuple Çoklu değerleri tek bir birleşik değere dönüştürür.
Fonksiyon Overload yani Fonksiyon Yükleme. Aynı isimde farklı parametrelere sahip fonksiyonlar tanımlama
Literal yani değişmez, sabit
? demek opsiyonel/muallak,
! kodun başında olursa tersi/değili, sonunda olursa değeri kesin/mutlak demektir.
Type casting yani Tip Dönüştürme. Otomatik tip dönüştürme yoktur.
Closure
Structure
Enum : Enum’ı bir grup bağlantılı değer için ortak bir tür tanımlama olarak düşünebiliriz. Kod içinde bu değerleri güvenli bir şekilde kullanabiliriz. Enum’ı bir çeşit seçeneklendirme olarak düşünebiliriz.
Stack
Class yapısı
Struct
Optional
Inheritance - Miras
Force unwrap
Implicitly unwrap
Properties
Method
Kalıtım nedir?
Protokol nedir? interfacer olarak da geçiyor.
implemente- uygulamak
Generic
Sequence - Sıra
TASARIM PATERNLERİ (MVC, DI, DP)
>>MVC Design Pattern - Model-View-Controller Design Pattern : Birbiri ile aynı işi yapan uygulama komponentlerini gruplandırıp birbirleri ile haberleşmelerini sağlamak. Yani View katmanından (Kullanıcının gördüğü katman) lardaki dosyalar ile kullanıcıya ana veritabanından gelen veya bilgiyi işleyen, kuran mekanizma yani Model'ın farklı alanlarda olması. Yani bilginin işlendiği alanın aynı bir komponent, bilgiyi gösteren alanında ayrı bir komponent olup birbiri ile haberleşmesidir. Temel olarak separation of concerns denilen Birbirleriyle ilişkili yapıların beraber olup farklı yapılarında birbirleriyle bazı kontrol yapıları üzerinden haberleşmesi prensibine dayanıyor.
>>Dependency Injection
>>Delegate Pattern
Front-End ve Back-End uygulamalar.
ViewDidLoad
interpolation - Katmak, Ekleme yapmak
Maintenance - Yazılım bakımı
Runtime
Handle
Tuple:
Declarative:
Optionals: Bir değişkenin belirtilen tipteki değere sahip olup olmadığını kontrol eden yapılardır. Nil Check işleminde if let kullanılması tavsiye edilir.
Nil Check : Bir değişkende değerin var olup olmadığının kontrol edilmesi.
Unwrap:
Typealias : Tiplere takma ad takabiliriz.
Global Scope: Kodun her yerinde kullanılabilecek tanımlanan değişkendir.
Local Scope: : Kodun yalnızca fonksiyonlar vs. gibi local yerlerde kullanabilecek değişkenlerdir.
Break : Ayrıl, terket, sonlandır.
fallthrough : Swift dilinde Switch-case'de break kullanmamıza gerek yok. koşul sağlandıktan sonra switch'ten çıkıp koda devam ediyordu. Switch'ten çıkmamasını istiyorsak fallthrough eklemeliyiz. fallthrough ekleyince bir sonraki case'ye girip sonra çıkıyor. Bir sonraki case'de de kullanabiliriz.
ternary operatörü: ?
enum : Farklı durumların kontrol edilmesini sağlayacak sıralı listeler oluşturmak için kullanılır.
mutable : Değişebilir demektir. var
immutable : Değişmez, sabit demektir. let
replace: Yer değiştirmek
Swift Açık kaynak kodlu programlama dilidir.
Visual Studio'nun yalnızca Windowslarda çalıştığı için, Xcode'da yalnızca MACOS cihazlarda çalışıyor.
Frameworkler 2 tane var. UIKit Xcode 11 ve öncesinde vardı, Xcode 11'den sonra SwiftUI eklendi.
Xcode ile yazılan uygulamaların AppStore'ye atılabilmesi için imzalanması zorunludur.
Distrubitable : Dağıtılabilir
Kodları Run etmek : Çalıştırmak
Compile etmek: Derlemek, derleyip binary hale getirmek
IDE :
SDK :
IOS Deployment Target minimum 13 yapın. (Project ve Target kısımlarından ayrı ayrı yapın.)
XCode 10.3 öneriliyor. Çünkü SwiftUI desteklemeyen en yüksek sürüm bu. UI
XCode'de Products klasörü sanal bir klasör olup XCode projemizin derlenmiş versiyonunu orada tutuyor.
Main.storyboard = Ana Storyboardımızdır.
LaunchScreen.storyboard : Developer'lar genelde bu storyboardı siliyor. Uygulamanın açılışta göstereceği ekran budur. Developerlar açılış ekranını Main.storyboard kısmına gömüyorlar. XCode'de "App Icons and Launch Images" kısmından uygulamanın açılış ekranının hangi ekran olacağını seçiyorsunuz.
Devices Orientation : Hepsini seçelim. Çünkü daha sonra açamıyorsunuz. Hepsini seçin kodlarla kapatıp açabiliyorsunuz zaten.
Assets.xcassets : Uygulamanın AppStore'deki iconlarını ve farklı çözünürlükteki cihazlardaki iconlarını ayarlıyorsunuz.
ViewController = Kodlarımızı yazacağımız yerdir.
AppDelegate.swift = Özel bir dosyadır. AppDelegate diye özel bir class var içerisinde. Uygulamamız ilk başlatıldığı zaman IOS'un çalıştıracağı ilk yer burasıdır.
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
Uygulamalarımızın Versiyonlarını 3 haneli yani Major.Middle.Minor şeklinde kullanalım. Build nolarını ise 4 haneli kullanalım.
MERAKLISINA MERKEZ BANKASI KÜÇÜK HİSSEDARLAR DAĞILIMI
Türkiye Kızılay Derneği
T.C. Sosyal Güvenlik Kurumu
T.İmar Bankası Memur ve Müstahdemleri Yardım ve Emekli Sandığı Vakfı
Karataş Hastanesi İdare Derneği
Liberty Sigorta
Kapital Sigorta
İstanbul Umum Sigorta
Orta Doğu Teknik Üniversitesi
Adnan Bahar
Emine Fahriye Tanman
Viktor Kamhi
Margarit Siyon
Ord. Prof. Dr. Fahrettin Kerim Gökay
Armağan Yücel Samancı
Miryam Şen
Cemal Tokgöz
İkiyüz Hisseden Az Hisseye Sahip Olanlar (Gerçek Kişi)
Turan ERCAN
turan.ercan@netsys.com.tr
---------------------------------
Fortigate I
Load Balancer ne demek
Web Spplication File (WAF)
FortiAnalyser sahibi olmalıyız. Truble Shooting, Loglama ve Raporlamada işimize yarıyor.
FortiManager: Bizde yok. Çünkü tek bir cihazımız var.
Fortinet'in Wireless Controller var. AccessPoint yönetim seçeneği de var.
CoreSwitch
FortiCM
Bulut işinden kaçış yok
FortiGuard:Fortinetin güçlü kılan
2 temel konfigürasyon var. NAT-Transparent olmak üzere.
%99 NAT kullanılıyor. Transparent Layer2 switch gibi kullanılıyor.
fortinetin 1. portunun IP'si 192.168.1.99
default kullanıcı adı admin. Şifre yok.
Admin şifresi unutulan cihazın kullanıcı adı maintainer bcpb(serialnumber)
Password Recovery yapılamasın istiyorsak
config sys global
setup ...
FortiExplorer, Web Browser vr FortiManager ile fortineti yönetebiliriz.
VDome: Fiziksel Firewall altındaki sanal firewall lara diyoruz. 10 VDome kadar varsayılan lisans
FortiToken:Ürünle birlikte 2 adet bedava Token (SAnal mı fiziki mi emin olamadım.) geliyor. ISO 27001 vs. bunu istiyor.
http 80. port
https 443. port
https portunu değiştirebiliyoruz.
TCP portu 21. port
SSH portun 22. port
Telnet Portu 23. port
SSL-VPN portu ile HTTP portu varsayılan aynı geliyor. Bunun birinden birini değiştirmeliyiz.
GUI:Arayüz
GUI'de karışıklık çıkmaması için System altında Feature Select var.
Burada hangilerinin GUI'de karşımıza gelip gelmeyeceğini belirleyebiliyoruz.
Örneğin IPv6 kullanmıyorsak buradan kapatmalıyız.
Yedekli bir dizayn için Aggregate Interface (LACP) oluşturabiliyoruz. port7 ile port8'i birleştirebiliyoruz.
2 adet 1Gbitlik portu 2 Gbit olarak çalıştırıyoruz. Bir portun haberleşmesşnde sıkıntı olduğu zaman diğer port üzerinden haberleşmeye devame diyor.
FW'den yaptığımız ayarı SRV'dan da yapmalıyız. Aradaki SW'ler ise Stack yapıda olmalı.
Stack demek 2 SW tek bir SW gibi çalışıyor.
Alias kullanmalıyız. Hangi portun ne için kullanıldığını hatırlamak babında.
FortiGate'i DHCP Serverolarak kullanabiliriz. Fakat önerilen DHCP Server Windows olmalı.
Fortinette MAC Adresine IP rezervasyonu yapabiliyoruz.
Routing Tablosunda örneğin internet isteklerini port1'deki router'e yönlendiriyoruz. Fakat port 2 içinde aynı tanımı yaptık.
Administrative Distance kaydı düşük olan (Örneğin 10) port öncelikli olur. Bu port down olursa Administrative Distance kaydı düşük olan (örneğin 20) olan porttan devam eder.
Distance de aynı ise Subnet maske en detaylı olandan gider.
Subnet IP Port AD
10.0.0.0/8 port1 20
10.5.0.0/16 port2 20
10.5.5.0/24 port3 20
-----------------------------------
AD Priority
Internet 0.0.0.0/0 port1 10 20
0.0.0.0/0 port2 10 10
Priority'de aynı olursa Load Balance etmeye başlar.
--------------------------------
Configuration Files
Configurasyon dosyasının backup ını alabiliyoruz. Fakat Forti MAnager var ise gereksiz.
--------------------------------
Upgrade
Fortigate Upgrade Path aracıyla adım adım versiyon geçişi yapmalıyız.
-----------------------------------
Loglama ve Görüntüleme
Logları Syslog yani CM sunucuya gönderebiliriz. FortiClouda gönderebiliriz. FortiAnalyzer(Biz burada kullanıyoruz) gönderebiliriz.
FW diskli olanı tercih etmeliyiz. Log kaydı için.
Log & Report > Log Settings'ten Realtime yapmalıyız.
Logları şifrelemeye gerek yok. Cİhazı yormayalım.
Loglanması gereken şeyleri filtreleyebiliriz.
---------------------------------
Policies
İzin vermediğimiz herşeyin engellenmesi için
Impllicit Deny policies'imiz var. Silinemez. Bu policies biize logda görünmez. Görünmesi için ayarlamalıyız.
IPv4 Policies altında ayarlamaları yapacağız.
Permit:İzin ver
Deny:Reddet
Port bazlı da Policies yapabiliriz. Zone bazlı da yapabiliriz.
FSSO:Active Directory 'deki Userları tanımak için.
Network>Interface altında
Device Detection açıksa cihazların OS bilgilerini görüyor.
Active Scanning açıksa ...
Object>Schedules:Policies'te zamanlama yapar.
Servisler:Http, Https. vs..
Learn raporlarını Log & Reports > Learning Reports altında buluruz.
Policies yazma sırası önemli.
Match etme: Kıyaslama, karşılaştırma
134.119.222.71 /27 Port3
10.36.106.254/24
admin
NetSysfg06
FW'ın Router'dan (Layer3 SW'lerden) ayrıldığı bir nokta da ...'dur. Statefull olmasıdır.
port1'den port3'e policie yazıldığı zaman tekrar port3'ten port1'e policies yazılması gerekmez.
Buna Statefull denir. Policies'leri bu yüzden tek yönlü yazmamız yeterli.
Session State Table'nun kapasitesi çok önemli. FW saldırı yapanlar bu tabloyu şişirmeye yönelik saldırılar, ataklar yapar.
Bir FW Trueput'undan ziyade Session State Table'nun kapasitesi daha önemli.
Source IP'nin NAT'lanmasına odaklandık.
Source IP 172.20.20.200 iken Source port:30912 olması PAT olmasıdır.
Kaç farklı Source Port olabilir? 256*256=65536 tane port olabiliyor. Tek IP'm var.
Source NAT'ta %99 dış bacak IP'sine PAT yaptırırız. Ya da havuz oluşturup PAT yaptırırız.
Destination IP'nin NAT'lanması yani VIP(Virtual IP). Genelde Internetten içeriye doğru gerekiyor. CLI'ın dışında GUI'den de yapılabiliyor.
Engellemek stediğimiz bir IP, VIP ise, ve engellenecek IP listesini engelleyip 2. kural olarak 2. bir policies'le izin verdiğimiz zaman Destination'u all olan policies (DEny olanm policies) bu IP'yi engelleyemez. CLI'a kod ekleyerek bunu engelleyebiliriz.
set match-vip enable kodunu eklemeliyiz.
VOIP farklı networkten olmalı. Güvenlik açığı var. UDP kullandığı için.
Session=Sejın:Oturum
FW Session Stage Tablosundaki 3600 saniye=60 dakika paket göndermeyen cihazları tablodan çıkarıyor.
Bir paket gönderdiğimizde karşıdan 10 saniye içerisinde cevap gelmezse SST tablosundan çıkarılır. UDP içinse bu süre 60 saniye.
Fortinet için Diagnose=DBug
Paketi gönderdiğimiz IP'ye karşılık başka IP'ye cevap olarak geldiyse cevap gelen IP NAT'lanmış olduğunu gösterir. Normalde aynı IP'ye cevap gelmeli.
00 olursa tek yönlü UDP, 01 olursa çift yönlü
Lokaldeki cihazlarla kendi IP'im ile konuşacağım. Lokal Ağ'da NAT kullanmayalım.
Sourge IP
Destination IP
Destination NAT
NAT, PAT
Load Balancer
trust
untrust
Authentication
Encript
DMZ(DeMilitarized Zone):Arındırışmış Bölge
Routing
Routing Tablosu
.
FSSO username, password sormaz. FSSO hangi kullanıcının hangi IP'yi alacağını takip eder.
LDAP username, password sorar.
Captive Portal:
Encrypt:Şifreleme
IPsec-VPN: Bir FW'dan başka bir FW'a tünel açma.
SSL-VPN: Yaygın bir yöntemdir. 3 yöntemi var.
Port Forward:Kullanılmıyor. Java appleti olmalı. bu yüzden.
Web-Only:Standart kullanıcıların erişebileceği yerlere erişim için.
Tunnel:IP to IP connectivite
SSL-VPN bağlantılar için sertifika almalıyız.
CLI
IPsec OPEn olduğu için çok sık karşımıza çıkan bir protokol.
2 fazdan oluşuyor. IPsec Faz 1 (IKE) ve IPsec Faz 2 (ESP) olmak üzere.
IPsec Faz 1 yani IKE IP Protokolü UDP 500'dür.
IPsec Faz 2 yani ESP IP Protokolü 50'dir.
Encryption Algoritmaları:Paketi şifreler.
DES(56 bit),-Zayıf bir algoritma
3DES(168 bit),-AES(128 bit) ile aynı güvenlikte
AES(128 bit),-3DES(168 bit) ile aynı güvenlikte olduğundan tercih bu olmalıdır.
AES-256
HASH Algoritmaları:Paketin içeriğinin değişip değişmediğini kontrol eder.
MD5(128 bit)
SHA1(160 bit)
Diffie-Hellman Algoritmaları: Görevi Encryption KEY üretmektir.
Group 1
Group 2
Group 5
Güvenlik Seviyesi bit ile doğru orantılı. CPU'ların yetersiz kalmasıyla ters orantılı.
NAT-Traversal: 2 nokta arasında Harici olarak NAT yapan bir FW olduğunda bu ayar kullanılır.
ADVPN:Çok şubeli yerlerde kullanılacak VPN(Tüm cihazlar fortinet olmalı)
0.0.0.0/0.0.0.0 = İnternet demek. Tüm ...'deki tüm Hostlar demek.
SD-WAN: Fortinetteki SDWAN iki hattı tek hat olarak kullanmaktır.
Proxy nedir?Proxy gibi davranmak nedir?
Botnet Site ne demek.
eicar.com AV testi yapabiliriz.
DNS Server:Sitelerin IP bilgisini istemciye iletir.
WebServer'ımıza bağlanmak isteyen FW'umuzdan geçmiyor. WAF'tan geçiyor.
BGP:
Detaylar CLI'da.
FW şifreli paketlerin içerisine giremez. http ve telnet paketleri şifresiz olduğundan girebilir.
Örneğin https paketinin içine giremez. FW bu https paketini okumak için proxy gibi davranması gerekir.
HASH
Port Mirror
Inspection Mode'nun Flow-based veya Proxy olması çok şey değiştiriyor. Feature'lar değişiyor.
Feature:Özellik
Proxy mode FW persormansını düşürüyor fakat Security'i artırıyor.
RPC
RDP yapmak
DLP:Veri Kaçağı Önleme(Data Loss Prevention)
dmz=FW bağlı olduğu port
untrust:İnternete giriş/çıkış yapılacak port
trust:Bilgisayarların bağlı olduğu port
LDAP ve FSSO(Fortinet Single Sign On)'da %80 DNS ve Saat ayarlarında problem çıkıyor. NTP olarak AD'nun saatini göstermek mantıklı olan.
Windowslarda SMB (File Sharing) portu kapanmadığından buradan bilgisayarın açık olup olmadığını kesin bir şekidle öğrenebiliriz.
FW
Common Name Identifier: sAMAccountName olmalı. Microsoft os kullananlar için.
LDAP User'a şifre sorar. Bu yüzden var.
SSO User'a şifre sormaz. Bu yüzden var. Şifre sormadan kullanıcıyı anlamak için
Telefon Rehberinizde kayıtlı olmayan numaralara Whatsapp üzerinden bir mesaj gönderebilmek için aşağıdaki linkleri kullanabilirsiniz;
1) wa.me/905.........
2) https://api.whatsapp.com/send?phone=905.........
Bir de hazır mesaj eklemek isterseniz şu linkleri kullanabilirsiniz;
1) https://api.whatsapp.com/send?phone=905.........&text=...............
Türkler için öğrenilmesi en kolay dil Korece, 2. olarak Japonca geliyormuş.