%%%
%%% Copyright (c) 2004 Can E. Acar
%%% Copyright (c) 2004 Berk D. Demir
%%% All rights reserved.
%%%
%%% Redistribution and use in source and binary forms, with or without
%%% modification, are permitted provided that the following conditions
%%% are met:
%%%
%%%    - Redistributions of source code must retain the above copyright
%%%      notice, this list of conditions and the following disclaimer.
%%%    - Redistributions in binary form must reproduce the above
%%%      copyright notice, this list of conditions and the following
%%%      disclaimer in the documentation and/or other materials provided
%%%      with the distribution.
%%%
%%% THIS DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
%%% "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
%%% LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
%%% FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
%%% COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
%%% INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
%%% BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
%%% LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
%%% CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
%%% LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
%%% ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
%%% POSSIBILITY OF SUCH DAMAGE.
%%%

\documentclass[turkish]{beamer}

\usepackage{beamerthemesplit}

\usepackage[T1]{fontenc}
\usepackage[latin5]{inputenc}
\usepackage{babel}

\beamertemplatetransparentcovered

\title{OpenBSD Projesi}

\author{Can E. Acar\inst{1} \and Berk D. Demir\inst{2}}

\institute{\inst{1}canacar@openbsd.org \and \inst{2}bdd@mindcast.org}

\date[LOYS 2004]{III. Linux ve Özgür Yazılım Şenliği, 16 Mayıs 2004, Ankara}

\AtBeginSection[] % Do nothing for \section*
{
  \frame<beamer>
  {
    \frametitle{Yol Haritası}
    \tableofcontents[current]
  }
}

\begin{document}

\frame{\titlepage}

\frame {
  \frametitle{İçerik}
  \tableofcontents
}

\section{OpenBSD Projesi}

\frame {
  \frametitle{OpenBSD Projesi}
  \begin{itemize}[<+->]
    \item 4.4BSD Tabanlı, UNIX Benzeri İşletim Sistemi
    \item Özgür, Açık ve Ücretsiz
    \item Standart ve Taşınabilir
    \item Doğru, Sağlam ve Güvenli
    \item Problemlere öngörülü (proaktif) yaklaşım
  \end{itemize}
}

\subsection{İşletim Sistemi}

\frame {
  \frametitle{İşletim Sistemi Yapısı}
  \begin{itemize}[<+->]
    \item BSD Lisansı
    \item Temel Sistem (core)
    \begin{itemize}[<2->]
      \item Çekirdek
      \item Temel UNIX komutları ve destek programları
      \item Temel programlama kütüphaneleri ve araçları
      \item Apache, BIND, sendmail, OpenSSL, OpenSSH, ...
      \item XFree86, Derleyiciler
    \end{itemize}
    \item Üçüncü parti uygulamalar için hazır paketler (packages)
    \item Paketler için kaynak kodu ağacı (ports tree)
    \item Belgelendirme (man pages, PSD, SMM, USD)
  \end{itemize}
}

\subsection{Hedefler}

\frame {
  \frametitle{Proje Hedefleri}
  \begin{itemize}[<+->]
    \item Açık ve kullanışlı bir geliştirme ortamı sağlamak
    \begin{itemize}[<1->]
      \item Açık kaynak
      \item Açık CVS ağacı
    \end{itemize}
    \item \emph{Uygun lisanslı} iyi yazılımları entegre etmek    
    \item Herhangi bir amaç için kısıtlama olmaksızın kullanılabilecek
      kaynak kodu üretmek
    \item Güvenlik konusunda 1 numaralı işletim sistemi olmak
    \item Entergre kriptografi
    \begin{itemize}[<6->]
      \item IPSec, IPv6
      \item SSH, Kerberos, AFS, ...
      \item Entegre donanımsal kripto desteği \\
        (VIA, hifn, broadcom, safenet, ...)
    \end{itemize}
  \end{itemize}
}

\frame {
  \frametitle{Proje Hedefleri - II}
  \begin{itemize}[<+->]
    \item Standartları takip etmek ve uymak \\
      (ANSI, POSIX, X/Open, ...)
    \item Platform bağımsız kod üreterek mümkün olduğu kadar
      farklı sistemleri ve donanımları desteklemek
    \begin{itemize}
      \item 12 farklı platform: \\
        alpha, amd64, hp300, hppa, i386, mac69k,\\
        macppc, mvme68k, mvme88k, sparc, sparc64, vax
    \end{itemize}
    \item Politikadan uzak, teknik olarak iyi çözümler üretmek
    \item Önemli problemleri çözümsüz bırakmamak
    \item Her 6 ayda bir yeni bir CD-ROM sürümü çıkartmak
  \end{itemize}
}


