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;
root@raspberrypi:~# ufw status
Status: active
aktif değilse;
root@raspberrypi:~# 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;
root@raspberrypi:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
artık ufw'yi aktif edebiliriz;
root@raspberrypi:~# ufw enabled
ufw zaten aktif ise yukarıdaki adımları tamamen atlayabiliriz.
şimdi gerekli uygulamaları kuruyoruz;
root@raspberrypi:~# apt install curl unzip perl
root@raspberrypi:~# apt install xtables-addons-common
root@raspberrypi:~# apt install libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl
şimdi geoip database'i için klasör oluşturalım;
root@raspberrypi:~# 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;
root@raspberrypi:~# 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;
root@raspberrypi:~# chmod +x /usr/local/bin/geo-update.sh
root@raspberrypi:~# chmod 755 /usr/local/bin/geo-update.sh
artık script'imiz çalıştırabiliriz;
root@raspberrypi:~# /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;
root@raspberrypi:~# modprobe xt_geoip
root@raspberrypi:~# 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;
root@raspberrypi:~# 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;
root@raspberrypi:~# 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;
root@raspberrypi:~# ufw reload
hayırlı olsun.
Videoyu izlemedim, eğer 20 dolar derken chatgpt'nin ücretli üyeliğinden bahsediyorsanız nedense vermekten kaçındıkları bir detay var, en üst seviye gpt-4'ü kullanırken 3 saatte 20 mesaj atabiliyorsunuz, yoğunluğa göre daha da aşağıya düşebiliyor. Buna mala bağlayıp saçmaladıkları da dahil. Bi nevi dolandırıcılık gibi bir şey ama adamlar suyun başında oldukları için kimse bir şey demiyor 😀
çokta suyun başında değiller artık, bing'in yapay zekası özellikle text to image işini ücretsiz yapınca çok ilgi gördü. Bu arada bilmiyordum saatlik sınırını, gerçi 1 saatte 20 soru 3dakikada 1 soru yapar, çokta az denemez.
@dogus 3 saatte 20 mesaj, saatte ~7 mesaj, 8.5 dakikada bir mesaj yani 😀 Şu an yoğunluk var ya .s demesi paha biçilemez 😀
@ganiemre uykum gelmiş demek ki 😀 okuduğumu anlamadım 1 saat olarak düşündüm o zaman az sayılabilir. Sesli konuşmada atlatılabilir gibi çünkü uzun uzun insan gibi cevap veriyor. Gerçi yakında bing ai içinde ses gelir ve ücretsiz olur büyük ihtimalle.
O kısıtlama aylar önce kalktı.
Sakarya o kadar kötü bir şehir değil aslında, güzel insanlar ve güzel ortamlar bulunabiliyor. Sizinkisi daha çok büyük şehirden geldim, hiçbir yeri beğenemem mevzusu gibi olmuş. Ben keşke Sakarya'da yaşasam. Evet yobazı çok ama muhitimi ona göre seçerim. Doğası harika. Denizi var. İstanbul ve Ankara yakın.