Archive for the ‘ Püf Noktalar ’ Category

pfsense VLAN Ayarları

Orta ölçekli ve kurumsal bir çok firma network al yapısında vlan’lar uygulamaktadır. Vlan’lar ile ayrılan networkler bir birleri ile haberleşemez ve vlan’lar arası routing yaparken maksimum koruma sağlanabilir.
Bu yazıda, fabrikam.com ağında Layer 2 bir switch üzerinde vlan’lar oluşturarak ağları bölmek ve trunk porta bağlı pfSense ile bu vlan’ları yönetmek anlatılmışır. Bu uygulama labaratuar ortamında kurulmuş ve test edilmiştir.Yazılanları bire bir kendi yapınızda uygulamanız durumunda, ciddi sorunlar yaşayabilirsiniz.

Dikkat: Bu yazıda layer2 switch nasıl çalışır, vlan nedir, trunk port nedir ve nasıl yapılır gibi teorik network bilgileri bulunmuyor. Eğer bu terimlerin ne olduğunu bilmiyorsanız detaylarını 19-20 Mayıs 2011 tarihlerinde Bilgi Güvenliği AKADEMİSİ tarafından düzenlenecek “Uygulamalı pfSense Güvenlik Duvarı” eğitime katılarak öğrenebilirsiniz. Eğitim adresi, http://www.bga.com.tr/pfsense-guvenlik-duvari-egitimi-19-20-mart-2011/

 

fabrikam.com Network Yapısı

Layer2 switch’de vlan database oluşturulur. Bu dökümanda uygulanan vlan id’leri, vlan10-vlan14 arasındadır.

Görüntüleyelim oluşturulan vlan’ları

FastEthernet’leri vlan üyesi yapalım. Swich’de çalıştırılacak komutlar,

laye2switch#configure terminal
laye2switch(config)#interface FastEthernet 1/0
laye2switch(config-if)#switchport access vlan 10
laye2switch(config-if)#no shutdown
laye2switch(config-if)#
*Mar 1 00:09:13.095: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
*Mar 1 00:09:14.095: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0, changed state to up

Diğer FastEthernetlerde aynı komutlar ile istenilen vlanların üyesi yapılmalıdır.
Aynı vlan’da bulunan istemciler bir birleri ile haberleşebilecektir. Farklı vlan’lar ise haberleşemeyecektir. Trunk port oluşturup, pfSense ile farklı vlan’lar arası rouing ve vlan’ların internete çıkma gereksinimlerini yapalım.

Trunk Port Ayarı
laye2switch(config-if)#switchport mode trunk
laye2switch(config-if)#switchport trunk encapsulation dot1q
laye2switch(config-if)#no shutdown
*Mar 1 00:14:34.359: %DTP-5-TRUNKPORTON: Port Fa1/10 has become dot1q trunk

Bakalım trunk portumuza

laye2switch#show interfaces fastEthernet 1/10 switchport
Name: Fa1/10
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
……

pfSense Vlan Yapılandırması,
İstemcilerden trunk porta gelen trafik dot1q olarak pfSense e ulaşmaktadır. Bu paketi okuyup geri yanı dönebilmek için pfSense’de vlan gruplarını oluşturmamız gerekiyor.

Oluşturulan Vlan’lar artık birer subinterface. Network yapımıza göre vlan’lara ip verip iletişim kurmaya başlayabiliriz.

Vlanlar arası rouing yaparken ve vlan’dan gelen-giden paketleri filtreleme için firewall’dan gerekli kuralları yazmamız gerekiyor.

Vlan10’dan gelen istemciler, Vlan13 deki istemcilere ping atabilsin, dosya sistemine bağlabilsin vb.
Not:Lab. Ortamında tüm trafiğe izin verilmiştir.

Şimdi test aşamasına geçebiliriz,
Vlan10 da bulunan 10.0.0.1 bilgisayarından pfSense ile haberleşebiliyor muyum ? İnernet’e çıkabiliyormuyum ?

Vlan10’da bulunan 10.0.0.1 ip adresinin dışında, kimse vlan13 deki ağa erişemesin istiyorum.Bunun için firewall’dan kural oluşturup, diğer ip adreslerinin erişimlerini engelleyelim.

