daha fazla değişiklik

remotes/1719671380117180819/master
AA 4 years ago
parent 9a76b07c32
commit 60d1d1aeee
Signed by: AA
GPG Key ID: 471A839AB4DD8E6D
  1. 4
      src/beseri_guvenlik/2fa.md
  2. 2
      src/beseri_guvenlik/yubikey_2fa.md
  3. BIN
      src/cihaz_guvenligi/ga/qrcode.png
  4. 116
      src/cihaz_guvenligi/ga_pam.md
  5. 1
      src/cihaz_guvenligi/grapheneos.md
  6. 1
      src/cihaz_guvenligi/lineageos.md
  7. 19
      src/cihaz_guvenligi/login.md
  8. 25
      src/cihaz_guvenligi/mobil_cihazlar.md
  9. 0
      src/cihaz_guvenligi/parmak_pam.md
  10. 1
      src/cihaz_guvenligi/ssh.md
  11. 1
      src/cihaz_guvenligi/sunucu_2fa.md
  12. 1
      src/cihaz_guvenligi/yubikey_pam.md

@ -20,11 +20,15 @@ Bugün bankacılık işlemleri yapan neredeyse herkes 2FA'nın en yaygın metodu
* [FreeOTP+](https://github.com/helloworld1/FreeOTPPlus) ve [andOTP](https://github.com/andOTP/andOTP), Android cihazlarınızda 2FA kodları üretmek için kullanabileceğiniz özgür yazılımlardır.
[andOTP kullanım rehberi](beseri_guvenlik/andotp.md)
* **Donanımsal anahtarlar ile**: Özellikle çift aşamalı yetkilendirme için tasarlanmış cihazlar güvenlik için en iyi çözümdür. Lakin donanımların pahalı olması sebebi ile pek az hizmet bu yöntemi tercih etmektedir. Bu amaçla kendi cihazınızı alıp yazılım yerine bu cihazlar ile kod üretimi yapabilirsiniz.
* [Yubikey](https://www.yubico.com): Sadece bir 2FA cihazı olmaktan çok daha fazlasını yapabilen en yaygın kullanılan çift aşamalı yetkilendirme cihazıdır. Birden fazla protokolü desteklemekle tavsiye edilebilecek ilk üründür.
* [RSA Tokens](https://community.rsa.com/community/products/securid/hardware-tokens): Bulabilir ve kullanabilirseniz RSA donanımlarını kod tabanlı 2FA uygulamalarında kullanabilirsiniz.
[Yubikey 2FA rehberi](beseri_guvenlik/yubikey_2fa.md)
## 2FA kullanırken nelere dikkat edilmeli?
2FA başkalarının hesabınıza girmesini etkili şekilde engellediği gibi sizin de hesabınıza erişmenizi aynı şekilde engelleyebilir. Bu sebeple 2FA kodlarınızın gönderildiği SIM kartınızı veya kodların üretildiği cihazınızı korumalısınız. Hayat sürprizlerle dolu olduğundan genellikle SMS harici her 2FA uygulaması size çoğunlukla 10 tane yedek kod verir. Bu yedek kodları bastırarak güvenilir bir yerde saklamanız hatta bir iki tanesini cüzdanınızda taşımanız şiddetle önerilir. Bu şekilde ikinci aşamanızı kaybetmeniz durumunuzda hesaplarınızdan mahrum kalmazsınız.

@ -1,3 +1,3 @@
# Yubikey ile U2F Kurulumu
# Yubikey ile 2FA Kurulumu
[Bu sayfaya katkı verebilirsiniz.](https://git.oyd.org.tr/oyd/guvenlik)

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

@ -0,0 +1,116 @@
# Google-Authenticator ile Login Güvenliği
Google-authenticator(GA) GNU/Linux cihazlarda login ekranlarında parola ile birlikte [ikinci faktör olarak (2FA)](beseri_guvenlik/2fa.md) akıllı cihazlardan alınacak bir kodu sunarak giriş yapılmasına imkan veren bir yazılım. GA kullanarak cihazlarınıza erişimi daha kontrollü ve güvenli hale getirmek mümkün.
## Kurulum
Öncelikle bilgisayarınıza google-authenticator ve PAM modülünü kurmanız gerekiyor. Bunun için aşağıdaki komutları çalıştırın.
Debian sistemlerde: `sudo apt-get install google-authenticator libpam-google-authenticator`
RPM tabanlı sistemlerde: `sudo yum instlal google-authenticator libpam-google-authenticator`
Kurulumun tamamlanmasının ardından GA'nın ayarlarını yaparak cihazınızda bir anahtar oluşturmak bunu kullandığınız mobil cihazdaki bir OTP yazılımına aktarmak için aşağıdaki komutu uçbirimde çalıştırın.
`google-authenticator`
Komutu çalıştırmanızın ardından `Do you want authentication tokens to be time-based (y/n)` sorusuna evet anlamında `y` cevabını verip devam edin.
Uçbirimde aşağıdaki şekilde bir karekod ve bir terslik durumunda kullanılmak üzere 5 adet tek kullanımlık kod çıkacaktır.
![alt-text](ga/qrcode.png)
Çıkan karekodu tercihiniz olan bir OTP yazılımı ile mobil cihazınıza eklemelisiniz. Bunun için özgür [andOTP yazılımı önerilir ve kullanım rehberine başvurabilirsiniz.](beseri_guvenlik/andotp.md) Aynı zamanda acil durum kodlarını da elle veya yazıcı ile yazdırarak güvenli bir yerde taşımanız bir aksilik durumunda cihazınıza erişmeniz için hararetle önerilir. Bunun için en iyi yol bastırdığınız kodları kesip koyu renkli bir bant ile kaparak cüzdan gibi sürekli taşıdığınız bir yerde bulundurmanız olacaktır. Böylece gerektiğinde kodları kullanmanız mümkün olacağı gibi istenmeyen şekilde el geçirilmesinin de önüne geçebilirsiniz. Şayet tehdit modelniz bu durumun aksine hareket etmenizi gerektiriyor ise cihazınıza daha zor olacak ise de GA erişimi olmadan da ulaşmanız mümkündür.
Karekodu taradıktan sonra gelecek tüm sorulara evet diyerek kurulumu tamamlayın. Çıkan sorular sırası ile bir kodun tekrar kullanılması, zaman sapmalarına karşı koruma ve sürekli giriş denemelerine karşı tedbir sunacaktır.
```
Do you want me to update your "/home/xxxx/.google_authenticator" file? (y/n) y
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, a new token is generated every 30 seconds by the mobile app.
In order to compensate for possible time-skew between the client and the server,
we allow an extra token before and after the current time. This allows for a
time skew of up to 30 seconds between authentication server and client. If you
experience problems with poor time synchronization, you can increase the window
from its default size of 3 permitted codes (one previous code, the current
code, the next code) to 17 permitted codes (the 8 previous codes, the current
code, and the 8 next codes). This will permit for a time skew of up to 4 minutes
between client and server.
Do you want to do so? (y/n) y
If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting? (y/n) y
```
Bu işlemin ardından ev dizinizin altında `.google_authenticator` dizininde kullanılacak anahtarınız oluşturulmuş olacak ve işletim sisteminizin PAM ayarlarına giriş yapmaya hazır olacaksınız.
## PAM ayarları
[PAM](https://en.wikipedia.org/wiki/Linux_PAM) GNU/Linux cihazlarda kullanıcı yetkilendirmesinden sorumlu olan yazılımdır. `/etc/pam.d` dizini altında bulunan ayar dosyaları ile PAM davranışları şekillendirilebilir. Bu rehber PAM detaylarına girmek üzere yazılmadığından bir sistemdeki olası en güvenli kullanımı önerecektir. Fakat GA ve PAM ayarlarını ihtiyacınıza göre istediğiz gibi şekillendirebilirsiniz. Buna parola olmadan sadece GA kodu ile cihazınıza giriş yapmaktan, su/sudo gibi özel login tiplerine sınırlama getirmek şeklinde çeşitlendirmek mümkün.
Cihazınızdaki tüm PAM kontrolündeki login işlemlerine GA kodunu uygulamak için aşağıdaki dosyayı tercih ettiğiniz bir metin editörü ile açın. Aşağıdaki komutta `nano` editörü kullanılmıştır.
** Birazdan açacağınız sudo yetkisi vereceğiniz uçbirimi kapatmayın!!! **
`sudo nano /etc/pam.d/common-auth`
Karşınıza aşağıdakine benzer bir metin çıkacaktır.
```
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
# As of pam 1.0.1-6, this file is managed by pam-auth-update by default.
# To take advantage of this, it is recommended that you configure any
# local modules either before or after the default block, and use
# pam-auth-update to manage selection of other modules. See
# pam-auth-update(8) for details.
# here are the per-package modules (the "Primary" block)
auth [success=1 default=ignore] pam_unix.so nullok_secure
#auth optional pam_exec.so /home/alper/wrongpasspic.sh
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config
```
Dosyanın sonuna aşağıdaki satırı ekleyin ve `ctrl + x` komutu ile kaydedip çıkın.
`auth required pam_google_authenticator.so`
** Şayet bu aşamada bir sorun var ve ekran kilidinizi devreye alırsanız cihazınıza tekrar giremeyebilirsiniz!! **
Bu noktadan sonra cihazınızdaki tüm yetkilendirme gereken işlemlerde sizden GA kodu istenecektir. Her şeyin yolunda olduğundan emin olmak ve bir sorun varsa zahmetsizde düzeltmek için ** yukarıdaki tavsiyeye bağlı olarak açık tuttuğunuz sudo yetkili uçbirimden ** başka bir uç birim açarak aşağıdaki komutu girin.
`sudo echo test`
sudo yetkilendirmesi için sizden parola ve ardından GA kodu sorulması gerekli. Şayet bu gerçekleşmedi veya `test` yazısı başarılı şekilde yazılmadı ise ayarlarınızda bir terslik var demek olacağından geri dönüp adımlarda bir hata yapıp yapmadığınızı kontrol etmelisiniz. Şayet bir sorunla karşılaşırsanız sudo yetkili uçbirimden `/etc/pam.d/common-auth` dosyasında yaptığınız değişiklikleri geri alıp kaydederek cihazınızın erişiminiz dışına kitlenmesini engelleyebilirsiniz.
Şayet test'i başarılı şekilde geçti iseniz artık google-authenticator ile birlikte cihazınızı biraz daha güvenli şekilde kullanmaya başlayabilirsiniz.
## Diğer kullanıcılar
Eğer cihazda birden fazla kullanıcı var ve sadece bir kullanıcı GA kullanacak ise `/etc/pam.d/common-auth` yapılandırmasındaki değişikliği aşağıdaki ile değiştirerek sadece google-authenticator kurulumu yapmış kullanıcıların OTP kullanmasını sağlayabilirsiniz.
** Bu durum root kullanıcısının 2FA dışında kalmasına sebep olacağından gerekmedikçe önerilmez. **
`auth required pam_google_authenticator.so nullok`
Şayet root kullanıcısının da girişini GA ile kullanmak isterseniz yukarıdaki adımları root kullanıcı ile tekrar etmeniz gereklidir.

@ -0,0 +1 @@
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)

@ -0,0 +1 @@
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)

@ -0,0 +1,19 @@
# Yetkilendirme Güvenliği
Login veya yetkilendirme GNU/Linux dahil olmak üzere neredeyse her bilgisayar sisteminin temel güvenlik tedbirlerinden biridir. Ekran kilidi olarak yaygın şekilde kullanıcıların karşısına çıkan yetkilendirme sistemleri, bilgisayara kimlerin hangi yetki ile erişeceğine ve erişime olan kişilerin belirlenmesinde kullanılır.
En temel yetkilendirme kullanımı kullanıcı adı ve parola şekilindedir. Her kullanıcı bir kullanıcı adı ile tanımlanır ve bu kullanıcıya giriş yapabilmesi için bir parola verilir. Söz konusu parola kullanıcılar tarafından sır olarak saklanır ve sisteme girişte kendilerine sorulur. Bu bakımdan yetkilendirme sisteminin güvenliği [parolanın güvenliği](https://guvenlik.oyd.org.tr/beseri_guvenlik/parolalar.html) ve kullanıcıların sır tutabilmesine bağlıdır.
Yetkilendirme sistemlerine sunulabilecek diğer girdiler; tek kullanımlık kodlar (OTP), biyometrik veriler (parmakizi vb.) ve kriptografik araçlar (akıllı kartlar, Yubikey) olarak çeşitlendirilebilir. Bu girdiler tek başına yetkilendirme için yeterli görülebileceği gibi ikinci faktör olarak parola ile birlikte sistem güvenliğini arttırmak için de kullanılabilir. Bu sayede bir kullanıcının sistemde yetkilendirilmesi bilgiği bir şey ile sahip olduğu bir şeye gereksinim duyacağından yetkilendirme için bir saldırganın edinmesi gereken kaynak arttırılmış olur.
## İkinci faktör
İkinci faktör olarak tercih edeceğiniz sistem tamamen kullanım ve güvenlik ihtiyaçlarınıza bağlıdır. Kimi sistemler var olan donanımlarınızı (akıllı telefon, parmak) kullanabilirken
[Google-Authenticator ile yetkilendirme](cihaz_guvenligi/ga_pam.md)
[Yubikey ile yetkilendirme](cihaz_guvenligi/yubikey_pam.md)
[Parmakizi ile yetkilendirme](cihaz_guvenligi/parmak_pam.md)
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)

@ -12,13 +12,13 @@ Günümüzdeki tüm genel son kullanıcı ürünleri gibi mobil cihazlar da özg
* Yazılım özgürlüğü: Günümüzdeki yazılım özgürlüğü mücadelesinin çizgisinde mobil cihazların da yazılımsal özgürlüğü hala ilerleme aşamasında. Bilgisayarlar gibi firmware seviyesinden işletim sistemi ile kullanıcı yazılımlarına kadar pek çok yazılım üreticilerden geldiği hali ile özgür olmamakta. İşletim sistemi ve yazılımlar görece özgürleştirilebilse de hala firmware seviyesi mülk olarak kullanılmak zorunda. Bu bilinmezlikle birlikte bir güvenlik riskini de orta çıkarmakta.
* GSM mahremiyeti: Baseband modem GSM şebekesine bağlantı kuran donanım olarak mobil cihazlarda donanım ve yazılım özgürlüğünün en büyük düşmanı konumunda. Baseband çoğu cihazda ana işlemci ile doğrudan bağlantı halinde, RAM'i ortak kullanmakta ve dilediği veriye ulaşıp işlem yapabilmekte. Bu cihazın yazılımının eski ve özgür olmaması bir risk oluşturmakta ve bu durumun [kötüye kullanıldığı bilinmekte.](https://money.cnn.com/2014/06/06/technology/security/nsa-turn-on-phone/index.html) GSM'in güvenli olduğu varsayılsa bile sistemin tasarımı gereği hizmet sağlayıcı ve uzantısı olarak devletler tüm kullanıcıların anlık olarak nerede olduğunu ve kullanım bilgilerini elde edebilmekte. Bu mahremiyet sorunu duruma göre bir güvenlik sorununa da dönüşebilmekte.
* GSM mahremiyeti: Baseband modem, GSM şebekesine bağlantı kuran donanım olarak mobil cihazlarda donanım ve yazılım özgürlüğünün en büyük düşmanı konumunda. Baseband çoğu cihazda ana işlemci ile doğrudan bağlantı halinde, RAM'i ortak kullanmakta ve dilediği veriye ulaşıp işlem yapabilmekte. Bu cihazın yazılımının eski ve özgür olmaması bir risk oluşturmakta ve bu durumun [kötüye kullanıldığı bilinmekte.](https://money.cnn.com/2014/06/06/technology/security/nsa-turn-on-phone/index.html) GSM'in güvenli olduğu varsayılsa bile sistemin tasarımı gereği hizmet sağlayıcı ve uzantısı olarak devletler tüm kullanıcıların anlık olarak nerede olduğunu ve kullanım bilgilerini elde edebilmekte. Bu mahremiyet sorunu duruma göre bir güvenlik sorununa da dönüşebilmekte.
## Risk değerlendirmesi
Mobil cihazların günümüz kullanıcıları için hem mahremiyet hem de güvenlik açısından pek çok istenmeyecek özelliği bulunmaktadır. Bu özelliklerin kimi doğal olarak var olmakta kimileri ise kasıtlı olarak kişileri ve bilgilerini ticarileştirme amacı ile kötüye kullanılmaktadır.
Mobil cihazların günümüz kullanıcıları için hem mahremiyet hem de güvenlik açısından pek çok istenmeyecek özelliği bulunmaktadır. Bu özelliklerin kimi doğal olarak var olmakta kimileri ise kasıtlı olarak kişileri ve bilgilerini kontrol etmek amacı ile kötüye kullanılmaktadır.
Bugün genel bir tavsiye olarak güvenlik ihtiyacının yüksek olduğu durumlarda ve tehlike doğurabilecek bilgilerin işlenmesinde mobil cihazların kullanılması önerilmez. Hem donanımsal bilinmezlik hem de gerekli güvenlik ihtiyacının karşılanmasının mobil cihazın avantajlarını ortadan çok yüksek oranda kaldırmasından dolayı önemli durumlarda uygun donanımların seçilmesi yerinde olur.
Bugün genel bir tavsiye olarak güvenlik ihtiyacının yüksek olduğu durumlarda ve tehlike doğurabilecek bilgilerin işlenmesinde mobil cihazların kullanılması önerilmez. Hem donanımsal bilinmezlik hem de gerekli güvenlik ihtiyacının karşılanmasının mobil cihazın avantajlarını çok yüksek oranda ortadan kaldırmasından dolayı kritik kullanımlarda uygun donanımların seçilmesi yerinde olur.
Şayet kullanım ihtiyacı mobil bir donanımı gerektiriyor ve bu gereklilik öngörülen riskleri aşacak durumda ise değerlendirmenin yapılarak gerekli tedbirlerin alınması ile riskin en aza indirilmesi mümkündür.
@ -34,17 +34,26 @@ Yukarıdaki soruların cevaplarına göre en uygun cihaz ve kullanım tasarımı
Aşağıda çeşitli kullanım senaryoları belirlenmiştir. Buna göre uygun kullanım önerileri de bulunmaktadır.
1. Mutlaka bağlı olmalıyım
2. wifi wifi
1. Sürekli bağlantı
2. wifi - wifi
3. Harici wifi modem
4. şifreleme
### GSM modemli cihaz kullanımı
### Sürekli bağlantı ihtiyacı ve GSM destekli cihazlar
Şayet durumun değerlendirmeniz sonucunda modern cep telefonu kullanımı alışkanlıklarını sürdürmek zorundaysanız Baseband modemi taşıyan bir cihazı alıp kullanmanız gerekli. Bu teorik olarak özgür olmayan ve kürsel bir ağ ile sürekli bağlantı kurma imkanına sahip bir işlemciyi cihazınızın üzerinde yetki sahibi olabileceği riskini de taşımak anlamına gelmekte. Genel kanı, özellikle hedef alınmayacaksanız veya hedef gözetmeyen toplu bir gözetim/saldırının nesnesi olma ihtimaliniz düşük ise bu tehlikeyi taşımanın makul kabul edildiği yönündedir.
Şayet durumun değerlendirmeniz sonucunda modern cep telefonu kullanımı alışkanlıklarını sürdürmek zorundaysanız Baseband modemi taşıyan bir cihazı alıp kullanmak zorunda kalacaksınız. Bu teorik olarak özgür olmayan ve kürsel bir ağ ile sürekli bağlantı kuran bir işlemciyi cihazınızın üzerinde yetki sahibi olabileceği riskini de taşımak anlamına gelmekte. Genel kanı, özellikle hedef alınmayacaksanız veya hedef gözetmeyen toplu bir gözetim/saldırının nesnesi olma ihtimaliniz düşük ise bu tehlikeyi taşımanın makul olduğu yönündedir.
Bu noktada cihaz tercihiniz söz konusu riskinizi azaltabilir. [Baseband izolasyonu](https://www.replicant.us/freedom-privacy-security-issues.php) cihazların ana işlemcisi ile baseband modeminin birbirinden ayrı olmasını ifade etmektedir. Bu şekilde tasarlanmış cihazlarda işletim sisteminin ve işlediği bilgilerin modem tarafından görülmesi mümkün olmadığı gibi modem sisteme doğrudan müdahale edememekte. Bu anlamda işletim sistemi modemi kapatmak istediğinde (uçak modu) modemin gerçekten kapandığına inanmak mümkün olabilmekte.
Bu noktada yapacağınız cihaz tercihi baseband modemden doğan endişelerinizi azaltabilir. [Baseband izolasyonu](https://www.replicant.us/freedom-privacy-security-issues.php) cihazların ana işlemcisi ile baseband modeminin birbirinden ayrı olmasını ifade etmektedir. Bu şekilde tasarlanmış cihazlarda işletim sisteminin ve işlediği bilgilerin modem tarafından görülmesi mümkün olmadığı gibi modem sisteme doğrudan müdahale edememekte. Bu anlamda işletim sistemi modemi kapatmak istediğinde (uçak modu) modemin gerçekten kapandığına inanmak mümkün olabilmekte.
Hangi telefonların bu imkanı sunduğunu öğrenmek ise başlı başına bir sorun olabilmekte. [Replicant projesinin](https://www.replicant.us/) tercih ettiği cihazlar özellikle baseband izolasyonu imkanı sağlamakta. [GrapheneOS](https://grapheneos.org) projesi de sanallaştırma aracılığı ile cihaz işlemcisi ile basband arasında bağlantıları kontrol edebilmekte. [Pinephone](https://www.pine64.org) da [wifi ve modem donanımlarını işlemciden ayrı tutmakta.](https://www.pine64.org/2020/01/24/setting-the-record-straight-pinephone-misconceptions/) Benzer şekilde [Librem5](https://puri.sm/products/librem-5/) cihazlar da baseband modem'i sistemde ayrı çalıştırmakta.
Sayılan cihazların ya modern kullanım için eski ya da Türkiye'de bulunması zor cihazlar olması gerçeği söz konusu tavsiyeyi bir noktada boşa çıkarmakta. Bir cihazın izolasyon konusundaki kapasitesini öğrenmek çoğu zamandan pek de kolay bulunmayan tasarım detaylarını incelemeyi gerektirdiğinden yeni cihazların keşfi kolay olmamakta.
Şayet sayılan projelere dahil bir cihazı kullanma imkanınız var ise GSM şebekesini kullanırken en azından cihazınızı kontrol altında tumanız mümkün olabilir.
## Wifi
Günümüzdeki internet üzerinden iletişim hizmet ve sistemlerinin gelişmişliği altında artık sesli ve yazılı iletişimin sadece internet bağlantısı ile sağlanması çok kolaylaşmış durumda. [Signal](yazisma_guvenligi/signal.md) veya [Jitsi](https://meet.jit.si) gibi araçların sağladığı imkanlar ile artık GSM ses bağlantısına ihtiyaç eskisi kadar yok. Bu neden ile bir kişi internet bağlantısını sağlayabildiği her yerden iletişim kurması mümkündür.

@ -0,0 +1 @@
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)

@ -0,0 +1 @@
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)

@ -0,0 +1 @@
[Bu bölüme katkı verebilirsiniz](https://git.oyd.org.tr)
Loading…
Cancel
Save