iptables'a xtables-addons+geoip Kurulumu
DİKKAT! Öncelikle bu konfigürasyonun çalışması için gelişmiş kernel modüllerinin kurulabilmesi gerekmektedir. Bu da bazı vps sanallaştırma sistemleri altında mümkün olmamaktadır (OpenVZ gibi.). Kurulumunun bir CentOS CD/DVD/LiveUSB'sinden yapılabildiği VDS/Dedicated tipi sunucularda gelişmiş kernel modülleri büyük ihtimalle kullanılabilir olacaktır ve bu konfigürasyon da mümkündür.
1 |
nano /etc/selinux/config |
komutuyla /etc/selinux/config dosyasını açtık,
[...]
#SELINUX=enforcing
SELINUX=disabled
[...]
belirtilen değişiklikleri yapıp, dosyayı kaydedip kapatıyoruz.
1 2 3 |
echo 0 > /selinux/enforce yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel yum install perl-Text-CSV_XS |
komutlarıyla /selinux/enforce dosyasının içeriğine "0" ekledik, kernel-devel de dahil ilgili paketleri indirip kurduk.
1 2 3 |
cd /usr/local/src wget http://downloads.sourceforge.net/project/xtables-addons/Xtables-addons/1.39/xtables-addons-1.39.tar.xz tar xvf xtables-addons-1.39.tar.xz |
komutlarıyla kurulum için /usr/local/src dizinine geçip kaynak kodlarını indirip arşiv formundan çıkarıyoruz.
1 2 3 4 |
cd xtables-addons-1.39 mkdir -p /old/usr/local/src/xtables-addons-1.39 cp /usr/local/src/xtables-addons-1.39/mconfig /old/usr/local/src/xtables-addons-1.39/ nano mconfig |
komutlarıyla arşivden çıkarılan dizine geçip değişiklik yapacağımız /usr/local/src/xtables-addons-1.39/mconfig dosyasını yedekledik ve nanoyla açtık,
# -*- Makefile -*-
#
build_ACCOUNT=m
build_CHAOS=m
build_CHECKSUM=
build_DELUDE=m
build_DHCPMAC=m
build_DNETMAP=m
build_ECHO=
build_IPMARK=m
build_LOGMARK=m
build_RAWNAT=
build_STEAL=m
build_SYSRQ=
build_TARPIT=m
build_TEE=
build_condition=m
build_fuzzy=m
build_geoip=m
build_gradm=m
build_iface=m
build_ipp2p=m
build_ipset6=
build_ipv4options=m
build_length2=
build_lscan=m
build_pknock=m
build_psd=m
build_quota2=m
açıklamada yeralan modüllerden kurulmasını istediklerimizin yanına "m" harfini ekliyoruz, kurulmasını istemediklerimizin "m" harflerini kaldırıyoruz. Örneğin "build_geoip=m" şeklinde kurulacak bir modülken, "build_ipset6=" modülü kurulmayacak olarak işaretlendi.
1 2 |
./configure make && make install |
komutlarıyla indirdiğimiz kaynak kodlarını derleyip kuruyoruz.
1 2 3 4 5 |
cd geoip/ ./xt_geoip_dl ./xt_geoip_build GeoIPCountryWhois.csv mkdir -p /usr/share/xt_geoip/ cp -r {BE,LE} /usr/share/xt_geoip/ |
komutlarıyla da GeoIP veritabanını (ülke IP bloklarını) indirip ilgili dizinlere kopyalıyoruz.
1 2 |
iptables -I INPUT -m geoip --src-cc CN -j REJECT service iptables save && service iptables restart |
komutlarıyla iptables servisini yeniden başlatarak sunucumuza Çin Halk Cumhuriyeti'nden gelecek bağlantıları engellemiş olduk.
1 2 |
iptables -nvL iptables -S |
komutlarıyla iptables tanımlamalarımızı listeliyoruz.
1 |
nano /usr/local/src/xtables-addons-1.39/geoip/geoip.sh |
komutuyla yeni bir /usr/local/src/xtables-addons-1.39/geoip/geoip.sh dosyası açıp,
#!/bin/bash
cd /usr/local/src/xtables-addons-1.39/geoip && ./xt_geoip_dl && ./xt_geoip_build GeoIPCountryWhois.csv && sudo cp -fr {BE,LE} /usr/share/xt_geoip/
exit 0
kısımlarını ekliyoruz.
1 2 3 4 5 6 |
chmod 755 /usr/local/src/xtables-addons-1.39/geoip/geoip.sh ln -s /usr/local/src/xtables-addons-1.39/geoip/geoip.sh /etc/cron.weekly/geoip.sh ln -s /usr/local/src/xtables-addons-1.39/geoip/geoip.sh /usr/local/bin/geoip.sh geoip.sh ls -l /usr/share/xt_geoip/BE ls -l /usr/share/xt_geoip/LE |
komutlarıyla az önce oluşturduğumuz scripte çalıştırılabilir şekilde okuma-yazma izinlerini verip, haftalık cron işlemlerinde çalıştırılması için /etc/cron.weekly/ dizinine, "geoip.sh" komutuyla çalışması için /usr/local/bin/ dizinine linkliyoruz.
0 Yorumlar.