10.0.0.1 ip adresi vlan13 deki bir bilgisayara erişebilir durumda,

10.0.0.2 ip adresi vlan13 e erişmek istediğinde trafik engellendi.

SMTP Sniffing

Merhaba,

SMTP ile gönderilen epostaların RFC2821′e göre standart yapısı şu şekildedir:

  1. Oturum açma ve gönderen-alıcı girişi
  2. Mesaj başlığı
  3. Mesaj gövdesi
  4. Oturum kapatma

Mesaj başlığı bölümü DATA\r\n ile başlar ve \r\n\r\n ile biter, mesaj gövdesi ise \r\n.\r\n ile (aradaki nokta önemli) biter. Örnek bir SMTP transferi şu şekildedir:

Bölüm 1 başlangıcı
220 bilgiin.com ESMTP
EHLO [192.168.5.205]
250-hmailserver
250-SIZE
250 AUTH LOGIN
AUTH LOGIN
334 xxx
xxx
334 xxx
xxx
235 authenticated.
MAIL FROM:<gonderen@cehturkiye.com> SIZE=376
250 OK
RCPT TO:<alici@cehturkiye.com>
250 OK
DATA
354 OK, send.

Bölüm 2 başlangıcı
Message-ID: <4D033CA4.1090208@ozanucar.com>
Date: Sat, 11 Dec 2010 10:56:04 +0200
From: =?ISO-8859-9?Q?Gonderen Adi?= <gonderen@cehturkiye.com>
User-Agent: Thunderbird 2.0.0.24 (X11/20100411)
MIME-Version: 1.0
To: =?ISO-8859-9?Q?Alici Adi?= <alici@cehturkiye.com>
Subject: aa
Content-Type: text/plain; charset=ISO-8859-9; format=flowed
Content-Transfer-Encoding: 7bit

Bölüm 3 başlangıcı
mesaj gövdesi
Bölüm 4 başlangıcı
.
250 Queued (0.031 seconds)
QUIT
221 goodbye

Bu örneğin başlık bölümüne baktığınızda gönderen ve alıcı gibi bilgileri kolaylıkla görebilirsiniz.
Birden fazla alıcı olduğunda ise alıcıların yazıldığı satırlar 80 karakter ile sınırlı kalmak koşuluyla alıcılar birden fazla satıra yazılır ve ilk satırdan sonraki alıcı satırlarının başında #32 (boşluk karakteri) bulunur. Örneğin:

To: alici1@cehturkiye.com, alici2@cehturkiye.com ,
 alici3@cehturkiye.com

Dolayısıyla bir SMTP mesajını ayrıştırırken To: alanında birden fazla alıcı olduğu dikkate alınmalı, To: başlangıcından sonraki satırlarda boşluk karakteri olup olmadığına bakılmalıdır.

Ancak tüm eposta istemcisi uygulamalar RFC2821′e göre hareket etmez. Bu standarda uymayanlardan birisi de Microsoft Outlook 2007 uygulamasıdır. Outlook 2007 RFC2821′de bulunmayan başlık alanları eklemekle kalmaz, birden fazla alıcı için de standardın dışında bir yöntem kullanır. Tek alıcısı olan bir epostaya örnek şu şekildedir:

Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01CB9793.DF23CF26"
X-MimeOLE: Produced By Microsoft Exchange V6.5
Subject: RE: subject
Date: Thu, 9 Dec 2010 13:26:06 +0200
Message-ID: <xxx>
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Thread-Topic: AD-R 2060 (S49376)
Thread-Index: AcuXkAB9XTO2/OQsSB6/f+m0vHSVmQAA9j7g
References: <xyz>
From: "abc" <sender@mail.com>
To: =?utf-8?B?JRd1LQNPNkLQNPYQN9L=?= <alici@cehturkiye.com>

Birden fazla alıcı söz konusu olduğunda ise To: alanında ilk satırdan sonraki satırların başına \t (sekme) karakteri kullanır:

