26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
iptables
Linux çekirdeğinin entegre güvenlik duvarını yapılandırmak için kullanılan güçlü bir araçtır. Çoğu Ubuntu dağıtımında önceden yüklenmiş olarak gelir, ancak özelleştirilmiş bir Ubuntu sürümü kullanıyorsanız veya bir kabın içinde çalıştırıyorsanız, büyük olasılıkla manuel olarak yüklemeniz gerekecektir.
sudo apt-get install iptables iptables-persistent
Kurulumdan sonra, mevcut kurallarınızı kaydetmek isteyip istemediğiniz sorulursa, şu anda önemli değildir, çünkü daha sonra yeni kuralları kaldıracak veya oluşturacaksınız.
Hangi bağlantı noktalarının açık veya kapalı olduğunu test etmek için netcat
komutu ( sunucunuzdan farklı bir bilgisayarda) kullanabilirsiniz.
nc -z -w5 -v SERVER_IP PORT
nc
netcat komutudur.-z
sadece yükü olmayan bir paket gönderin.-w5
yanıt için 5 saniye kadar bekleyin.-v
ayrıntılı mod.SERVER_IP
Sunucu adresinizle değiştirin .PORT
Açık olup olmadığını test etmek istediğiniz bağlantı noktasıyla değiştirin (örn. 22
).Sunucunuzda netstat
şu anda hangi bağlantı noktalarını dinlediğini görmek için komutu kullanabilirsiniz .
sudo netstat -tulpn
Not: netstat
Çalışmak istediğiniz bağlantı noktalarını bulmak kullanışlı olsa da, sunucunuza şu anda yüklediğiniz uygulamaların ve hangi bağlantı noktalarının dinlendiğinin farkında olmalısınız , çıktıda bulduğunuz her bağlantı noktasına izin vermeniz gerekmeznetstat
.
sudo iptables -A INPUT -p tcp -m tcp --dport 22 --m geoip --src-cc PE -j ACCEPT
-A INPUT
Bir kural eklemek INPUT
zinciri, bir zincir kurallar grubudur, bu kılavuzun üzerinde en çok kullandığınız olanlar olacaktır INPUT
, OUTPUT
ve PREROUTING
.-p tcp
tcp
Bu kuralın uygulanacağı protokol olarak ayarlandığında udp
, icmp
veya gibi diğer protokolleri de kullanabilirsiniz all
.-m tcp
tcp
modülü kullanın . iptables
bazıları önceden yüklenmiş iptables
olarak gelen geoip
modüller ve diğerleri gibi modüller aracılığıyla ek özellikleri destekler .--dport 22
ile başlayan komutlar --
daha önce kullanılan modül için ek seçenekleri belirtir, bu durumda tcp
modüle yalnızca bağlantı noktasına uygulanmasını söyleriz 22
.-m geoip
geoip
modülü kullanın . Paketleri ülke bazında sınırlayacaktır (5. adımda daha fazla bilgi).--src-cc PE
geoip
Modüle gelen paketleri Peru'dan gelen paketlerle sınırlamasını söyleyin . Daha fazla ülke kodu için ISO 3166 country codes
internette arama yapın .-j ACCEPT
-j
argüman anlatır iptables
paket önceki argümanlar belirtilen kısıtlamaları eşleşirse ne yapacağını. Bu durumda olacaktır ACCEPT
, başka seçenekler bu paketler vardır REJECT
, DROP
ve daha fazlası. iptables jump targets
İnternette arama yaparak daha fazla seçenek bulabilirsiniz .Tüm kuralları listele.
sudo iptables -L
Geçerli olarak kullanılan kuralları oluşturmak için kullanılan ve kuralları düzenlemek veya silmek için kullanılan tüm komutları listeleyin.
sudo iptables -S
Belirli bir kuralı silmek için bir kural seçin sudo iptables -S
ve -A
onunla değiştirin -D
.
# -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -D INPUT -p tcp -m tcp --dport 22 -j ACCEPT
INPUT
Zincirdeki tüm numaralı kuralları listeler .
sudo iptables -L INPUT --line-numbers
Numaralandırılmış bir kuralı silin.
sudo iptables -D INPUT 2
Tüm kuralları temizlemek için.
sudo iptables -F
Uyarı: SSH ile bağlanırsanız bağlantınızı kaybedebilirsiniz .
Yalnızca OUTPUT
zincirdeki kuralları temizleyin .
sudo iptables -F OUTPUT
İzin SSH
üzerine eth0
arayüzüne
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-i eth0
Herhangi bir arabirimden bu komutu kaldırmasına izin vermek için belirli bir arabirime kural uygula.Gelen paketleri belirli bir IP (yani 10.0.3.1/32
) ile sınırlamak için .
sudo iptables -A INPUT -i eth0 -s 10.0.3.1/32 -p tcp -m tcp --dport 22 -j ACCEPT
-s 10.0.3.1/32
bağlantılara izin verilecek bir IP / alt ağ belirtir.Varsayılan zincir kurallarını ayarlayın.
Uyarı: devam etmeden önce, uzak bir sunucuda çalışıyorsa doğru SSH kurallarını uyguladığınızdan emin olun .
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
-P INPUT DROP
tüm gelen paketleri reddeder (yani hiç kimse Apache, SQL vb. çalışan sunucularınıza bağlanamaz).-P FORWARD DROP
yönlendirilen tüm paketleri reddeder (yani sisteminizi yönlendirici olarak kullandığınızda).-P OUTPUT ACCEPT
tüm giden paketlere izin verir (yani bir HTTP
istek gerçekleştirdiğinizde ).Geri döngü arayüzündeki tüm trafiğe izin ver ( önerilir ).
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
Geçerli iptables
kuralları kaydedin .
sudo netfilter-persistent save
sudo netfilter-persistent reload
Bir kabın içinde çalışıyorsanız netfilter-persistent
komut büyük olasılıkla çalışmayacaktır, bu nedenle iptables-persistent
paketi yeniden yapılandırmanız gerekir .
sudo dpkg-reconfigure iptables-persistent
DNS sorgularına izin ver.
sudo iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
İzin verilen ve giden paketlere state
izin vermek için modülü kullanın .RELATED
ESTABLISHED
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
İstenen bağlantı noktalarına izin verin; bu durumda, HTTP
bağlantı noktaları.
sudo iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Kullanmak isteyebileceğiniz daha fazla bağlantı noktası.
FTP
: 21 numaralı bağlantı noktasında tcpHTTPS
: 443 numaralı bağlantı noktasında tcpDHCP
: 67 numaralı bağlantı noktasında udpNTP
: 123 numaralı bağlantı noktasında udpNot: Eğer izin vermek istiyorsanız apt-get
bunu sağlamak için gerekli olabilir FTP
veHTTPS
.
Yalnızca RELATED
ve zaten ESTABLISHED
bağlantılar için döndürülen trafiğe izin verin ( bazen çift yönlü iletişim gerektiğinden önerilir ).
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Dışarıdan ping isteklerine izin ver.
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
Üzerinde İleri trafik eth0
portuna 2200
için 10.0.3.21:22
(eğer bir konteynerin içinde çalışan bir SSH sunucusuna açığa istiyorsanız kullanışlıdır).
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2200 -j DNAT --to-destination 10.0.3.21:22
Sunucunuza SSH kullanarak başarılı bir şekilde oturum açarsanız, kalıcı bir bağlantı oluşturulur (yani 1 saatten fazla bağlı olsanız bile yeni bağlantı olmaz). Başarısız olursanız ve tekrar oturum açmayı denerseniz, yeni bir bağlantı oluşturulur. Bu, saatte yeni bağlantıları sınırlandırarak sürekli SSH giriş denemelerini engelleyecektir.
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP
Bağlantı noktasında tüm istekleri yeniden yönlendirme 443
bağlantı noktasına 4430
(eğer bağlantı noktasına bağlamak istediğinizde yararlı 443
olmadan root
).
sudo iptables -t nat -A PREROUTING -i ens3 -p tcp --dport 443 -j REDIRECT --to-port 4430
sudo iptables -A INPUT -p tcp -m tcp --dport 4430 -m geoip --src-cc PE -j ACCEPT
ens3
ağ arayüzü.-m geoip
ülke blok modülü (bkz. adım 5).Uyarı: Kullanmayın lo
, işletim sistemi geri döngü arayüzüne yönlendirilen tüm paketleri atar .
xtables-addons
xtables-addons
Modülü çeşitli yöntemler kullanarak kurabilirsiniz, sizin için en uygun kurulum yöntemini kullanmaktan çekinmeyin.
Kullanarak yükleyin apt-get
.
sudo apt-get install xtables-addons-common
Kullanarak yükleyin module-assistant
.
sudo apt-get install module-assistant xtables-addons-source
sudo module-assistant --verbose --text-mode auto-install xtables-addons
Kaynaktan yükleyin.
sudo apt-get install git bc libncurses5-dev libtext-csv-xs-perl autoconf automake libtool xutils-dev iptables-dev
git clone git://git.code.sf.net/p/xtables-addons/xtables-addons
cd xtables-addons
./autogen.sh
./configure
make
sudo make install
Bir "ülkeler" veritabanı oluşturun.
sudo apt-get install libtext-csv-xs-perl unzip
sudo mkdir /usr/share/xt_geoip
sudo /usr/lib/xtables-addons/xt_geoip_dl
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
sudo rm GeoIPCountryCSV.zip GeoIPCountryWhois.csv GeoIPv6.csv
Sisteminizi yeniden başlatın.
sudo reboot
Sonra xtables-addons
başarıyla kuruldu, ilk yeniden başlatma sonrasında, çalıştırmak depmod
aksi takdirde ülkenin engelleme (bu sadece ilk sefer için gereklidir) düzgün çalışmaz.
sudo depmod
Veritabanını aylık /etc/cron.monthly/geoip-updater
olarak güncellemek için bir komut dosyası oluşturun geoip
.
#!/usr/bin/env bash
# this script is intended to run with sudo privileges
echo 'Removing old database---------------------------------------------------'
rm -rf /usr/share/xt_geoip/*
mkdir -p /usr/share/xt_geoip
echo 'Downloading country databases-------------------------------------------'
mkdir /tmp/geoip-updater
cd /tmp/geoip-updater
/usr/lib/xtables-addons/xt_geoip_dl
echo 'Building geoip database-------------------------------------------------'
/usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip *.csv
echo 'Removing temporary files------------------------------------------------'
cd /tmp
rm -rf /tmp/geoip-updater
Make /etc/cron.monthly/geoip-updater
çalıştırılabilir.
sudo chmod +x /etc/cron.monthly/geoip-updater
_Not: iptables: No chain/target/match by that name
Bir geoip
kural uygulamaya çalışırken bir hata alıyorsanız , xtables-addons
doğru yüklenmemiş olabilir. Başka bir yükleme yöntemi deneyin.
Çin, Hong Kong, Rusya ve Kore'den gelen tüm paketleri engelleyin.
sudo iptables -A INPUT -m geoip --src-cc CN,HK,RU,KR -j DROP
80
Yukarıdaki ülkeler dışında her yerden limanda gelen paketlere izin verin .
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Yalnızca Peru'dan gelen ens3
bağlantı noktasındaki arabirimde gelen paketlere izin verin 22
(örneğin US
Amerika Birleşik Devletleri için paketleri kabul etmek istediğiniz ülke kodunu seçmekten çekinmeyin ).
sudo iptables -A INPUT -i ens3 -p tcp -m tcp --dport 22 -m geoip --src-cc PE -j ACCEPT
443
Yalnızca Peru'dan gelen bağlantı noktasına gelen paketlere izin verin .
sudo iptables -A INPUT -p tcp -m tcp --dport 443 -m geoip --src-cc PE -j ACCEPT
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.
Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.
CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?
Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.
Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!
Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.
Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun