CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin
CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.
iptablesLinux ç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 netcatkomutu ( 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_IPSunucu adresinizle değiştirin .PORTAçı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 INPUTBir kural eklemek INPUTzinciri, bir zincir kurallar grubudur, bu kılavuzun üzerinde en çok kullandığınız olanlar olacaktır INPUT, OUTPUTve PREROUTING.-p tcptcpBu kuralın uygulanacağı protokol olarak ayarlandığında udp, icmpveya gibi diğer protokolleri de kullanabilirsiniz all.-m tcptcpmodülü kullanın . iptablesbazıları önceden yüklenmiş iptablesolarak gelen geoipmodüller ve diğerleri gibi modüller aracılığıyla ek özellikleri destekler .--dport 22ile başlayan komutlar --daha önce kullanılan modül için ek seçenekleri belirtir, bu durumda tcpmodüle yalnızca bağlantı noktasına uygulanmasını söyleriz 22.-m geoipgeoipmodülü kullanın . Paketleri ülke bazında sınırlayacaktır (5. adımda daha fazla bilgi).--src-cc PEgeoipModüle gelen paketleri Peru'dan gelen paketlerle sınırlamasını söyleyin . Daha fazla ülke kodu için ISO 3166 country codesinternette arama yapın .-j ACCEPT-jargüman anlatır iptablespaket ö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, DROPve 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 -Sve -Aonunla 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
INPUTZincirdeki 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 OUTPUTzincirdeki kuralları temizleyin .
sudo iptables -F OUTPUT
İzin SSHüzerine eth0arayü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 ACCEPTtüm giden paketlere izin verir (yani bir HTTPistek 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 iptableskuralları kaydedin .
sudo netfilter-persistent save
sudo netfilter-persistent reload
Bir kabın içinde çalışıyorsanız netfilter-persistentkomut büyük olasılıkla çalışmayacaktır, bu nedenle iptables-persistentpaketi 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 stateizin vermek için modülü kullanın .RELATEDESTABLISHED
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
İstenen bağlantı noktalarına izin verin; bu durumda, HTTPbağ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-getbunu sağlamak için gerekli olabilir FTPveHTTPS .
Yalnızca RELATEDve zaten ESTABLISHEDbağ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 eth0portuna 2200iç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 443bağlantı noktasına 4430(eğer bağlantı noktasına bağlamak istediğinizde yararlı 443olmadan 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-addonsxtables-addonsModü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-addonsbaşarıyla kuruldu, ilk yeniden başlatma sonrasında, çalıştırmak depmodaksi 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-updaterolarak 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 nameBir geoipkural uygulamaya çalışırken bir hata alıyorsanız , xtables-addonsdoğ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
80Yukarı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 ens3bağlantı noktasındaki arabirimde gelen paketlere izin verin 22(örneğin USAmerika 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
443Yalnı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
CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.
Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.
OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.
Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.
26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm
Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.
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.
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.
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.