To: =?iso-8859-9?Q?Alici Adi?= <alici1@cehturkiye.com>,
<alici2@cehturkiye.com>,
"Alici Uc" <alici3@cehturkiye.com>,
<alici4@cehturkiye.com>

Dolayısıyla SMTP ile giden bir epostanın ayrıştırılması sırasında RFC2821′de belirtilenlerin dışında ek kontroller koymak gerekir. C ile yazılmış örnek bir ayrıştırıcı şuna benzer bir kod kullanabilir:

if ((strncmp(payload, "Message-ID: ", 12) == 0) || (strncmp(payload, "Message-ID: ", 12) != NULL)){
/* Eğer Message-ID ile başlamışsa (standart) ya da içerisinde Message-ID geçiyorsa (Outlook) */
....
/* To: kısmını almak için gereken kod */
    if ((p = strstr(payload, "To: ")) != NULL && p < s) {
__cont1:
        for (; *p != '\r' && *p != ''; p++) {
            fputc(*p, mail_fp);
            fputc(*p, mail_fp2);
        }
        if (p != NULL) {
        p = p + 2;
        if ((*p != '' && *p == ' ') || (*p != '' && *p == '\t')) {
            /* satırın ilk karakteri #32 (boşluk) ise (standart) veya \t (sekme) ise (Outlook) */
            p++;
            goto __cont1;
            }
        }
    }

FreeBSD paketi oluşturmak

FreeBSD’de port ağacından veya kaynak koddan derleyip sisteminize kurduğunuz yazılımları, .tbz haline getirip bir başka freebsd işletim sisteminde “pkg_add -rv paketadi.tbz” şeklinde kolaylıkla kurabilirsiniz. Bu işlem sizi tekrar tekrar kaynak koddan veya port ağacından yazılımı derleyip kurulum yapma zahmetinden kurtarır.

Bu işlem için “pkg_create” komutu kullanılır, “-R” paremetresi ile paketin bağımlılıklarıda alınabilir.
Örneğimizde, squid paketinin oluşturulması yer alıyor;

Freebsd8# pkg_create -nvRb /var/db/pkg/squid-2.7.9
Creating package squid-2.7.9
Creating bzip’d tar ball in ‘/root/pf/squid-2.7.9.tbz’
Creating package gdbm-1.8.3_3
Creating bzip’d tar ball in ‘/root/pf/gdbm-1.8.3_3.tbz’
Creating package perl-threaded-5.10.1_1
Creating bzip’d tar ball in ‘/root/pf/perl-threaded-5.10.1_1.tbz’
Creating package db41-4.1.25_4
Creating bzip’d tar ball in ‘/root/pf/db41-4.1.25_4.tbz’
Creating package cyrus-sasl-2.1.23
Creating bzip’d tar ball in ‘/root/pf/cyrus-sasl-2.1.23.tbz’

Parametre açıklamaları,
-n Herhangi bir soru sorarsa, varsayılan olarak hayır yanıtını ver.
-R Paket bağımlılıklarınıda oluştur
-v Detaylı bilgi ver
-b paket adı

Snort Sorun Giderme Klavuzu

Snort IDS/IPS/ADS yazılımının bir çok linux ve *BSD dağıtımı için hali hazırda derlenmiş sürümlerini depolarda bulabilirsiniz.Fakat depodan kurduğumuz snort’un bazı özellikleri aktif gelmiyor -react -inline gibi. Kaynak koddan kurulum esnasında bazı sıkıntılar yaşamanız muhtemel çoğuz zaman da kaçınılmaz  : )

Ubuntu 9 üzerine snort kurulumu esnasında yaşanacak bazı problemler ve çözümleri aşağıdaki gibidir ;

UYARI: Derleme esnasında react,flexresp2 ve inline özellikleri ile derlenmiştir farklı özellikleri aktif edilirken hata sayısı artabilir veya değişebilir : ))

sudo ./configure –enable-flexresp2 –enable-react –enable-inline

Sorun 1 :
checking for pcre.h… no

ERROR!  Libpcre header not found.
Get it from http://www.pcre.org

Çözüm :
sudo apt-get install libpcre++0 libpcre++-dev pcregrep
Read more

 
Hosting Sponsorumuz