windows üzerinden işlemci frekansı limitleme

peki neden limitleyelim ki? mesela benim milli anakart olarakta bilinen gigabyte b450m s2h v2 anakartımın üzerinde 4+2 düzeninde vrm var ve şu an üzerinde 5900x gibi bir işlemci takılı. ee ne var yani diyecekler için evet bir şey olmayabilir ama olması ihtimaline karşı önlem almakta fena fikir olmayabilir.

yaptığım stres testinde 5900x in core boosts ve precision boost açıkken tek çekirdekte 4900+ tüm çekirdeklerde 4300 mhz'e dayandığını ve 145 watt çektiğine şahit olunca ve içimden bu vrm'ler yakında kebap olabilir şeklinde bir düşünce geçince önce gittim bios'tan core boost ve precision boost'u kapattım. böylece işlemci temel frekansı olan 3700 ü milim geçmeden tabiri caizse fısır fısır çalıştı. bu şekilde yaptığım stres testinde de 92 watt'ı geçmedi. eh bu da vrm sayısı az olan anakartım için sorun teşkil etmezdi. ayrıca mevzu sadece vrm sayısının azlığı değil, anakart üzerinde doğru düzgün vrm soğutmasının da olmamasıydı. ayıp olmasın diye aliminyumdan bir şey koymuşlar vrm üzerlerine. hal böyleyken 5900x öküz gibi akım çekerken vrm'ler neredeyse olmayan soğutucuları altında kavrulacaklardı. böyle bir şeyi istemeyiz elbette. ucuzda olsa anakart candır, ölmesine gönlümüz razı olmaz, hele ki bizim gibi bugün aldığını yarın alamadığın bir ülkede. bir sene olmamıştır, o zaman 400 liraya yani o günün kuru ile 30 dolara aldığım anakart bugün 1930 lira yani 103 dolar. bunu kur artışıyla falan açıklamayız. neyse konumuza dönelim biz en iyisi.

frekans sabitlemenin oyun oynarken zıp zıp zıplayan işlemci frekansı yüzünden fps drop yaptığını söyleyende oldu. o noktada da faydası olabilir.

peki kardeşim işlemciye o kadar para verdik, en azından az da olsa core boost olsun diyenlerde olabilir. tüm çekirdekler 4300 mhz'de çalışmasın ama bari 4000 de çalışsın be abi, hadi be abi yap bir kıyak diyenlere bende bir kıyak yapıyorum şimdi.

bios üzerinden işlemci frekansına bir limit koyamıyoruz ama windows üzerinden koyabiliyoruz. peki nerede bu ayar hiç görmedik sallıyorsun diyenler haklılar çünkü gerçekten hiç görmediniz çünkü gizli. windows güç planının içinde işlemci güç seçeneklerinin içinde aslında. kendisini açığa çıkabilmemiz için powershell üzerinden bir komut vermek yeterli.

powershell'i yönetici olarak çalıştırın ve aşağıdaki komutu kopyala yapıştır yapın;

powercfg -attributes SUB_PROCESSOR 75b0ae3f-bce0-45a7-8c89-c9611c25e100 -ATTRIB_HIDE

artık ilgili seçenek görünür oldu;

0 değeri limit yok demek. örnek olarak o kısma 4000 girerseniz çarpan değerine göre limit alacaktır. mesela bende 4024 mhz de limitlendi.

herkese bol vrm'li günler dilerim.

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 10 / 24

vps'inizde firewall üzerinden ülke bazlı yasaklama

ubuntu, debian ve türevlerinde ve hatta komutlarda bir iki değişiklik olsa da diğerlerinde de çalışacak bir firewall yapılandırmasından bahsedeyim dedim. malum çin, rusya, hindistan gibi ülkeler üzerinden sunuculara sürekli port tarama ve buna benzer ataklar yapılıyor. en azından bu üç ülkeden bu işlerin yapılmasını engellemenin yolunu anlatacağım.

VPS'iniz üzerinde firewall işlemleri yapacağımızdan herhangi bir aksiliğe karşı vps'inizin snapshot'ını önceden alın. eğer snapshot desteği yoksa en azından vps hizmeti aldığınız yerde recovery console olduğuna ve root veya sudoer bir başka kullanıcının şifresinin elinizde olduğuna ve bu kullanıcı adı ve şifre ile sisteme login olabildiğinize emin olun. aksi halde bu makaleyi es geçin.

önce vps üzerine ufw açık mı ona bakıyoruz;

[email protected]:~# ufw status
Status: active

aktif değilse;

[email protected]:~# apt install ufw

