linux sistemler hakkında sistem yönetimi, sorunlar, görüşler, kurulum örnekleri, konfigürasyonlar, performans ayarları, güvenlik ipuçları ve yapılandırma örnekleri
PostgreSQL veritabanlarında veri güvenliği ve sürekliliği kritik bir öneme sahiptir. Bu noktada pgBackRest, açık kaynaklı bir yedekleme ve kurtarma çözümü olarak öne çıkmaktadır. Geleneksel yedekleme araçlarının aksine, pgBackRest performans, güvenilirlik ve esneklik konularında PostgreSQL yöneticilerine benzersiz avantajlar sağlar.
pgBackRest, veritabanı yedeklemelerinde tam (full) ve artımlı (incremental) yedekleme seçenekleri sunarak veri yönetimini kolaylaştırır. Tam yedekleme tüm veritabanı içeriğini kapsarken, artımlı yedekleme yalnızca son yedeklemeden bu yana değişen verileri kaydeder. Bu yaklaşım, hem depolama alanından tasarruf sağlar hem de yedekleme süresini önemli ölçüde kısaltır.
pgBackRest’in kullanımı basit yapılandırma dosyaları ve net komutlarla oldukça pratiktir.
Ubuntu/debian sistemlere aşağıdaki gibi dahil edilebilir.
apt installpgbackrest
Bash
Ardından aşağıdaki /etc/pgbackrest.conf dosyasında gerekli yapılandırmalar yapılır.
[global]# Performans ve İşlem Ayarlarıprocess-max=2 # Paralel işlem sayısıstart-fast=y # Hızlı başlangıçstop-auto=y # Otomatik durdurmalog-path=/mnt/pgbackrest/log # Log dosyası konumulog-level-file=warn # Dosya log seviyesilog-level-console=detail # Konsol log seviyesibackup-standby=n # Standby sunucudan yedeklemeresume=n # Yarım kalan yedeklemeleri devam ettirmeexclude=log/ # Dışarıda bırakılacak dizinlerarchive-async=y # Asenkron arşivlemearchive-timeout=360 # Arşivleme zaman aşımı# S3 Bulut Deposu Yapılandırmasırepo1-type=s3repo1-s3-bucket=<BUCKET_ADI>repo1-path=<KLASÖR>repo1-s3-endpoint=s3.amazonaws.comrepo1-s3-region=eu-west-1repo1-s3-key=<ANAHTAR>repo1-s3-key-secret=<GİZLİ_ANAHTAR>repo1-retention-full=2 # Full yedek sayısırepo1-retention-diff=1 # Diferansiyel yedek sayısı# Yerel Yedek Deposurepo2-path=/backup/pgbackrest/reporepo2-retention-full=2repo2-retention-diff=1# Şifreleme Ayarlarırepo1-cipher-type=aes-256-cbcrepo1-cipher-pass=<ŞİFRE>repo2-cipher-type=aes-256-cbcrepo2-cipher-pass=<ŞİFRE># PostgreSQL Stanza Tanımı[pg16_pg]pg1-path=/mnt/data/16/main # Veritabanı veri dizinipg1-port=5432 # PostgreSQL portu
Plaintext
Yapılandırmayı kayıt ettikten hemen sonra tabii ki bu yapılandırmayı PostgreSQL için geçerli kılmalıyız ki WAL kayıtlarınıda alalım,
Özellikle Türkiye’de sanal sunucu satın aldığınızda imajlar oldukça eski olur, Debian 9.6 ve Debian 10 serisiyle karşılaşabilirsiniz. Zaten Debian 9.6 çöp olduğu için imkanınız varsa Debian 10 kurulumu yaparsınız. Daha sonra Debian 12 yükseltmek istediğinizde başarılı bir şekilde işlem devam ederken aşağıdaki gibi bir hata ile karşılaşabilirsiniz.
Daha sonra buna bağlı cronları kaldırmanız lazım bunun içinde /etc/cron.d/ içerisinde sendmail ile alakalı ne kadar conf dosyası varsa kaldırın servisi yeniden başlatın.
systemctlrestartcron
Daha sonra şişen logları da sıfırlamak için aşağıdaki adımı izleyin, işiniz bitti hadi h.o
Bazı VPS sağlayıcılarının spam e-posta gönderimine karşı olarak mail gönderim portlarını ön tanımlı olarak kapattıklarını hatırlatayım, yani abi ben kurdum ama e-posta gönderip alamıyorum diyorsanız sağlayıcınız ile ilgilidir ve destek ile iletişime geçmeniz gerekmektedir.
Bu makalede, sistemde yer alacak olan mail komutuyla programatik olarak posta gönderebileceğimiz basit bir Postfix sunucusu kuracağız. Gerçek ve tam işlevsel bir posta sunucusuna sahip olmak için kullanıcıların gelen kutularını okuyup uzaktan posta gönderebilecekleri bir posta istemcisine giriş yapabilmeleri gerekiyor.
Bu amaca ulaşmak için bizim Dovecot’a ihtiyacımız var. Dovecot, sunucu tarafından alınan postaları depolayabilir, kullanıcı hesaplarını doğrulayabilir ve postayla etkileşim kurabilir.
Eğer bir gelen kutusu kuruyorsak, spam koruma yazılımı olan spamassassin gibi bir yazılımı da kuracağız böylece spam e-postalarda gelmeyecek.
Postfix’in posta akışını spamassassin üzerinden yönlendirebilmesi için /etc/postfix/master.cf dosyasını değiştireceğiz. Varsayılan yapılandırmayı kullanmayacağız silin gitsin ve aşağıdaki komutu çalıştırın.
echo"smtp unix - - n - - smtpsmtp inet n - y - - smtpd -o content_filter=spamassassinsubmission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_tls_auth_only=yessmtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yesspamassassin unix - n n - - pipe user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f \${sender} \${recipient}">>/etc/postfix/master.cf
ShellScript
İşlem tamam, geleneksel yöntem ile mail sunucunuz hazır, bu işlemler neticesinde sunucunuz üzerinden e-posta gönderebilirsiniz. Çok az sayıda e-posta atıyorsanız işinize oldukça yarar, diğer amaçlar için kullanılmasını önermem.
Disk üreticileri hem mevcut sürücü parametrelerini ve durumunu rapor etmek(sabit disk analizi) için standart yollar sağlamak hem de sorunları, özellikle de sürücü arızasını öngören sorunları belirtmek için disklere SMART özelliği eklediler.
Linux işletim sistemlerimizde, smartctl kullanarak sabit disklerden SMART (Self-Monitoring, Analysis and Reporting Technology) bilgilerini okuyabilirsiniz ve böylece veri kaybını önlemek için önleyici eylemler gerçekleştirilebilir arızalı sürücüyü değiştirilebilir, veri bütünlüğünü sağlayabilirsiniz.
Daha öncesinden yaklaşık 1 yıl kadar Storage cihazları ile ilgilendiğim için bu terimlerle içli dışlı oldum. Hal böyle olunca da SMART bilgilerini öğrenme fırsatı buldum. (Normalde bütün işi yönetim paneli ile yaparsın bu bilgilere gerek olmaz sana söyler bu disk öldü git değiştir der ve kırmızı ışıklarını yakar. Benim öğrenme olayım tamamen merak aslında)
Önce test için aracımızı sistemimize kuralım. Çoğu işletim sisteminin reposunda yer alıyor ve önceden yüklenmiş olarak geliyor, kurulu değilse aşağıdaki gibi dahil edebilirsiniz.
apt install -y smartmontools
Kullanabileceğiniz en temel komutlardan bir tanesi smartctl -a /dev/ada1 disk hakkında tüm bilgiyi ekrana basmaktadır.
smartctl 7.2 2020-12-30 r5155 [FreeBSD 12.2-RELEASE-p6 amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate BarraCuda 3.5 Device Model: ST4000DM004-2CV104 Serial Number: ZTT0422A LU WWN Device Id: 5 000c50 0c7a0b8a1 Firmware Version: 0001 User Capacity: 4,000,787,030,016 bytes [4.00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5425 rpm Form Factor: 3.5 inches Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-3 T13/2161-D revision 5 SATA Version is: SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Thu May 20 00:22:07 2021 +03 SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 0) seconds. Offline data collection capabilities: (0x73) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. No Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 1) minutes. Extended self-test routine recommended polling time: ( 483) minutes. Conveyance self-test routine recommended polling time: ( 2) minutes. SCT capabilities: (0x30a5) SCT Status supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 10 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 079 069 006 Pre-fail Always - 84144576 3 Spin_Up_Time 0x0003 099 099 000 Pre-fail Always - 0 4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 2 5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 064 060 045 Pre-fail Always - 2721117 9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 12 (221 247 0) 10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 2 183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0 184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0 187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0 188 Command_Timeout 0x0032 100 100 000 Old_age Always - 0 0 0 189 High_Fly_Writes 0x003a 100 100 000 Old_age Always - 0 190 Airflow_Temperature_Cel 0x0022 053 051 040 Old_age Always - 47 (Min/Max 44/48) 191 G-Sense_Error_Rate 0x0032 100 100 000 Old_age Always - 0 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 1 193 Load_Cycle_Count 0x0032 100 100 000 Old_age Always - 2 194 Temperature_Celsius 0x0022 047 049 000 Old_age Always - 47 (0 27 0 0 0) 195 Hardware_ECC_Recovered 0x001a 079 069 000 Old_age Always - 84144576 197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0 240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 12h+01m+50.717s 241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 830108619 242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 321197 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 10 - # 2 Extended offline Interrupted (host reset) 00% 10 - SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
Sabit Disk Analizi Nasıl Yapılır?
Gelelim bu çıktıda analizimizi yapmaya, aslında çıktının anlamlandırılması çok basit. Üretici sonuç itibariyle SMART yazılımı içerisine kendi ön tanımlı değerlerini koyuyor, sonrada bize diyor ki geçerli aralıklar bunlar. Sorgulama sırasında farklı bir değer görürsen dikkat et.
Peki referans değer aralıkları ile birlikte bakılması gereken kısım bu çıktıda nerede? Tabii ki de Vendor Specific SMART Attributes with Thresholds: çıktıları içerisinde yer alan aşağıdaki değerlerde (Merak etmeyin hepsini açıklayacağız, ve evet bunların çoğunu bilmeniz gerekiyor.)
Oldukça korkutucu görünüyor, değil mi? Bu sayfadan edindiğiniz bilgiyle diyeceksiniz ki “Tamam bu sürücüde sıkıntı yok devamkee” bunu diyebilecek kıvama geleceksiniz. ID’leri takip etmeyi unutmayın disk üreticileri değerleri farklı şekillerde verebiliyor.
SMART ayrıca bizim kullanabileceğimiz bir kaç testide desteklemektedir. Kısa süreli bir test başlatmak isterseniz aşağıdaki komutu kullanabilirsiniz. Aynı zamanda dilerseniz uzun süreli okuma ve yazma testleri gerçekleştirebilirsiniz bunun için short parametresi yerine long yazmanız yeterlidir. İşlem sistem özellikleriniz ve diskinizin okuma yazma kapasitesine bağlı olarak 1 gün kadar sürebilir. Lütfen sabırlı bir şekilde işlemin tamamlanmasını bekleyiniz.
smartctl -t short /dev/ada2
Bunun sonucunda aşağıdaki çıktıyı göreceksiniz, paniklemeye gerek yok 1 dakika süresince diskte işlem yapılacağını söyleyecek size.
smartctl 7.2 2020-12-30 r5155 [FreeBSD 12.2-RELEASE-p6 amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Short self-test routine immediately in off-line mode". Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 1 minutes for test to complete. Test will complete after Thu May 20 00:59:49 2021 +03 Use smartctl -X to abort test.
Başlattığımız bu testin sonucunu ise smartctl -l selftest /dev/ada2 komutunu kullanabilirsiniz.
smartctl 7.2 2020-12-30 r5155 [FreeBSD 12.2-RELEASE-p6 amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed without error 00% 9016 - # 2 Short offline Completed without error 00% 9016 - # 3 Short offline Completed without error 00% 9014 - # 4 Extended offline Interrupted (host reset) 00% 9004 - # 5 Extended offline Interrupted (host reset) 00% 8978 - # 6 Extended offline Interrupted (host reset) 00% 8965 - # 7 Extended offline Interrupted (host reset) 00% 8949 - # 8 Short offline Completed without error 00% 8943 -
Diskimiz sorunsuz, on numara beş yıldız bir şekilde görevini gerektiği gibi yapıyor olduğunu görüyoruz, peki hatalı bir çıktı nasıl gözüküyor?
smartctl 7.2 2020-12-30 r5155 [FreeBSD 12.2-RELEASE-p6 amd64] (local build) Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 1 Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error # 1 Short offline Completed: read failure 20% 717 555027784 # 2 Short offline Completed: read failure 20% 717 555027747
LBA_of_first_error(LBA=Logical Block Address) bir sabit diskte oluşan bir hata veya arıza durumunda, hata kaydının ilk olarak hangi mantıksal blok adresinde (LBA) oluştuğunu belirten bir değerdir. Bu değer, sabit diskteki belirli bir alanın bozulduğunu ve veri kaybı veya diğer sorunlar yaşanabileceğini gösterir. Eğer LBA_of_first_error değeri çok yüksekse, diskin performansında düşüş veya daha ciddi arızalar yaşanabileceği anlamına gelir ve disk değiştirilmelidir.
Burada önemli olan şimdilik Current_Pending_Sector sabit diskteki mevcut kusurlu sektör sayısını gösteren bir SMART (Self-Monitoring, Analysis and Reporting Technology) parametresidir. Bu sayı ne kadar yüksekse, o kadar fazla bozuk sektör olduğunu gösterir.
Bozuk sektörler, veri kaybına veya disk arızalarına neden olabilir ve bu nedenle diskin değiştirilmesi gerekebilir.
Yeni Aldığım Sabit Disk Sağlıklı Mı Nasıl Anlarım?
Yeni bir sabit disk aldıysanız ve sağlıklı olup olmadığını kontrol etmek istiyorsanız, aşağıdaki adımları izleyebilirsiniz:
Sabit disklerin sağlığını kontrol etmek için birçok ücretsiz yazılım bulunmaktadır. CrystalDiskInfo veya HD Tune gibi araçlar, sabit disklerin sağlık durumunu kontrol etmek için kullanılabilir.
S.M.A.R.T., sabit disklerin kendini izleme ve analiz etme özelliğidir. Yukarıdaki anlattığım yöntemi kullanabilirsiniz, burada önemli olan noktalar Current Pending Sector Count, Reallocated Sector Count, Spin Retry Count ve Raw Read Error Rate değerleridir.
Sabit disk performans testi yaparak, diskteki hız ve veri transferi kapasitesi gibi faktörleri kontrol edebilirsiniz. Bunun için yukarıda verdiğim ücretsiz uygulamalardan faydalanabilirsiniz.
Yüzey taraması, sabit diskteki olası kötü sektörleri tespit etmek için kullanılabilir. Yeni alınan disklerde bu testi uzun süreli yapmak olası hataları tespit etme ihtimalinizi arttırır.
Yukarıdaki adımları takip ederek, yeni aldığınız sabit diskin sağlıklı olup olmadığını kontrol edebilirsiniz. Ancak unutmayın ki, sabit diskler zamanla doğal olarak yıpranır ve hiçbir zaman %100 sağlıklı kalmaz.
Bu nedenle, düzenli olarak yedekleme yapmanızı ve disklerinizi S.M.A.R.T. testlerine tabii tutmanızı öneririm, ayrıca belirli süreler geçtikçe diskleri değiştirmeniz şiddetle önerilir.
Sabit Diskim Sağlıklı Gözüküyor Ama Okuma Hızı Çok Yavaş Neden?
Sabit diskinizin sağlıklı gözükmesine rağmen yavaş okuma hızlarına sahip olmasının birkaç nedeni olabilir. Bu sebeplerin biri veya bir kaçı mevcutsa ortalık karışır.
Sabit diskinizde bozuk sektörler olabilir ve okuma hızınızı düşürebilir.
Sabit diskinizde çok fazla veri olabilir okuma hızınızı düşürebilir. Sabit diskte daha fazla boş alan açarak veya gereksiz dosyaları silerek bu sorunu çözebilirsiniz.
Sabit disk sürücü yazılımınız güncel olmayabilir güncel olmayan bir sürücü yazılımıda, sabit disk performansınızı etkileyebilir. Eğer güncellemeler varsa yapmanız sorununuzu çoğu zaman çözecektir.
Sabit disk fiziksel olarak zarar görmüş olabilir bu durumda okuma hızınız düşebilir.
Firezone, kendi sunucu alt yapınızda dakikalar içinde devreye alınabilen, açık kaynak kodlu ve güvenli bir yönetim platformudur. Kullanımı basit bir web arayüzü ile özel ağlarınıza ve dahili uygulamalarınıza basit, hızlı ve güvenli bir şekilde erişim sağlayabilirsiniz.
Firezone Nasıl Kurulur?
Öncelikli olarak sisteminize docker’ı Debian Tabanlı Sistemler’e Docker Kurulumu makalesi üzerinden kurun. Sonrasında otomatik kurulum betiğini çalıştırın, bu betik sisteminizde yer alan docker sayesinde Firezone uygulamasını hızlı bir şekilde kuracak ve yapılandırmasını gerçekleştirecek.
Uygulamamızın çalışma mantığına kısaca bir göz atalım, aşağıdaki görsel ile çok rahat bir şekilde anlayabileceğinizi düşünüyorum.
Kurulum tamamlandığında aşağıdaki WebUI karşınıza çıkacak bütün yönetimi buradan yapacağız.
SSH konsolu üzerinde size verdiği bilgiler ile buraya giriş yapacaksınız. Aşağıdaki gibi kurulum tamamlandığında bu bilgileri görebilirsiniz.
Giriş yaptıktan sonra herhangi bir yapılandırma yapmanıza gerek yok, sadece hesap ekleyip kullanmaya başlayacaksınız. Size verdiği parolayı değiştirmek isterseniz firezone-ctl create-or-reset-admin komutunu kullanabilirsiniz.
Firezone Kullanıcı Nasıl Eklenir?
“Users” > “Add User” seçeneğini seçerek çok basit bir şekilde yeni kullanıcı ekleyebilirsiniz. Oluşturduğunuz bu yeni kullanıcıya cihaz eklemeyi unutmayınız.
Eklenen her bir kullanıcıya ayrıca cihaz eklemesi yapmanız gerekmektedir, bu aşamayı yaptığınızda size kullanabileceğiniz yapılandırma dosyası verilir ve VPN bağlantısı sağlayabilirsiniz.
“Users” > Cihaz eklemek istediğiniz kullanıcı > “Add Device” bu seçenek ile özel yapılandırma oluşturabilirsiniz.
Ayrıca “Configuration” sekmesi altında yer alan “Egress” kuralları sayesinde cihazların bir birleri ile iletişimlerini kesebilirsiniz, isterseniz de belirli rotalara kural yazabilirsiniz.
Bunlar dışında uygulamayı kurumsal olarak kullanmak isteyenler için SAML2.0 ve SSO entegrasyonları bulunmakta ve aşağıdaki sağlayıcıları desteklemektedir.
Azure Active Directory
Okta
OneLogin
Keycloak
Auth0
Google Workspace
Zitadel
Authentik
JumpCloud
Ayrıca kullanıcı hesaplarına girişte TOTP desteği bulunmaktadır ve bu sayede kullanıcılar hesaplarına ek güvenlik katmanı ekleyebilirler, bu özellik sadece e-mail ve parola ile girişlerde desteklenmektedir. SSO ile girişlerde sağlayıcının sunduğu özelliklerden faydalanmak mümkündür.
Diğer bütün özellikler için resmi belgelerden faydalanmayı ihmal etmeyiniz.
Güvenlik güncellemesi veya herhangi bir özellik için grafana ekibi güncelleme yayınladığında işletim sisteminizde aşağıdaki hataya benzer bir uyarı gelirse
N: Skipping acquire of configured file 'main/binary-i386/Packages'as repository 'https://packages.grafana.com/oss/deb 20 stable InRelease' doesn't support archite cture 'i386'
Python
İşletim sisteminiz özellikle Debian veya Ubuntu ise aşağıdaki satırları direk /etc/apt/source.list.d/grafana.list içerisine uygulayınız.
deb [arch=amd64 signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main
Python
Bu işlem sonrasında apt update komutunu verin, daha sonrasında güncelleme işlemini her nasıl yapıyorsanız aynen yapmaya devam edebilirsiniz.
Sunucular için tarih ve saat çok önemli her ihtiyacımız olduğunda bunlar üzerinden gerek logları gerekse servislerin durumlarını kontrol ederiz. Bu sebeple güncel ve doğru zaman dilimi ayarlamamız gerekiyor.
Mevcut zaman ile ilgili bilgileri sorgulama
timedatectl
Bu sorgulama sonucunda bize mevcut makinede aktif olarak kullanılan zaman dilimini gösterecek.
Local time: Fri 2022-11-18 19:20:52 UTC Universal time: Fri 2022-11-18 19:20:52 UTC RTC time: Fri 2022-11-18 19:20:51 Time zone: Etc/UTC (UTC, +0000) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
Sunucu ön tanımlı olarak UTC ben ise bu makinede Türkiye saatini ayarlamak istiyorum, ama adı ne olarak geçiyor emin olamadım diyorsanız aşağıdaki komutla sistemdeki mevcut zaman dilimlerini sıralayabilirsiniz.
timedatectl list-timezones
Sorguladığımda karşıma Türkiye için kullanmak amaçlı zaman dilimi Europe/Istanbul olarak karşıma çıktı, hemen geçerli zaman dilimini değiştiriyorum.
timedatectl set-timezone Europe/Istanbul
Güncellediğimiz zaman dilimini kontrol etmek amacıyla tekrar timedatectl komutunu verdiğimizde ise değişikliğimizin geçerli olduğunu görüyoruz.
Local time: Fri 2022-11-18 22:23:58 +03 Universal time: Fri 2022-11-18 19:23:58 UTC RTC time: Fri 2022-11-18 19:23:58 Time zone: Europe/Istanbul (+03, +0300) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
Bu rehber Debian işletim sistemini masaüstünde kullanmak isteyen arkadaşlar için oluşturulmuştur. Güncel Debian işletim sistemini tercih ederek kurulumlarınızı gönül rahatlığı ile yapabilirsiniz, Dizüstü bilgisayarlarınıza kurulum yapacaksanız mümkünse bilgisayarınızı kablolu olarak internete bağlayınız.
Bildiğiniz gibi Debian desktop kurulumları sırasında Wifi sürücüleri sistem içerisinde gelmemektedir. Kurulum sırasında ayrıca sürücülerin yüklenmesi beklenmelidir.
Debian Desktop Kurulum Adımları
İndirdiğimiz imaj dosyasının USB’ye yazdırılması, işlemdeki ilerlemeyi takip etmek amacıyla pv kullanılacaktır.
sudoaptinstallpv
ShellScript
USB yazdırma işlemine geçelim, burada /dev/sdb kullanacağınız USB belleğin yolu olduğunu unutmayın.
NOT: imaj kalıbının sürümleri kullanacağınız desktop sürümlerine göre değişiklik gösterebilir.
USB ye yazdırma işlemi tamamlandıktan hemen sonra sistem yeniden başlatılır ve Kurulum aşamasına geçilir.
Language: English Keyboard: Turkish Timezone: Istanbul olarak ayarlanır.
Disk yapılandırması kişiye özel bırakılmıştır. Şifreleme seçeneği seçilecekse işlemcinin biraz daha iyi olması gerekmektedir.
Debian desktop kurulumu tamamlandıktan sonra hızlı bir şekilde touchpad kapatılması gerekiyor. Synaptic driver üzerinde olan bir sıkıntıdan dolayı mouse eventleri sapıtabiliyor.
XFCE wisker menü> Settings > Mouse and Touchpad
Girilir burada hem mouse hem de touchpad gözükür. Hızlıca touchpad kısmına geçip Enable This device seçeneğindeki tik kaldırılır.
Bundan sonra touchpad çalışmayacak ancak mouse debian desktop kurulumundan hemen sonra sapıtmayacaktır.
Format işlemi bitirildikten sonra yapılacak olan debian desktop kurulum için uygulama kurulumlarını yapmaktır. Bu içerikte işinize yarayacak tüm uygulamalar eklenmiştir.
SSH Key Düzenleme
Yedeklenen anahtar harici disk veya her nereden aktarılacaksa sisteme eklenir.
sudomvid_rsaid_rsa.pub~/.ssh
ShellScript
Ardından sisteme keyi tanıtmak amacıyla ssh-add komutu verilir. Aşağıdaki uyarıyı verdiği gözlemlenir.
Kayıt edip çıkıyorsunuz. Ardından jar uzantılı herhangi bir uygulamayı tek sefer olacak şekilde sağ tıklayıp. Open with other application diyerek Double Click Java Application seçeneğini seçiyorsunuz. Bundan sonraki tüm işlemlerinizde çift tıklayarak uygulamayı açabileceksiniz.
Spotify Kurulumu
Müzik dinlemek için kullanılacak olan Spotify’ın kurulumu şu şekildedir. Güncel kurulum adımları için Tıklayınız.
Kurulum tamamlandıktan sonra kullanıcı adınızı ve şifrenizi uygulamaya girerek müzik dinlemeye başlayabilirsiniz.
Numix Circle Tema Kurulumu
Görüntüyü düzenlemek ve güzelleştirmek için Numix Circle İkon ve Numix GTK tema paketi kullanılmaktadır. Bu Numix Circle temasına ayrıca github’dan erişebilir bulamadığınız ikonları talep edebilirsiniz.
sudoaptinstallnumix-icon-theme-circle
ShellScript
Gerekli olan kurulumlar yapıldıktan sonra Sistem ayarlarından sürekli değişikliklerin yapılması gerekmektedir.
İkonlar için Appearance > Icons > Numix Circle GTK temala için Appearance > Style> Numix ve Windows Manager> Style> Numix Yapılan tüm bu seçeneklerin ardından Tamamıyla Numix Teması ve İkon Paketine geçiş yapılmış olunur.
Kurulum adımlarını tamamladıktan sonra isterseniz Debian kategorimize göz atarak debian desktop kurulumunuza ek uygulamalar dahil edebilirsiniz.
Son zamanlarda bana gelen sorulardan bazıları içerisinde abi debian 10 işletim sistemini yeni sürüme nasıl güncellerim oluyor, Debian 11 işletim sistemi için nasıl yükseltme işlemi yapılacağı konusunda sizi bilgilendireyim. Değişiklik günlüğünü incelemeden geçmeyin.
Önkoşullar
Sudo yetkisi bulunan bir kullanıcı
Yedeklemesi yapılmış bir debian sunucu
Sistemde Kurulu Paketlerin Güncellenmesi
Sürüm yükseltme işlemine başlamadan önce, şu anda sistemde kurulu olan tüm paketlerinizi en son sürümlerine güncellemeniz gerekiyor. hold olarak işaretlenen paketler otomatik olarak kurulmaz, yükseltilemez veya kaldırılamaz.
Bu durum, yükseltme işlemi sırasında sorunlara neden olabilir. Sisteminizde hold olarak işaretlenmiş paketler olup olmadığını kontrol etmek için aşağıdaki komutu verin.
sudoapt-markshowhold
ShellScript
on hold olarak işaretlenmiş paketleri eski haline getirmek için sudo apt-mark unhold paket-adi ardından direk olarak aşağıdaki komutu çalıştırın, tüm paketler iyice bir güncellensin, gereksiz paketleri de kaldıralım.
İlk önce, APT’nin kaynak listesi dosyalarını yeniden yapılandırmamız gerekiyor. Böylece yeni paketleri sisteme düzgünce kurabiliriz. Listeyi aşağıdaki gibi yapabilirsiniz.
Sonra direk olarak güncelleme komutumuzu verip repolarımızı Debian 11 için güncelliyoruz.
sudoaptupdate
ShellScript
Sistem dili sıkıntı çıkartmasın terminalde diye export LC_ALL=C komutunu da ayrıca verin.
Kurulu paketleri yükselterek sistem yükseltmesini başlatın. Bu komut ile sistemde, yalnızca kaldırılmasını gerektirmeyen paketleri yükseltecek
sudoaptupgrade
ShellScript
Yükseltme sırasında hizmetlerin otomatik olarak yeniden başlatılmasını isteyip istemediğiniz sorulacak, Y diyerek devam edin. Güncelleme sayısı ve İnternet hızınıza bağlı olarak yükseltme biraz zaman alabilir.
Ardından, sistemin tam bir yükseltmesini gerçekleştirecek, paketlerin en yeni sürümlerini yükleyecek ve farklı sürümlerdeki paketler arasındaki bağımlılık değişikliklerini çözecek olan aşağıdaki komutu çalıştırın.
sudoaptfull-upgrade
ShellScript
Artık sisteminiz hazır, değişikliklerin tamamen etkili olabilmesi için sistemi yeniden başlatın.
sudosystemctlreboot
ShellScript
Bu kadar başka yapılacak bir işlemimiz kalmadı. Artık yeni Debian 11’inizin keyfini doya doya çıkartabilirsiniz. İsterseniz de Debian Desktop Kurulumu: Yeni Başlayanlar için Rehber yazımı kullanarak kendinize yeni bir sistem kurabilirsiniz.
Bugün sizlere basit bir şekilde Wireguard vpn sunucusu nasıl kurulur bundan bahsedeceğim, Debian işletim sistemi üzerinde hem detaylı hem de kurulum betiği ile anlatım yapacağım. İster uzman olun isterseniz de acemi olun kolay bir şekilde kurulumu tamamlayabilirsiniz.
WireGuard Nedir?
WireGuard aktif olarak Jason A. Donenfeld tarafından geliştirilmektedir, kararlı bir sürümü henüz çıkartılmadı, ancak buna rağmen popüler OpenVPN protokolünden dört kat daha hızlı ve karşılaştırmalarda çok daha düşük ping süresi ile kararlı bir şekilde çalıştığı gözlemlenmiştir.
Her ne kadar Türkiye üzerinde kullanımlarda ping faydası sağladığını görmüyor olsak da hız konusunda rakiplerine göre oldukça büyük farklar yaratabiliyor.
WireGuard, SSH uygulamasını yapılandırmak kadar basit olmayı amaçlamaktadır. Sunucu ile istemci arasındaki SSH anahtarları gibi bir ortak anahtar değişimi ile bir bağlantı kurulur ve sadece sunucu yapılandırma dosyasında bulunan ortak anahtarı olan bir istemci yetkilen dirilir.
Wireguard’ın birtakım rekabetleri ortadan kaldırması;
Ortak anahtar değişimi kullanılır.
Son teknoloji şifreleme algoritmaları ile çalışır. (ChaCha20, Poly1305)
Kaynak kodu rakiplerine oranla daha az satırlıdır. Böylece kolay bir şekilde güvenlik açıkları için denetlenebilir.
Gizlidir, herhangi bir kimliği doğrulanmamış pakete yanıt vermez ve her iki tarafın kullanacağı veri olmadığı zaman çalışmaz.
Kurulumu ve kullanımı kolaydır.
Wireguard VPN Sunucusu Kurulumu Nasıl Yapılır?
Debian üzerinde ki depolarda wireguard bulunuyor. Lakin hala stable sürüm olmadığı ve debia’nın şartlarını geçemediği için unstable reposunu sisteme dahil etmemiz gerekiyor.
Bu işlemi aşağıdaki gibi basit bir şekilde yapabilirsiniz.
AllowedIPs = 10.10.100.2/32 yönergesini görüyorsunuz, yalnızca 10.10.100.2‘ye sahip bir istemci’nin ve doğru gizli anahtara sahip olmak, wireguard VPN tünelinde kimlik doğrulamasına izin vermesini sağlayarak gelişmiş güvenlik önlemi sağlar. ListenPort kullanacağınız udp bağlantı noktasıdır. Farklı bir tane kullanılabilir.
Sunucuda IP Forwarding etkinleştirme
/etc/sysctl.conf dosyasını düzenleyin ve aşağıdaki satırı bulup gerektiği gibi değiştirin.
net.ipv4.ip_forward=1
Tabii sunucuyu yeniden başlatma gerektirmemesi adına da aşağıdaki adımı gerçekleştirmenizi öneririm. Gereksiz yeniden başlatmalar hoş olmuyor.
sysctl -p echo 1 > /proc/sys/net/ipv4/ip_forward
İstemci yapılandırması
İstemci de wg0-client-london.conf adlı bir dosya oluşturup aşağıdaki gibi içerisini düzenleyin. Bu dosya adımız önemli değil istediğiniz bir şeyler yazabilirsiniz. Sunucu tarafında uygulanan yapılandırmaya benzer şekilde olduğunu göreceksiniz.
Wireguard VPN tüneli üzerinden istemci de ki tüm trafiğe izin verecek ve yönlendirecektir. Sadece VPN üzerinden trafik akışı sağlanacaksa bu aralığın daraltılmasını şiddetle öneririm.
Her şey tamamlandığını gördükten sonra servisleri başlatmaya geldi sıra.
Ardından ifconfig diyerek çalışıp çalışmadığını gözlemleyebilirsiniz. wg0 olarak gözünüze çarpmalıdır.
Güvenlik Duvarı Yapılandırması
Bağlantıların başarılı bir şekilde sağlanması için birtakım portlara izin vermemiz gerekecek.
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m udp --dport 51820 -m conntrack --ctstate NEW -j ACCEPT iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate NEW -j ACCEPT iptables -t nat -A POSTROUTING -s 10.10.100.0/24 -o eth0 -j MASQUERADE
Sonra yapılan bu işlemleri kalıcı hale getirmek için persistent paketini kurup güvenlik duvarı kuralları bunun içerisine aktarımını sağlayalım.
apt-get install iptables-persistent systemctl enable netfilter-persistent netfilter-persistent save
Başarılı bir şekilde Wireguard VPN sunucusunu yapılandırdık. İsterseniz bu aşamaları otomatik kurulum betiği ile kolayca geçebilirsiniz.
Wireguard VPN Otomatik Kurulum Betiği
Kurulum için aşağıdaki adımları gerçekleştirmeniz yeterlidir. Ardından WireguardVPN makineniz kurulmuş olacaktır, Kurulumu yapabilmeniz için minimum 128 Mb Ram ve 1 core işlemci gerekmektedir.
Diğer teknolojilere alternatif olarak kullanabileceğiniz bu teknolojiye zamanla alışacağınıza eminim. VPN kullanmadan yasaklı web sitelerine erişmek isteyenler Yasaklı Sitelere Giriş: GoodbyeDPI Kullanım Rehberi makalesine göz atabilirsiniz.
Ön tanımlı olarak ConfigServer üzerine engelleme listesi ekleyebilirsiniz, kötü amaçlar için kullanılan IP adreslerini sisteminizden bu şekilde uzaklaştırabilirsiniz.
Detaylı listeyi aşağıya bırakıyorum, bu listeyi ConfigServer üzerinde IPSET modülü ile kullanınız. Aksi durumda tablolarda fazlaca IP adresi göreceğiniz için kafanız bir ufak karışabilir. Bunun dışında firewall performansı olumsuz yönde birazda olsa etkilenebilir.
Aşağıdaki blocklist kullanabilmek için csf.conf içerisinde aşağıdaki değişikliği yapmanızdır. Bundan sonrasında listeleri direk kullanabilirsiniz.
LF_IPSET=1
LF_IPSET_HASHSIZE=4096
LF_IPSET_MAXELEM=16777216
Api key gerektiren yerler olduğunu unutmayınız, ücretsiz olarak api key alarak bu listelere erişebilirsiniz.
# Spamhaus Don't Route Or Peer List (DROP)
# Details: http://www.spamhaus.org/drop/
SPAMDROP|86400|0|http://www.spamhaus.org/drop/drop.txt
# Spamhaus Extended DROP List (EDROP)
# Details: http://www.spamhaus.org/drop/
SPAMEDROP|86400|0|http://www.spamhaus.org/drop/edrop.txt
# DShield.org Recommended Block List
# Details: https://dshield.org
DSHIELD|86400|0|https://www.dshield.org/block.txt
# TOR Exit Nodes List
# Set URLGET in csf.conf to use LWP as this list uses an SSL connection
# Details: https://trac.torproject.org/projects/tor/wiki/doc/TorDNSExitList
TOR|86400|0|https://www.dan.me.uk/torlist/
# BOGON list
# Details: http://www.team-cymru.org/Services/Bogons/
BOGON|86400|0|https://www.team-cymru.org/Services/Bogons/bogon-bn-agg.txt
# Project Honey Pot Directory of Dictionary Attacker IPs
# Details: http://www.projecthoneypot.org
HONEYPOT|86400|0|https://www.projecthoneypot.org/list_of_ips.php?t=d&rss=1
# C.I. Army Malicious IP List
# Details: http://www.ciarmy.com
CIARMY|86400|0|http://www.ciarmy.com/list/ci-badguys.txt
# BruteForceBlocker IP List
# Details: http://danger.rulez.sk/index.php/bruteforceblocker/
BFB|86400|0|http://danger.rulez.sk/projects/bruteforceblocker/blist.php
# MaxMind GeoIP Anonymous Proxies
# Set URLGET in csf.conf to use LWP as this list uses an SSL connection
# Details: https://www.maxmind.com/en/anonymous_proxies
MAXMIND|86400|0|https://www.maxmind.com/en/anonymous_proxies
# Stop Forum Spam
STOPFORUMSPAM|86400|0|https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/stopforumspam_365d.ipset
# GreenSnow Hack List
GREENSNOW|86400|0|https://blocklist.greensnow.co/greensnow.txt
# AbuseIPDB blacklist
ABUSEIPDB|86400|10000|https://api.abuseipdb.com/api/v2/blacklist?key=API_KEY_HERE&plaintext
# RJM Blocklist Consolidated Bad IP List (Free)
RJMBBADIPS|86400|0|https://www.rjmblocklist.com/free/badips.txt
# Blocklistde
BDE|3600|0|https://api.blocklist.de/getlast.php?time=3600
BDEALL|86400|0|http://lists.blocklist.de/lists/all.txt
BDESSH|86400|0|https://lists.blocklist.de/lists/ssh.txt
BDEMAIL|86400|0|https://lists.blocklist.de/lists/mail.txt
BDEAPACHE|86400|0|https://lists.blocklist.de/lists/apache.txt
BDEIMAP|86400|0|https://lists.blocklist.de/lists/imap.txt
BDEFTP|86400|0|https://lists.blocklist.de/lists/ftp.txt
BDESIP|86400|0|https://lists.blocklist.de/lists/sip.txt
BDEBOTS|86400|0|https://lists.blocklist.de/lists/bots.txt
BDESTRONGIPS|86400|0|https://lists.blocklist.de/lists/strongips.txt
BDEBRUTEFORCE|86400|0|https://lists.blocklist.de/lists/bruteforcelogin.txt
# Alienvault Reputation Malicious IP Block
ALIENVAULT_REPUTATION|86400|0|https://reputation.alienvault.com/reputation.generic
# darklist.de - blacklisted raw IPs
DARKLIST_DE|86400|0|http://www.darklist.de/raw.php
# Emerging Threats fwip rules.
ET_BLOCK|86400|0|https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/et_block.netset
ET_COMPROMISED|86400|0|https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/et_compromised.ipset
# abuse.ch Feodo Tracker Botnet C2 IP Blocklist (recommended)
FEODO|86400|0|https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt
# LIVE BLACKLIST IPv4/IPv6 ADDRESSES DATABASE
MYIP|86400|0|https://myip.ms/files/blacklist/csf/latest_blacklist.txt
# HTTP spam sources identified by http://sblam.com.
SBLAM|86400|0|https://sblam.com/blacklist.txt
# A distributed VoIP blacklist that is aimed to protects against VoIP Fraud
VOIPBL|86400|0|http://www.voipbl.org/update/
# Amazon EC2 Based Scanners
AMZEC2|86400|0|https://raw.githubusercontent.com/SilvrrGIT/IP-Lists/master/amazon_ec2_us
# BinaryEdge
BNRED|86400|0|https://raw.githubusercontent.com/SilvrrGIT/IP-Lists/master/binary_edge
# Stretchoid
STRETCHOID|86400|0|https://raw.githubusercontent.com/SilvrrGIT/IP-Lists/master/stretchoid
# Shodan
SHODAN|86400|0|https://raw.githubusercontent.com/SilvrrGIT/IP-Lists/master/shodan
# Other EduBased
EDU_OTHER|86400|0|https://raw.githubusercontent.com/SilvrrGIT/IP-Lists/master/other
# Proxies
FH_PROXIES|86400|0|https://iplists.firehol.org/files/firehol_proxies.netset
# Pedeophiles
PEDO|86400|0|https://raw.githubusercontent.com/firehol/blocklist-ipsets/master/iblocklist_pedophiles.netset
windows ve linux sistem yönetimi, network ve ağ güvenliği, siber güvenlik, yazılım ve gündemdeki diğer teknolojik konular hakkında blog yazıları