{"id":1477,"date":"2020-05-27T23:42:14","date_gmt":"2020-05-27T20:42:14","guid":{"rendered":"https:\/\/www.linux-destek.com\/?p=1477"},"modified":"2020-05-27T23:42:14","modified_gmt":"2020-05-27T20:42:14","slug":"iptables-geoip-eklentisinin-kurulumu-ve-kullanimi","status":"publish","type":"post","link":"https:\/\/www.48k.com.tr\/iptables-geoip-eklentisinin-kurulumu-ve-kullanimi\/","title":{"rendered":"Iptables Geoip Eklentisinin Kurulumu ve Kullan\u0131m\u0131"},"content":{"rendered":"

Belli bir \u00fclkeden gelen ip trafi\u011fini k\u0131s\u0131tlamak veya engellemek i\u00e7in kullanabilece\u011finiz bir iptables eklentisidir.Eklenti standart Linux distrolar\u0131nda eklenmi\u015f,haz\u0131r halde de\u011fildir.Ayr\u0131ca bu eklentiyi kullanabilmeniz i\u00e7in g\u00fcncel bir geoip veritaban\u0131na ihtiya\u00e7 duyars\u0131n\u0131z.Bu veritaban\u0131n\u0131 da maxmind.com’a \u00fcyelik yaparak \u00fccretsiz kullanabileceksiniz.<\/p>\n

Debian veya Ubuntu t\u00fcrevleri i\u00e7in \u00f6ncelikle gerekli paketleri sisteminize kurun.<\/p>\n

apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config<\/p>\n

Redhat ve Centos i\u00e7in ise;<\/p>\n

yum install gcc-c++ make automake kernel-devel-`uname -r` wget unzip iptables-devel perl-Text-CSV_XS<\/p>\n

Daha sonras\u0131nda addons paketini proje sitesinden indirelim.(Not: Dkms modulu olarak veya src paketi olarak da debian\/ubuntu depolar\u0131ndan indirebilirsiniz.)<\/p>\n

\u00d6rne\u011fin (sizin i\u00e7in uygun versiyon i\u015fletim sisteminizin kerneline g\u00f6re farkl\u0131l\u0131k g\u00f6sterebilir.)<\/p>\n

wget http:\/\/downloads.sourceforge.net\/project\/xtables-addons\/Xtables-addons\/xtables-addons-2.3.tar.xz<\/p>\n

S\u0131k\u0131\u015ft\u0131r\u0131lmaz paketi a\u00e7\u0131p\u00a0 paketi derliyoruz.<\/p>\n

# tar xf xtables-addons-2.3.tar.xz
\n# cd xtables-addons-2.3
\n# .\/configure
\n# make
\n# make install<\/p>\n

Kullanaca\u011f\u0131m\u0131z eklenti maxmind’\u0131n eski yap\u0131daki (Geoip Legacy Databases) veritaban\u0131n\u0131 destekliyor.\u00d6yle g\u00f6r\u00fcn\u00fcyor ki maxmind eski yap\u0131daki veritaban\u0131n da indirme linkini kald\u0131rm\u0131\u015f.Yine de Geoip2 veritaban\u0131n\u0131 bir script yazarak eski yap\u0131ya d\u00f6n\u00fc\u015ft\u00fcrmek m\u00fcmk\u00fcn g\u00f6r\u00fcn\u00fcyor.Nette biraz ara\u015ft\u0131r\u0131nca \u015f\u00f6yle bir websitesiyle kar\u015f\u0131la\u015f\u0131yoruz.<\/p>\n

https:\/\/mailfud.org\/geoip-legacy\/<\/p>\n

Websitesin sahibi, g\u00fcncel v2 db yi al\u0131p eski tip db ye sadece \u00e7evirmekle kalmam\u0131\u015f ayn\u0131 zamanda bunu s\u0131k s\u0131k g\u00fcncelliyor da.<\/p>\n

Iptables i\u00e7in uygun olan geoip db linki a\u015fa\u011f\u0131dad\u0131r.<\/p>\n

https:\/\/mailfud.org\/geoip-legacy\/GeoIP-legacy.csv.gz<\/p>\n

Linkten dosyay\u0131 download ettikten sonra sunucunzda bir yere gz dosyay\u0131 a\u00e7\u0131n.<\/p>\n

A\u00e7\u0131lan dosyay\u0131 \u00f6nceden derlenmi\u015f kodda haz\u0131r halde olan xt_geoip_build arac\u0131 ile iptables’a uygun hale getiriyoruz.<\/p>\n

.\/xt_geoip_build GeoIP-legacy.csv<\/p>\n

Ard\u0131ndan gerekli klas\u00f6r\u00fc olu\u015fturup bu db yi i\u00e7ine kopyal\u0131yoruz.<\/p>\n

mkdir -p \/usr\/share\/xt_geoip\/<\/p>\n

cp -r {BE,LE} \/usr\/share\/xt_geoip\/<\/p>\n

Art\u0131k diledi\u011fimiz geoip tabanl\u0131 iptables kurallar\u0131n\u0131 yazabiliriz.Son olarak dilerseniz \u00fclke kodlar\u0131na https:\/\/en.wikipedia.org\/wiki\/ISO_3166-1 sayfas\u0131ndan bakabilirsiniz.<\/p>\n

\u00d6rnek olarak Hindistan ve USA ‘dan gelen t\u00fcm istekleri engelleyebiliriz.<\/p>\n

iptables -I INPUT -m geoip –src-cc IN,US -j DROP<\/p>\n

Veya sadece TR d\u0131\u015f\u0131ndaki t\u00fcm talepleri engelleyebiliriz.<\/p>\n

iptables -I INPUT -m geoip ! –src-cc TR -j DROP<\/p>\n

Bir ba\u015fka \u00f6rnek ise sadece tcp port 587 e gelen istekleri T\u00fcrkiye i\u00e7i a\u011flarla s\u0131n\u0131rland\u0131rabiliriz.<\/p>\n

iptables -A INPUT -p tcp -m geoip ! –src-cc TR –dport 587 -j DROP<\/p>\n

Uygulama Alananlar\u0131 ve Kar\u015f\u0131la\u015fabilece\u011finiz Problemler…<\/h3>\n

Bu eklentilerin kurulumunu Ubuntu 16.04 ve Ubuntu 14.04 de ger\u00e7ekle\u015ftirdim.Esasen 14.04 de gerekliydi ve hem kaynaktan derleme hem de dkms \u015feklinde linux \u00e7ekirde\u011fine ilavede sorun ya\u015fad\u0131m.Sorun ya\u015famam\u0131n sebebini xtables-addons paketindeki ba\u015fka eklentilerin kullanmakta oldu\u011fum kernel ile uyumsuz oldu\u011funu (daha a\u00e7\u0131k olarak belirtmek gerekirse Linux 3.16 da bu baz\u0131 eklentilerin deste\u011finin yeni ba\u015flad\u0131\u011f\u0131n\u0131) okudum.O y\u00fczden baz\u0131 eklentileri mconfig dosyas\u0131ndan iptal ettip.\u00c7\u00fcnk\u00fc bana \u00f6zellikle geoip modulu gerekiyordu.<\/p>\n

\u00d6rnek mconfig dosyam a\u015fa\u011f\u0131dad\u0131r.Kar\u015f\u0131l\u0131klar\u0131 bo\u015f olanlar sistemde derlenemedi malesef.<\/p>\n

# -*- Makefile -*-
\n#
\nbuild_ACCOUNT=m
\nbuild_CHAOS=
\nbuild_DELUDE=m
\nbuild_DHCPMAC=m
\nbuild_DNETMAP=m
\nbuild_ECHO=m
\nbuild_IPMARK=m
\nbuild_LOGMARK=m
\nbuild_RAWNAT=m
\nbuild_STEAL=m
\nbuild_SYSRQ=m
\nbuild_TARPIT=
\nbuild_condition=m
\nbuild_fuzzy=m
\nbuild_geoip=m
\nbuild_gradm=m
\nbuild_iface=m
\nbuild_ipp2p=m
\nbuild_ipv4options=m
\nbuild_length2=m
\nbuild_lscan=m
\nbuild_pknock=
\nbuild_psd=m
\nbuild_quota2=m<\/p>\n

Ancak Ubuntu 16.04 de bunlara hi\u00e7 gerek duymadan dkms ile t\u00fcm\u00fcn\u00fc kernele eklemeyi ba\u015fard\u0131m.<\/p>\n

Geoip & Iptables kullanmaktaki amac\u0131m,mail sunucunun (postfix) email kullan\u0131c\u0131 \u015fifre do\u011frulamas\u0131 yap\u0131lan portlar\u0131n\u0131 k\u0131s\u0131tlamak idi.<\/p>\n

Tcp Port 25 i sadece email sunucular\u0131ndan gelen isteklere yan\u0131t verir hale getirirken port 587 (submission) ve port 465’i (smtps) sadece TR i\u00e7inde izin vermek ama\u00e7..<\/p>\n

Her ne kadar “en mant\u0131kl\u0131\/iyi \u00e7\u00f6z\u00fcm” olmasa da sunucular\u0131 brute force ataklar\u0131ndan ve \u015fifresini \u00e7ald\u0131ran eposta kullan\u0131c\u0131lar\u0131n\u0131n ba\u015f\u0131ma a\u00e7t\u0131\u011f\u0131 dertlerden kurtard\u0131.<\/p>\n","protected":false},"excerpt":{"rendered":"

Belli bir \u00fclkeden gelen ip trafi\u011fini k\u0131s\u0131tlamak veya engellemek i\u00e7in kullanabilece\u011finiz bir iptables eklentisidir.Eklenti standart Linux distrolar\u0131nda eklenmi\u015f,haz\u0131r halde de\u011fildir.Ayr\u0131ca bu eklentiyi kullanabilmeniz i\u00e7in g\u00fcncel bir geoip veritaban\u0131na ihtiya\u00e7 duyars\u0131n\u0131z.Bu veritaban\u0131n\u0131 da maxmind.com’a \u00fcyelik yaparak \u00fccretsiz kullanabileceksiniz. Debian veya Ubuntu t\u00fcrevleri i\u00e7in \u00f6ncelikle gerekli paketleri sisteminize kurun. apt-get install iptables-dev xtables-addons-common libtext-csv-xs-perl pkg-config Redhat ve […]<\/p>\n","protected":false},"author":1,"featured_media":1479,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[301,471,358],"tags":[472,302,680,480,681,287,636],"class_list":["post-1477","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ag-uygulamalari","category-centos-7","category-web-sunuculari","tag-centos-7","tag-debian","tag-geoip","tag-iptables","tag-iptables-xt_geoip","tag-linux","tag-maxmind-geoip"],"_links":{"self":[{"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/posts\/1477"}],"collection":[{"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/comments?post=1477"}],"version-history":[{"count":0,"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/posts\/1477\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.48k.com.tr\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/media?parent=1477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/categories?post=1477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.48k.com.tr\/wp-json\/wp\/v2\/tags?post=1477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}