ufw'yi aktif etmeden önce 22 no'lu ssh portunu iptables'a ekleyelim ki, sonradan başımız ağrımasın;

[email protected]:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

artık ufw'yi aktif edebiliriz;

[email protected]:~# ufw enabled

ufw zaten aktif ise yukarıdaki adımları tamamen atlayabiliriz.

şimdi gerekli uygulamaları kuruyoruz;

[email protected]:~# apt install curl unzip perl

[email protected]:~# apt install xtables-addons-common

[email protected]:~# apt install libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl

şimdi geoip database'i için klasör oluşturalım;

[email protected]:~# mkdir /usr/share/xt_geoip

sıra geldi geoip database'ini indirip ilgili klasöre açan script'imizi oluşturmaya, bunun için nano isimli editörü kullanıyoruz;

[email protected]:~# nano /usr/local/bin/geo-update.sh

şimdi aşağıdakileri kopyalayıp sağ mouse tuşu ile paste ediyoruz;

#!/bin/bash

MON=$(date +"%m")
YR=$(date +"%Y")

wget https://download.db-ip.com/free/dbip-country-lite-${YR}-${MON}.csv.gz -O /usr/share/xt_geoip/dbip-country-lite.csv.gz

gunzip /usr/share/xt_geoip/dbip-country-lite.csv.gz

perl /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -S /usr/share/xt_geoip/

rm /usr/share/xt_geoip/dbip-country-lite.csv

ctrl + x ve y diyerek kaydedip editörden çıkalım.

geo-update.sh isimli script dosyamızın çalıştırılabilir bir dosya olduğunu sisteme belirtiyoruz;

[email protected]:~# chmod +x /usr/local/bin/geo-update.sh

[email protected]:~# chmod 755 /usr/local/bin/geo-update.sh

artık script'imiz çalıştırabiliriz;

[email protected]:~# /usr/local/bin/geo-update.sh

aşağıdaki çıktıyı almamız gerekiyor;

--2022-07-23 00:49:34-- https://download.db-ip.com/free/dbip-country-lite-2022-07.csv.gz
Resolving download.db-ip.com (download.db-ip.com)... 104.26.4.15, 172.67.75.166, 104.26.5.15
Connecting to download.db-ip.com (download.db-ip.com)|104.26.4.15|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3966188 (3.8M) [application/octet-stream]
Saving to: ‘/usr/share/xt_geoip/dbip-country-lite.csv.gz’

/usr/share/xt_geoip/dbip-country 100%[=======================================================>] 3.78M --.-KB/s in 0.06s

2022-07-23 00:49:34 (67.1 MB/s) - ‘/usr/share/xt_geoip/dbip-country-lite.csv.gz’ saved [3966188/3966188]

641333 entries total

ve bu mesajın altında tüm ülkelere ait ip bloklarının olduğu liste uzanıp gidecektir.

herşey yolunda mı bir kontrol edelim;

[email protected]:~# modprobe xt_geoip

[email protected]:~# lsmod | grep ^xt_geoip

çıktısı şuna benzer olmalı, 3 yerine 0 yazabilir sıkıntı yok.

xt_geoip 16384 3

artık ülke bazında yasaklama işine girebiliriz, bunun için aşağıdaki dosyayı ediplememiz lazım;

[email protected]:~# nano /etc/ufw/before.rules

page down tuşu vasıtası ile dosyanın en altına inip COMMIT satırından önce şunları ekleyelim;

# GeoIP Rules
-A ufw-before-input -m geoip -p tcp --src-cc CN,RU,IN -j DROP
-A ufw-before-input -m geoip -p udp --src-cc CN,RU,IN -j DROP

ctrl + x ve y ile kaydedip çıkalım.

böylece çin, rusya ve hindistan'a ait ip'lerin tamamını tcp ve udp tüm portlar için yasaklamış olduk.

isterseniz belirli portları sadece tükiye için açabilirsiniz. mesela ben ssh portunu sadece türkiye'ye açtım, geri kalan tüm ülkeler için kapalı. onu da yine before.rules dosyasının sonuna ekliyoruz;

[email protected]:~# nano /etc/ufw/before.rules

dosyanın altına yeni satırı ekleyelim;

# GeoIP Rules
-A ufw-before-input -m geoip -p tcp --src-cc CN,RU,IN -j DROP
-A ufw-before-input -m geoip -p udp --src-cc CN,RU,IN -j DROP
-A ufw-before-input -m geoip -p tcp --dport 22 --src-cc TR -j ACCEPT