\subsection{Geliştirme Yapılanması}

\frame {
  \frametitle{Geliştirme Yapılanması}
  \begin{itemize}[<+->]
    \item Projenin Kurucusu ve Lideri: Theo de Raadt
    \item Dünya çapında yaklaşık 120 geliştirici
    \item CD, t-shirt, poster satışları ve bağışlardan sağlanan maddi destek
    \item Proje hedefleri doğrultusunda kendi istediği konularda çalışan
      geliştiriciler
    \item Kalite kontrolu sağlayan, 6 ay aralıkla çıkan sürümler
    \item Geleneksel hale gelen yıllık Hackathon'lar ile yoğun 
      tasarım ve kod geliştirme süreçleri
    \item Taviz verilmeyen belgelendirme çalışması
  \end{itemize}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%

\section{Problemler ve Çözümleri}

\subsection{Lisanslar ve Patentler}

\frame {
  \frametitle{Telif/Fikri Haklar ve Yazılım Lisansları}
  \begin{itemize}[<+->]
    \item Telif ve Fikri Haklar bir eser üzerinde
      sahip olunabilecek hakları tanımlar
    \item Çoğaltma, değişiklik yapma, işleme, sergileme, yayma gibi
      haklar tanımlanmıştır
    \item Bu haklar eserin yaratıcısına verilmiş ve 
      Bern Sözleşmesi ile uluslararası güvence altına alınmıştır
    \item Eserin yaratıcısı bu hakların bir kısmını bir sözleşme (lisans)
      aracılığı ile başkalarına verebilir
    \item Özgür yazılımlar genellikle GPL, BSD gibi standart lisansları
      kullanırlar
  \end{itemize}
}

\frame {
  \frametitle{Özgür Yazılım Lisansları}
  \begin{itemize}
    \item Open Source Initiative (www.opensource.org) lisans kriterleri
    \pause
    \item Açık Kaynak kodu $\ne$ Özgür Yazılım
  \end{itemize}
  \pause
  \vspace{6pt}
  \begin{columns}[t]
    \column{5cm}
      BSD Lisansı
      \begin{itemize}
        \item Kopyalama, kullanma, değişiklik yapma, yayma haklarını verir
        \item Dağıtılan üründe orijinal telif hakkı bilgisi ve
          sorumsuzluk paragrafı
        \item Reklam için kullanılamaz (kaldırıldı)
        \item 22 satır
      \end{itemize}
    \column{5cm}
      GPL (GNU Public Licanse)
      \begin{itemize}
        \item Kopyalama, kullanma, değişiklik yapma, yayma haklarını verir
        \item Türetilmiş ürünlerin yanında kaynak kodunu sağlama ve
          GPL lisanslı olma şartı
        \item 287 satır
      \end{itemize}
  \end{columns}
}

\frame{
  \frametitle{Patentler}
  \begin{itemize}[<+->]
    \item Patentler özgün bir icadın mucidine verilen bir sahiplik belgesidir
    \item İcadın \alert{başkaları tarafından} imal edilmesi, kullanılması,
      satışa sunulması, satılması veya ithal edilmesini \alert{engeller}
    \item Patentlerin süresi yaklaşık 20 yıldır
    \item Genellikle verildiği ülke için geçerlidir
    \item Patentin sahibinin kendi haklarını koruması gerekir
  \end{itemize}
}

\frame {
  \frametitle{Özgür Yazılımlar için Tehlike: Yazılım Patentleri}
  \begin{itemize}[<+->]
    \item Fiziksel bir icat söz konusu değildir, bir fikir ya da algoritma
      söz konusudur
    \item Pek çok ülkenin patent yasası fikirleri patentlemeyeceğini
      söylese de çok sayıda (on binlerce) yazılım patenti verilmiştir,
      verilmektedir
    \item Patent içerikle ilgili olduğu için bir programcı yazdığı
      kod nedeniyle farkında olmadan patent problemleri ile karşılaşabilir
    \item Büyük şirketler ellerinde bol miktarda patent biriktirerek
      rakiplerine karşı koz olarak kullanmaktadırlar 
    \item Bir takım patentler Internet standardı olabiliyor \\
       Bu standartlar özgür yazılımlar tarafından kullanılamaz hale geliyor
  \end{itemize}
  Ref: \emph{League for Programming Freedom http://lpf.ai.mit.edu/}
}

\frame {
  \frametitle{Özgür Yazılımlar için Tehlike: Yazılım Patentleri - Örnekler}
  \begin{itemize}
    \item GIF resim formatında kullanılan LZW sıkıştırma algoritması
    \item MP3 ses sıkıştırma algoritması
    \item Microsoft FAT dosya sistemi ile ilgili patentler
    \item IPSec NAT Traversal (NAT-T)
    \item Sun Microsystems elliptic curve cryptography (ECC) \\
      OpenSSL kütüphanesi içerisine entegre edildi
    \item Cisco Hot Standby router protocol (HSRP) ve IETF Virtual Router
      Redundancy Protocol (VRRP)
    \item Cisco TCP protokolündeki bir ``güvenlik açığı'' ile ilgili patent
      başvuruları olduğunu açıkladı
  \end{itemize}
}

\frame {
  \frametitle{Özgür Yazılımlar için Tehlike: Lisans Değişiklikleri}
  \begin{itemize}[<+->]
    \item Popüler Özgür Yazılım Projeleri Lisanslarını Değiştiriyorlar
    \item Apache Projesi
    \item XFree86
  \end{itemize}
}

\frame {
  \frametitle{Lisans ve Patentlere OpenBSD Projesinin Yaklaşımı}
  \begin{itemize}[<+->]
    \item Sadece BSD ve eş değer lisanslar ve başka alternatif yoksa GPL
      kabul ediliyor
    \item Kaynak kodunda lisans taraması ve düzeltilmesi
    \item GPL programların BSD lisanslı versyonları ile değiştirilmesi \\
      (dc, diff, grep ...)
    \item Apache OpenBSD versiyonu donduruldu
    \item XFree86 projesinden yeni lisansa sahip kod alınmıyor
    \item Patentli algoritma/standart kullanılmıyor
    \item OpenSSL kütüphanesine ECC fonksyonları eklenmedi
    \item VRRP yerine ilgili patentlere dokunulmadan
      CARP (Common Address Redundancy Protocol) geliştirildi
  \end{itemize}
}

\subsection{NDA}

\frame {
  \frametitle{Non Disclosure Agreement (NDA)}
  \begin{itemize}[<+->]
    \item Sahip olunan bir bilgiyi veya materyali, asıl üreticisinin
      izni olmadan üçüncü partilere dağıtmama anlaşması
    \item Genelde donanım üretecileri ile yazılım geliştiricileri arasında
      imzalanır
    \item ``Sözde'' entellektüel sermayeyi korumak amacı ile donanım üreticileri
      tarafından diretilir
    \item İhlali, ciddi hukuki yaptırımlar getirir
    \item Üreticiler, belge sağlamak yerine binary sürücüleri tercih ediyor
  \end{itemize}
}

\frame {
  \frametitle{NDA Özgür Yazılımı Tehdit Ediyor}
  \begin{itemize}[<+->]
    \item Hiç itiraz etmeden NDA imzalayan Linux geliştiricileri
    \item Linux geliştiricilerinin bu umursamazlığından yararlanan
      küçük/büyük donanım şirketleri
    \item Sonuç olarak; gittikçe yaygınlaşan NDA'lar
    \item Açık Kaynak Kodu $\ne$ Özgür Yazılım \\
      Kaynak kodunu görmek yazılım geliştirmek için yeterli değil
    \item Günün birinde gerçek anlamda özgür donanım sürücüleri
      geliştirilemeyecek
    \item Gittikçe yaygınlaşan binary sürücü kullanma alışkanlığı,
      özgür yazılımı öldürüyor
    \begin{itemize}[<5->]
      \item nVidia
      \item Softmodem'ler
      \item 802.11g, bazı gigabit ethernet kartları, fibre channel
    \end{itemize} 
  \end{itemize}
}

\frame {
  \frametitle{Aktivizm İşe Yarıyor}
  \begin{itemize}[<+->]
    \item OpenBSD projesi NDA diretmesine boyun eğmiyor
    \item Aktivizm genelde işe yarıyor
    \item Donanım üreticilerini, sistemden desteği kaldırmak ile tehdit
      etmek (OpenBSD, FreeBSD, NetBSD) işe yarıyor
    \item Şu ana kadar 20'den fazla donanım için gerekli belge aktivizm
      ile elde edildi
    \item Örnekler: \\
      QLogic Firmware \\
      Adaptec \\
      3Com 3c990 \\
      ...
  \end{itemize}
}

\subsection{Güvenlik}
\frame {
  \frametitle{Güvenlik Yaklaşımı}
  \begin{itemize}[<+->]
    \item Bulunan yazılım hatalarını güvenlik açığı olup olmadığına
      bakmadan düzeltmek
    \item Bir yazılım hatası veya açığı bulunduğunda bütün kaynak
      kodu ağacını benzer hatalar için taramak
    \item Güvenlik yazılımları geliştirmek ve entegre etmek
    \item Güvenliği arttırıcı altyapı önlemleri almak
  \end{itemize}
}

\frame {
  \frametitle{Örnek Güvenlik Yazılımları}
  \begin{itemize}
    \item OpenSSH
    \item OpenBSD Packet Filter: pf
    \item Spam Defferal Daemon: spamd
  \end{itemize}
}

\frame {
  \frametitle{OpenSSH}
  \begin{itemize}[<+->]
    \item Güvenli uzaktan terminal bağlantıları
    \begin{itemize}[<1->]
      \item Port yönlendirmesi ile güvenli tüneller
      \item X Window System için yönlendirme
      \item Entegre SOCKS proxy
    \end{itemize}
    \item İlk SSH gerçekleştiriminin lisansının değişmesi
    \item En son özgür sürümden ortaya çıkan OpenSSH
    \item Tek programda SSH1 ve SSH2 protokol desteği
    \item Privilege Seperation
  \end{itemize}
}

\frame {
  \frametitle{Herkes için OpenSSH}
  \begin{itemize}
    \item IBM: AIX
    \item Sun Microsystems: Solaris
    \item Hewlett Packard: HP-UX, Ağ aktif cihazları
    \item Cisco: Ağ aktif cihazlari, vekil sunucular, ...
    \item Alcatel: Telefon santrali, Ağ aktif cihazları
    \item Juniper Networks
    \item Lucent
    \item Siemens: Telefon santrali, elektrik dağıtımı santrali
  \end{itemize}
}

\frame {
  \frametitle{Spam Defferal Daemon: spamd}
  \begin{itemize}[<+->]
    \item Geleneksel spam engelleme metotlarının aksine \\
      \emph{pasif karşı saldırı} yöntemi
    \item Spammerların ve onlara yardım ve yataklık edenlerin canını
      acıtabilecek bir yöntem
    \item \emph{Black listing} yöntemi ile spammera vakit kaybettirme ve
      kaynaklarını tüketmeye yardımcı olma
    \item \emph{Grey listing} yöntemi ile ``gönder ve unut'' şeklinde
      gönderilmiş spam'i geri çevirme
  \end{itemize}
}

\frame {
  \frametitle{OpenBSD Packet Filter: pf}
  \begin{itemize}[<+->]
    \item Eski paket filtresi IPF'in lisansının değişmesinden
      sonra Daniel Hartmeier'in gerçekleştirimi
    \item Gerçek anlamda \emph{Stateful Inspection} \\
      Guido van Rooij - www.madison-gurkha.com
    \item 30'dan fazla geliştirici
    \item NetBSD ve FreeBSD'ye taşındı/taşınıyor
    \item Bazı önemli özellikleri
    \begin{itemize}[<5->]
      \item Scrubbing, Antispoof, Ayarlanabilir zaman aşımı süreleri
      \item NAT/Redirection, Bridge modundan filtreleme, paket etiketleme
      \item Adres Tabloları, Anchor (alt kurallar)
      \item Yük dengeleme (load balancing)
      \item Pasif işletim sistemi tespiti (p0f v2)
      \item IPv6
    \end{itemize}
  \end{itemize}
}

\frame {
  \frametitle{Güvenlik için Altyapı Önlemleri}
  \begin{itemize}[<+->]
    \item Propolice/SSP
    \begin{itemize}[<1->]
      \item GCC eklentisi
      \item Kanarya tabaklı stack taşırması kontrolü
      \item StackGuard'dan daha akıllı, platform bağımsız, güvenilir
    \end{itemize}
    \item W$^\wedge$X
    \begin{itemize}[<2->]
      \item Bellek sayfaları için ``Ya Yaz Ya da İşlet'' modeli
      \item Her mimaride mümkün değil, farklı mimariler farklı çözümler \\
        Per Page X-bit: amd64, alpha, hppa, sparc, sparc64 \\
        Per Segment X-bit: powerpc \\
        Code Segment Limit: i386
    \end{itemize}
    \item ELF .rodata segmenti ile !X koruması
    \item Stack Gap Randomization - Rassal 8 byte Hizalama
    \item Guard Pages \\
      Elektrikli güvenlik telleri. Dokunursan ölürsün
    \item Shared Lib. Loading Order Randomization
  \end{itemize}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%

\section{Yeni Özellikler}

\subsection{Güvenlik}
\frame {
  \frametitle{Güvenlik İçin Eklentiler}
  \begin{itemize}[<+->]
    \item Yetki Ayrıştırması - Privilege Seperation (privsep)
    \begin{itemize}[<1->]
      \item Yetki gerektiren işlemleri küçük ve izole bir program parçasının
        gerçekleştirmesi
      \item Boş bir dosya sisteminde chroot çalışan izole program
      \item Suistimal edilecek bir şey yok
      \item sshd, syslogd, pflogd, tcpdump, XFree86, xterm, isakmpd, ... 
    \end{itemize}
    \item Yetki Bırakma - Privilege Revoke (privrevoke)
    \begin{itemize}[<3->]
      \item Programların yetkilerini en kısa sürede bırakması
      \item Genelde yazılımlar başlarken yetkiye ihtiyaç duyuyor
      \item Neredeyse tüm suid/sgid programlar \\
        ftpd, apache, dhcpd, dhcrelay, pppoe, ...
    \end{itemize}
  \end{itemize}
}

\subsection{Alternatifler}

\frame {
  \frametitle{Tekellere Karşı Alternatifler}
  \begin{itemize}[<+->]
    \item CARP : Common Address Redundancy Protocol
    \begin{itemize}[<1->]
      \item VRRP alternatifi
      \item Cisco HSRP patentinden uzak
      \item Daha güvenilir
      \item Daha ölçeklenebilir
      \item Açık ve Özgür
    \end{itemize}
    \item BGPD : Border Gateway Protocol Daemon
    \begin{itemize}[<3->]
      \item Internet'in temel yönlendirme protokolu
      \item Zebra / Quagga projelerinin temel sorunlarından uzak
      \item Cisco gerçekleştiriminden çok daha performanslı
      \item Güvenilir
      \item Açık ve Özgür
    \end{itemize}
  \end{itemize}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%

\section{Kapanış}

\subsection{OpenBSD'ye Erişim}

\frame {
  \frametitle{OpenBSD'ye Erişim}
  \begin{itemize}[<+->]
    \item Web Sayfası \\
      http://www.openbsd.org \\
      http://www.tr.openbsd.org
    \item FTP
      ftp://ftp.openbsd.org/pub/OpenBSD \\
      ftp://ftp.linux.org.tr/pub/OpenBSD
    \item RSYNC
      rsync://ftp.linux.org.tr::OpenBSD
    \item Diğer
    \begin{itemize}
      \item HTTP, AFS \\
        http://www.openbsd.org/ftp.html
      \item AnonCVS, CVSYNC, CVSup, CTM
    \end{itemize}
  \end{itemize}
}

\subsection{Nasıl Yardımcı Olabilirsiniz}

\frame {
  \frametitle{Nasıl Yardımcı Olabilirsiniz}
  \begin{itemize}[<+->]
    \item Kod yazarak
    \item Hata bularak
    \item Belgelendirmeye yardımcı olarak
    \item Maddi katkıda bulunarak
    \begin{itemize}[<4->]
      \item CD satışları
      \item T-Shirt, Poster
      \item Bağışlar (Paypal, Çek, ...)
      \item Donanım Bağışları
    \end{itemize}
  \end{itemize}
}

\frame{\titlepage} % closing frame

\frame[squeeze] {
  \frametitle{Lisans}
  \tiny
  Copyright (c) 2004 Can E. Acar \\
  Copyright (c) 2004 Berk D. Demir \\
  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:
 
     \begin{itemize}
     \item Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
     \item Redistributions in binary form must reproduce the above
       copyright notice, this list of conditions and the following
       disclaimer in the documentation and/or other materials provided
       with the distribution.
     \end{itemize}
 
  \tiny
  THIS DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.

}

\end{document}

%%% TODO
% - Currently our todo list is empty ;-)
