21 Ekim 2020 Çarşamba

Swift



C ve Objective-C dilleri tabanlıdır. Bu dillerin karmaşasından kurtarılmış olup 7 tane programlama dilinden esinlenmiştir.

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.







6 Ekim 2020 Salı

Meraklısına Merkez Bankası Küçük Hissedarlar Dağılı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)

5 Ekim 2020 Pazartesi

FortiNet Eğitim Notlarım 29.09.2017


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









2 Ekim 2020 Cuma

Xiaomi Mi 10000 mAh 18 Watt 3. Versiyon İnce ve Hafif Kasa Çift Girişli Taşınabilir Hızlı Şarj Cihazı PLM13ZM


    
Xiaomi Mi 10000 mAh 18 Watt 3. Versiyon İnce ve Hafif Kasa Çift Girişli Taşınabilir Hızlı Şarj Cihazı PLM13ZM 1ICP11/63/115

  •     Ürün Xiaomi üretimi olup modeli PLM13ZM olarak  geçmektedir. Boyutları ise 147,8 x 73,2 x 15,3 mm yani 147,8 mm yükseklik, 73,2 mm genişlik 15,3 mm derinliktir.
  •     Maksimum çıkış gücü 18 W (VxA) olup 2 adet USB-A Tipi çıkışa sahiptir. 1. USB-A Tip Çıkış Akıllı Güç Yönetimi özelliğine sahip olup güç çıkış seçenekleri (5.1V / 2.4A) (9V / 2A) (12V / 1.5A)'dir. 2. USB-A Tip Çıkış ise yalnızca (5.1V / 2.6A) güç vermektedir. Görüldüğü üzere maksimum akım 2.6A'dir. Her iki çıkışta aynı anda aktiftir. Yani 2 cihazın aynı anda şarj edilme özelliği bulunmaktadır.
  •     Pil Kapasitesi 10000 mAh olarak yazmakta fakat gerçek kapasite 5500 mAh'tir.
  •     Maksimum giriş gücü ise yine 18 W (VxA) olup 1 adet Type-C, 1 adette MicroUSB olmak üzere toplamda 2 adet girişe sahiptir. Bu girişlerden Type-C girişi (5V / 2.1A) (9V / 2.1A)  (12V / 1.5A) MicroUSB girişi ise (5V / 2.1A) (9V / 2.1A) (12V / 1.5A) giriş değerlerine sahiptir. Şarj Süresi  18 W güç girişi altında yaklaşık 4 saat; 10 W güç girişi altında yaklaşık 6 saattir. 
  •     Hızlı şarj desteği mevcut olup akü gerilimi ise 37 Wh'tir. Ayrıca Kısa devre koruması, Aşırı ısınma koruması, Aşırı yük koruması, Şarj göstergesi özellikleri mevcuttur. Kutu içeriğine 30 cm USB-A - MicroUSB kablosu dâhildir.
  • EAN (European Article Number) 6934177711596




1 Ekim 2020 Perşembe

Telefon Numarasını Rehbere Kaydetmeden Whatsapp'tan Mesaj Göndermek

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=...............