ctrl + x ve y diyerek kaydedelim.

şimdi yaptığımız değişikliklerin hayata geçmesi için;

[email protected]:~# ufw reload

hayırlı olsun.

BeğenFavori PaylaşYorum yap
  • Türker Sezer @dirigeant

    Anlatim icin elinize saglik.

    Daha kolay yonetim ve daha iyi guvenlik icin block listesi yerine izin listesi kullanmanizi tavsiye ederim. VPS uzerine bir VPN servisi (openvpn, pptp) kurup, 80, 443 ve VPN portu haricindeki tum portlari dis dunyadan gelen yeni baglantilara kapatabilirsiniz.

    • Ronnie James Dio @ronniejamesdio

      bu bilmediğim bir çözüm ama deneriz bunu da. var mı bunu anlatan bir link?

    • Türker Sezer @dirigeant

      @ronniejamesdio VPN kurulumu icin herhangi bir VPN kurulum belgesi isinizi gorecektir. Sansurlu internet yuzunden bircok belge mevcut olmali.

      VPN'i kurduktan sonra erisim kisitlamak icin iki farkli yol kullanabilirsiniz.
      1- Sizin yazinizdakine benzer sekilde firewall seviyesinde kisitlama uygulayabilirsiniz. Sadece VPN kurulumu sirasinda tanimladiginiz IP bloguna (ornegin 10.1.0.0/24) 22 portunu acip, diger tum istekleri DROP edebilirsiniz.
      2- SSH servisi ayarlarindan (/etc/ssh/sshd_config dosyasindadir) servisin dinledigi IP adresini VPN networkundeki IP adresi olarak tanimlayabilirsiniz. (ornegin ListenAddress 10.1.0.1).

      Bu degisiklikleri yapmadan once VPN'e sorunsuz baglanabildiginizden, VPN servisinin acilista calismak icin ayarli oldugundan ve VPN'e baglandiktan sonra sunucuya VPN IP adresi uzerinden erisebildiginizden emin olun. Aksi halde siz de SSH erisiminizi kaybedebilirsiniz. 🙂

    • Ronnie James Dio @ronniejamesdio

      @dirigeant ha şimdi anladım, bunun benzerini evde uyguluyorum zaten. raspberry pi dünyaya açık durumda ama sadece vpn'den aldığım ip yi görürse router'dan geçebiliyorum.

rsyslog ve logrorate kurulum ve yapılandırması..

rsyslog

cihazlarımızın veya programlarımızın ürettiği log dosyalarını başka bir sunucuda tutmak isteyebiliriz. bu hem elimizde dosyanın bir kopyası olmasını sağlar hem de ekstra bir güvenlik katmanı sağlamış olur. işte bunu linux platformunda yapan uygulamanın adı rsyslog. bu bir log sunucusu ve oldukça da esnek bir yapıda. rsyslog herhangi bir linux platformunda çalışır hatta bazı sürümler ile default olarak gelir. bizde bu yazıda raspberry pi cihazında çalıştıracağız. bu kurulum debian ve türevleri (ubuntu vs.), ayrıca raspbian'da çalışacaktır.

öncelikle sistem içinde kurulu rsyslog var mı bakalım;

systemctl cat rsyslog

sistemde yoksa;

apt install rsyslog

kurulum bittikten sonra rsyslog'un konfig dosyasını açıyoruz;

nano /etc/rsyslog.conf

MODULES altındaki ayarları aşağıdaki şekilde yapalım;

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

GLOBAL DIRECTIVES altındaki ayarları aşağıdaki şekilde yapalım;

# $AllowedSender - specifies which remote systems are allowed to send syslog messages to rsyslogd
$AllowedSender TCP, 192.168.1.0/24
$AllowedSender TCP, 192.168.2.0/24

$AllowedSender kısmına log yollayacak cihazın IP sini giriyoruz. isterseniz 192.168.1.0/24 gibi subnette verebilirsiz. yukarıdaki örnekte 192.168.1.x ve 192.168.2.x den gelecek tüm logları kabul edecektir. sadece TCP portundan değil UDP portundan gelen log'ları da kabul eder.

yine GLOBAL DIRECTIVES altındaki template kısmını aşağıdaki gibi ayarlıyoruz;

$template RemoteLogs,"/var/log/remotelogs/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs

dosya ile işimiz bitti, kaydedelim.

burada logların tutulmasını istediğiniz klasör yolunu giriyoruz. mesela ben /var/log/remotelogs isimli bir klasör içinde topluyorum. klasörün içinde cihazların isimleri (hostname) ile ayrıca klasör oluşturulur ve o klasörün içinde de cihazlar veya uygulamalar tarafından yollanan log dosyaları olur.

yapılandırma bu kadardı. şimdi tcp ve udp için 514 no'lu portu açacağız. bunun için ufw kullanıyorum. sisteminizde yüklü değilse yükleyin, büyük kolaylık. iptables'ın komutları ile uğraşmak dert.

sistemde ufw yoksa büyük ihtimalle tüm portlar açıktır. o yüzden ufw yükledikten sonra port dinleyen uygulamalarınız varsa o portları ufw üzerinden ayrıca açmanız gerekebilir. ancak ufw yükledikten sonra 22 no'lu ssh portunu da engelleyebilir.

bunun için önceden iptables üzerinden 22 no'lu portu açıyoruz;

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

şimdi ufw kuralım;

apt install ufw

çalıştıralım;

ufw enable

artık 514 no'lu portları açabiliriz;

ufw allow 514/tcp
ufw allow 514/udp

işlemler tamam. artık rsyslog'u tekrar çalıştırılalım ki değiştirdiğimiz konfig dosyası etkin olsun;

systemctl restart rsyslog

bundan sonra log dosyalarını ayarlardığınız klasör içinde görebilmeniz lazım.

logrotate

loglar oluşmaya başladı. log dosyaları önlem almazsak çok büyük boyutlara ulaşabiliyor. bunu engellemek için logrotate isimli uygulamayı kullanıyoruz. bu uygulama çoğu linux sürümü ile birliklte default olarak geliyor zaten. uygulama log dosyalarını istediğimiz periyodda temizleyip, temizlediği kısmı da başka bir dosyaya kopyalayıp saklıyor. yani kısaca log dosyalarını parçalara ayırıyor. bu işlemin adına döndürme deniyor.

logrotate sistemde var mı yok mu yinede bir bakalım;

logrorate

eğer varsa zaten version ve kullanım bilgilerini size göstecektir.

eğer logrotate bir şekilde sisteminizde yoksa;

apt install logrotate

şimdi logları parçalara ayırmak için çalışmalara başlayalım. uygulamanın bulunduğu klasörün içine girelim;

cd /etc/logrotate.d

burada klasörün içini listeyelim ki işin mantığını anlayalım;

ls -al

-rw-r--r-- 1 root root 120 Nov 3 2017 alternatives
-rw-r--r-- 1 root root 442 Jul 16 2019 apache2
-rw-r--r-- 1 root root 126 Nov 20 2017 apport
-rw-r--r-- 1 root root 173 Apr 20 2018 apt
-rw-r--r-- 1 root root 82 Feb 10 2019 certbot
-rw-r--r-- 1 root root 107 Sep 20 2016 dbconfig-common
-rw-r--r-- 1 root root 112 Nov 3 2017 dpkg
-rw-r--r-- 1 root root 313 Apr 4 2018 fail2ban
-rw-r--r-- 1 root root 1120 Jan 23 2018 freeradius
-rw-r--r-- 1 root root 146 Nov 23 2018 lxd
-rw-r--r-- 1 root root 799 Nov 10 2020 mysql-server
-rw-r--r-- 1 root root 182 Oct 9 2020 openvpn
-rw-r--r-- 1 root root 215 Feb 14 2021 php7.4-fpm
-rw-r--r-- 1 root root 124 Apr 2 2018 redis-server
-rw-r--r-- 1 root root 125 Nov 9 17:06 remotelogs
-rw-r--r-- 1 root root 501 Nov 8 02:29 rsyslog
-rw-r--r-- 1 root root 819 Mar 29 2019 samba
-rw-r--r-- 1 root root 131 Nov 8 02:29 telegraf
-rw-r--r-- 1 root root 244 Sep 23 23:41 ubuntu-advantage-tools
-rw-r--r-- 1 root root 178 Aug 15 2017 ufw
-rw-r--r-- 1 root root 235 Nov 25 2019 unattended-upgrades

burada ilgili uygulamarın log dosyaları için oluşturulmuş konfig dosyalarını göreceksiniz. mesela bendeki yukarıdaki gibi.

şimdi bizde remotelogs klasöründe oluşacak olan loglarımız için logrotate konfig dosyası oluşturalım;

nano remotelogs

bunun içine aşağıdakileri kopyalayalım ve kaydedelim;

/var/log/remotelogs/*/*.log
{
rotate 7
daily
missingok
dateext
copytruncate
notifempty
compress
}

rotate 7 : log dosyalarının en fazla yedi adet olmasını söylüyoruz. sekizinci dosyayı ilk yarattığının üzerine yazacaktır ya da ilk dosyayı silip, sekizinciyi oluşturacaktır. yani her şekilde toplamda aynı log dosyasının yedi adedini göreceksiniz. isterseniz 7 rakamını istediğiniz şekilde değiştirebilirsiniz.

daily : log dosyalarını her gün döndürecek yani mevcut olanın yedeğini alıp sıfır bir log dosyası oluturacaktır. isterseniz weekly  haftada bir döndürme, montly ayda bir döndürme, yearly yılda bir döndürme şeklinde ayarlayabilirsiniz.

missingok : konfig dosyası içinde log dosyasını bulamazsa hata vermeden devam eder.

dateext : log dosyasını döndürürken dosya isiminin sonuna tarih ekler.

copytruncate : orjinal log dosyasını silmez, sadece içindekini kopyalar başka bir dosya yaratıp içine yapıştırır ve orjinal dosyayı temizler. bazı uygulamalar orjinal dosyanın silinmesinden hoşlanmadığı için bu komutu kullanıyoruz.

notifempty : log dosyası boş ise döndürmez.

compress : döndürdüğü dosyayı sıkıştırıp saklar.

bazı durumlarda döndürme işlemi sırasında az da olsa log kaçırabilme durumu olabileceğinden ilgili servisi çok kısa süreliğine durdurup sonra döndürme işlemini yapıp sonra yine çalıştırmak gerekebilir. mesela bunun için bir script yazılabilir.

bunun için aşağıdaki komutu ekliyoruz;

postrotate
/home/ronniejamesdio/script.sh
endscript

ayrıca döndürme işlemini dosya boyutuna göre de yapabilirsiniz. bunun için size komutunu kullanıyoruz. ancak format aşağıdakiler gibi olmalı;

size 5k
size 5M
size 5G

örneklerde dosya boyutu 5 kilobyte geçerse veya 5 megabyte ı geçerse veya 5 gigabyte'ı geçerse log dosyasını döndürecekir. siz nasıl istiyorsanız öyle bir değer kullanın.

Oluşturduğumuz remotelogs isimli konfig dosyasını Unix formatına çevirmemiz gerek aksi halde logrotate dosyayı hatalı okuyor.

Bunun için dos2unix isimli uygulamayı kuruyoruz;

apt install dos2unix

Şimdi de konfig dosyanımızı Unix formatına çevirelim;

dos2unix /etc/lograte.d/remoteconfig

Artık logrotate konfigürayonu da tamamdır.

Şimdi konfigürasyonu test zamanı;

logrotate -f /etc/lograte.d/remoteconfig

Sorun yoksa hiç bir çıktı vermeyecektir bu komut.

logrorate ile ilgili daha bir çok ayar var, ben genel olanları anlattım. internette çok örnek bulabilirsiniz.

hepsi bu kadar.

BeğenFavori PaylaşYorum yap

Raspberry Pi veya benzer cihazları torrent için kullanma

Bir önceki samba kurulumu yazımda pi ve benzer cihazları nasıl NAS olarak kullanacağımızı anlatmıştım. Cihaza bağlı depolama aygıtlarını ağa açmıştık. Şimdi madem ağa açtık, o zaman bu depolama aygıtlarının içine torrent indirmeyelim mi yani? Üstelik memlekette elektriğe her gün zam gelirken koca koca pc leri torrent için saatlerce açık bırakmak mantıklı mı? Saatte 3-5 watt harcayan pi ve benzeri cihazları kullanıp elektrik faturasında üç beş lira da olsa tasarruf etmek iyidir.

İşte bizde bunun için cihazımıza Transmission kuracağız. Uzun zamandır kullandığım, gayet sorunsuz bir torrent uygulaması.

Hadi başlayalım.

Öncelikle Transmission'ın kendi deposunu sistemimize ekliyoruz ki, en güncel versiyonu indirsin.

[email protected]:~# add-apt-repository ppa:transmissionbt/ppa

Yeni eklediğimiz depoyu bir kontrol etsin;

[email protected]:~# apt update

Artık kuruluma geçebiliriz.

[email protected]:~# apt install transmission-daemon

Otomatik olarak arka planda çalışmaya başladığından durdurmamız gerek çünkü konfig dosyasında değişiklikler yapacağız. Arka planda çalışırken yapılacak değişiklikler geçerli olmayacaktır.

[email protected]:~# systemctl stop transmission-daemon

Daha önce samba kurarken klasörler oluşturmuştuk. Şimdi o klasörün içinde birde torrent klasörü oluşturalım.

[email protected]:~# mkdir /mnt/nas/hdd1/torrent

Yarattığımız torrent isimli klasöre gerekli yetkilendirmeleri de yapalım. Aşağıdaki ronniejamesdio kullanıcısı örnektir, siz sizin sistemdeki kullanıcı adınızı yazacaksınız. Aynı kullanıcıyı samba içinden oluşturmuştunuz.

[email protected]:~# chown -R ronniejamesdio:nas /mnt/nas/hdd1

Şimdi samba konusundan anlattığım winscp uygulaması ile cihaza bağlanalım ve /etc/transmission-daemon konumundaki settings.json isimli konfig dosyasını açalım.

Aşağıdaki değişiklikleri dosyada yapalım ve kaydedelim.

"download-dir": "/mnt/nas/hdd1/torrent",

"rpc-username": "kullanıcı adınız",

"rpc-password": "şifreniz",

"rpc-whitelist-enabled": false,

Transmission kurulurken debian-transmission diye bir kullanıcı oluşturuyor ve torrentleri diske bu kullanıcı ile kaydetmeye çalışıyor. Ancak debian-transmission kullanıcısının /mnt/nas/hdd1/torrent klasörüne yazma yetkisi yok. Samba konusunda nas isimli bir grup yaratmıştık. Şimdi o gruba debian-transmission kullanıcısını ekleyelim.

[email protected]:~# usermod -a -G nas debian-transmission

Artık daha önce durdurduğumuz Transmission'ı çalıştırabiliriz.

[email protected]:~#  systemctl start transmission-daemon

Son olarak 9091 portunu açıyoruz.

[email protected]:~# ufw allow tcp/9091

Artık browser'ı açıp http://<Pi ip adresi>:9091 yazarak arayüze erişebilirsiniz.

Windows üzerinden indirilen torrentleri artık görebilirsiniz.

Ben torrent eklemek için windows ve android üzerinden remote transmission isimli uygulamayı kullanıyorum.

https://github.com/transmission-remote-gui/transgui/releases/tag/v5.18.0

https://play.google.com/store/apps/details?id=com.neogb.rtac&hl=tr

Bu yazımızda bu kadar. Umarım eksik veya hatalı bir şey yazmamışımdır.

BeğenFavori PaylaşYorum yap

Raspberry Pi veya benzer cihazlara NAS kurulumu..

Öncelikle pi veya muadili cihazınızda bir debian linux (raspbian, armbian, ubuntu, vb.) türevi işletim sistemi kullandığınızı ve cihazınıza statik ip verdiğinizi varsayarak yazıma başlıyorum. Cihaza putty veya benzeri bir SSH istemcisi ile bağlandığınızı farz ederekte devam ediyorum.

İster microsd kartınızdaki bir klasör veya klasörleri ister usb üzerinden bağladığınız bir external harddisk i paylaşıma açabilirsiniz. usb diskinizin ntfs veya ext formatında olması farketmiyor. Yanlız ntfs ile daha yavaş transfer hızlarında aktarım yapabileceğimizi bilmekte fayda var. Ben şiddetle external diskinizi ext4 ile formatlamanızı öneririm. Çünkü linux'te resmi ntfs desteği yok. Geriye mühendislik ile ntfs desteği veriliyor. Bunu partition işlemi yapabilen bir çok uygulama ile yapabilirsiniz. Paragraf sonunda benim kullandığım paragon isimli programın linkini vereceğim.  Aslında aynı şey microsoft ağlarına bağlanmak için geliştirilen samba içinde geçerli. O da tersine mühendislik ile geliştirilmiş bir uygulama.

https://www.paragon-software.com/free/pm-express/

Eğer cihaza external hdd bağladıysanız öncelikle harddiski linux'e mount etmemiz gerekiyor. Bunun için öncelikle hdd nin id sini öğrenmemiz lazım. Linux sisteme bağlı tüm depolama cihazlarına bir id verir. Bunu öğrenmeden önce depolama cihazlarının bir listesini alıyoruz.

[email protected]:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part /mnt/nas/hdd1 <-- bendeki external disk bu
sdb 8:16 0 111.8G 0 disk
├─sdb1 8:17 0 256M 0 part /boot/firmware
└─sdb2 8:18 0 111.6G 0 part /
mmcblk0 179:0 0 14.4G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part
└─mmcblk0p2 179:2 0 14.2G 0 part

Yukarıda benim depolama cihazlarımın bir listesini görüyorsunuz. Burada external diskin sda1 olarak tanımlı olduğunu öğrenmiş oldum.

Şimdi id numarasını bulalım.

[email protected]:~# blkid
/dev/sdb1: LABEL="system-boot" UUID="85F3-CC2B" TYPE="vfat" PARTUUID="da84cd12-01"
/dev/sdb2: LABEL="writable" UUID="b96d647f-679e-4582-87d0-2d8c7afc91f4" TYPE="ext4" PARTUUID="da84cd12-02"
/dev/mmcblk0p1: LABEL="system-boot" UUID="85F3-CC2B" TYPE="vfat" PARTUUID="da84cd12-01"
/dev/mmcblk0p2: LABEL="ubuntu" UUID="b96d647f-679e-4582-87d0-2d8c7afc91f4" TYPE="ext4" PARTUUID="da84cd12-02"
/dev/sda1: LABEL="DATA" UUID="5741b235-77d2-8dc4-20a2-bef575df788e" TYPE="ext4" PARTUUID="2e7937c5-01"
/dev/mmcblk0: PTUUID="da84cd12" PTTYPE="dos"

External diskimin id si UUID="5741b235-77d2-8dc4-20a2-bef575df788e" olarak görünüyor.

Artık bu id numarası ile external diskimizi mount edebiliriz. Elbette sizin diskinizin id numarası farklı olacak, kendi diskinizin id sini kullacaksınız. Diskin her reboot sonrası otomatik olarak mount olabilmesi için fstab isimli dosyada bunu belirtmemiz gerekiyor. Normalde dosyaları editlerken komut satırından nano komutu ile yapabiliyoruz ancak kafa karışıklığı olmaması açısından bunu bir uygulama üzerinden yapmak şimdilik en iyisi. Terminal ekranından UUID numarasını kopyalamak için mouse'un sol tuşuna basılı tutup seçin ve seçili bırakın. Sonra windows üzerinde istediğiniz yere yapıştırın.

https://winscp.net/eng/download.php

Bunu indirip kurduktan sonra pi ye bununla login olup windows gezgininde olduğu gibi klasörler içinde gezinebilir, dosya, klasör yaratabilir, bunları rename yapabilir veya silebilir, dosya veya klasörler için kullanıcıları değiştirebilir veya kullanıcı haklarını düzenleyebilirsiniz.

Şimdi birde notepad++ yükleyelim. Böylece bir yapılandırma dosyasında yanlışlık yaparsak kolayca geri alabiliriz.

https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v7.9.2/npp.7.9.2.Installer.x64.exe

Artık winscp üzerinden notepad++ ile kolayca işlemlerimizi halledebiliriz.

Şimdi bir mount point oluşturalım. Linux'te depolama cihazlarına windows'taki gibi bir harf atanmıyor. Depolama cihazını bir klasöre bağlayarak kullanıyoruz. Bunun için öncelikle bir klasör oluşturmamız gerek. Winscp programı ile /mnt klasörü içine girelim ve önce nas isimli bir klasör sonra da nas klasörü içinde hdd1 diye bir klasör oluşturalım.

Bunu komut ile yapmak istersek;

[email protected]:~# mkdir /mnt/nas/hdd1

Artık fstab'i düzenleyebiliriz. Winscp ile /etc klasörünün içindeki fstab dosyasına sağ klik ile düzenle > notepad++ ı seçip dosyayı açalım ve dosyanın en altına aşağıda vereceğim satırı yapıştıralım. Tabi öncelikle dosyanın orjinal içeriğini bir yere copy/paste yapıp yedekleyelim.

Diskiniz ext formatlı ise;

UUID=5741b235-77d2-8dc4-20a2-bef575df788e /mnt/nas/hdd1 ext4 defaults 0 1

Diskiniz nfts formatlı ise;

UUID=5741b235-77d2-8dc4-20a2-bef575df788e /home/nas/hdd1 ntfs-3g uid=1000,gid=1000,sync,auto,rw,big_writes 0 0

Fstab dosyası ile işimiz bitti, kaydedelim.

Şimdi işlemi doğru yaptığımızı görmek için test edelim.

[email protected]:~# mount -a

Bu komut fstab dosyasında bir hata yok ise hiç bir çıktı vermeyecektir. Çıktı yoksa yapılan işlem doğrudur.

Tebrikler external diskinizi sisteme bağladınız. Artık diskinizin içeriğini winscp içinden /mnt/nas/hdd1 klasörü içinden görebilirisiniz.

Yok ben komutla görmek istiyorum diyen varsa;

[email protected]:~# cd /mnt/nas/hdd1

[email protected]:~# ls -al

External diskim yok, sistemin kurulu olduğu microsd kart içinden bir paylaşım yapmak istiyorum diyenler için işlem daha basit. Sadece paylaşım için bir klasör oluşturun yeterli. Mesela onun içinde hdd2 klasörünü oluşturalım. Yine ister winscp üzerinden, ister komutla oluşturun.

[email protected]:~# mkdir /mnt/nas/hdd2

microsd kart içindeki paylaşım için disk id'si, ftsab editlemesine falan gerek yok zira microsd kartın içinde sistemde bulunduğundan otomatik olarak mount edilmiş durumda.

Öncelikle paylaşım yapabilmemiz için samba kurmamız gerekiyor. Bazı sistemlerde ön yüklü olarak gelebiliyor.

[email protected]:~# apt install samba

Samba kurulduğuna göre şimdi firewall üzerinden samba'nın kullandığı portlara izin verelim. Bunun için ufw yi kuracağız.

[email protected]:~# apt install ufw

Bu da kuruldu, ufw'yi sistemde etkinleştirelim.

[email protected]:~# ufw enable

Şimdi portları açalım.

[email protected]:~# ufw allow samba

Gerekli portlarda açıldı, şimdi samba için kullanıcı oluşturalım. Kullanıcı oluştururken sistemde önceden tanımlı linux kullanıcılarından birisini seçeceğiz.  Örneğin raspian'da default pi isimli bir kullanıcı oluşturulur, samba içinde pi isimli bir kullanıcı oluşturacağız veya ubuntu da ahmet isimli bir kullanıcı oluşturduysanız samba user olarakta ahmet isimli bir kullanıcı oluşturacağız. Aslında buna gerek yok ama benim kullandığım samba konfigürasyonunda gerek var. Samba kullanıcısı için şifre de oluşturacağız. Windows üzerinden pi üzerinde paylaştığımız klasörlere ulaşırken bu kullanıcı adı ve şifre ile ulaşacağız.

[email protected]:~#  smbpasswd -a ronniejamesdio

Şimdi de samba için nas isimli bir kullanıcı grubu oluşturalım. Bu kullanıcı grubu ilerde torrent uygulaması kurunca lazım olacak.

[email protected]:~# groupadd nas

Artık samba'nın konfig dosyasında gerekli düzenlemeleri yapabiliriz. Bunun için /etc/samba/smb.conf dosyasını kullanacağız. Winscp ile dosyayı açalım. Dosyanın en altına aşağıda vereceğim konfiği yapıştıralım ve kaydedelim. External disk ve microsd paylaşımı için de örnekleme yaptım. İsterseniz içlerinden sadece birisini de kullanabilirsiniz.

[External_Disk]
path = /mnt/nas/hdd1
valid users = ronniejamesdio,@nas
read only = no
writeable = yes
browseable = yes
force user = ronniejamesdio
force group = nas
create mask = 0775
create mode = 0775
directory mode = 0775

[Micro_SD]
path = /mnt/nas/hdd2
valid users = ronniejamesdio,@nas
read only = no
writeable = yes
browseable = yes
force user = ronniejamesdio
force group = nas
create mask = 0775
create mode = 0775
directory mode = 0775

Yaptığımız değişiklik doğru mu kontrol edelim.

[email protected]:~# testparm

bir hata yok ise paylaşımla ve global ayarlarla ilgili bilgileri verecektir.

smb.conf dosyasında yaptığımız değişikliğin geçerli olabilmesi için saba servisini yeniden başlatalım.

[email protected]:~# service smbd restart

Şimdi payşalım için yarattığımız klasör veya klasörlere samba kullanıcısı için yetkilendirme yapıyoruz.

External disk için;

[email protected]:~# chown -R ronniejamesdio:nas /mnt/nas/hdd1

Microsd için;

[email protected]:~# chown -R ronniejamesdio:nas /mnt/nas/hdd2

Artık ronniejamesdio kullanıcısı ve nas grubu içindeki kullanıcılar paylaşılan klasörlere erişim sağlayabilir.

Windows üzerinden ağ sürücüsüne bağlan seçeneği ile aşağıdaki şekilde bağlanabilirsiniz.

\\pi ip'si\External_Disk

veya

\\pi ip'si\Micro_SD

Bu yazımızın sonuna geldik. Umarım yanlış veya eksik bilgi vermemişimdir. Zaten nas kuracaklara buradan da yardımcı olmaya çalışacağım. Bende öğrenirken sağdan soldan yardım alarak öğrendim.

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 6 / 7