31 Mart 2008

Debian'dan Oracle servera nasıl bağlanılır?

Bu işi en kolay nasıl yaparım, ayar dosyaları ile fazla boğuşmadan nasıl hallederim diye biraz araştırma yaptım. Burada anlatılanlar 'dan daha kolay bir yöntem bulamadım. Gerçekten de benim için en kolay yöntem diyebilirim. Yapılacak iş şöyle:

Önce gerekli depoyu sources.list'e ekliyoruz.

/etc/apt/sources.list
deb http://oss.oracle.com/debian unstable main non-free

Sonra kurulumu yapıyoruz:

# apt-get install update
# apt-get install oracle-xe-client


/etc/tnsnames.ora dosyasını oluşturup, içine gerekli kodları yazıyoruz. Bu dosyayı networkde oracle servera bağlantı yapan XP bir PC'den de alabilirsiniz.

Örnek tnsnames.ora dosyası:

AYTEKIN =
   (DESCRIPTION =
      (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
      )
      (CONNECT_DATA =
         (SERVICE_NAME = AYTEKIN)
      )
   )


Artık, /usr/lib/oracle/xe/app/oracle/product/10.2.0/client/scripts/sqlplus.sh dosyası ile bağlantı yapılıp, SQL sorgular yapılabilir.

19 Mart 2008

Çift Adsl ve Linux Trafik Yönetimi

Başlıkta "çift adsl" ifadesini kullandım ama aslında bir adsl ve bir frame relay hattı olan ağda Linux ile yaptığım trafik yönlendirmesini anlatacağım. Yaptıklarım temelde aynı olduğu için frame relay yerine adsl hattı da olsa sonuç değişmez.

Bir kurumda yaşanan sorun şuydu: normal internet hareketleri için adsl'i kullanırken aynı zamanda bağlı bulundukları bakanlığın frame relay hattını kullanarak bakanlığın sayfalarında veri girişleri yapamıyorlardı. Her iki hat farklı IP gruplarında olduğundan PC'lerin IP ayarlarını sürekli değiştirerek işi çözüyorlardı. Bu durum da bilgi işleme ayrı bir yük getiriyordu tabi. Ayrıca PC'lerin IP'leri sürekli değiştirildiğinden odalardaki yazıcıların paylaşımı ve kullanımında sorunlar oluyordu. Aynı şekilde dosya paylaşımları da...

Çözüm olarak bu trafiğin ortasına bir Linux koyarak tüm ağı aynı IP grubuna aldım. Çıkışları da hedef adrese yada IP'ye göre yönlendirdim. Linux'a, şu şu şu adreslere iletişim frame relay hattından, geri kalan iletişim de adsl hattından yapılacak, dedim. Kullanıcıların sadece tarayıcılarına site adreslerini yada IP'lerini yazması yetti. Gerisini Linux halletti... Ha, tabi bu trafiği de web filtreleme, güvenlik duvarı, dhcp sunucu, trafik sınırlama (bandwith yönetimi) ile de cilalamayı unutmadım.

Teknik olarak bu işi şöyle yaptım:
Önce linux'a 3 adet ethernet kartı takıldı. Lokal, adsl ve frame relay bağlantıları için. Topoloji şekildeki gibi:



/etc/network/interfaces dosyası şu şekilde:
auto lo eth0 eth1 eth2
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.2

allow-hotplug eth1
iface eth1 inet static
dns-nameservers 10.0.0.2
address 192.168.1.254
netmask 255.255.255.0

allow-hotplug eth2
iface eth2 inet static
address 10.67.1.10
netmask 255.255.255.0


interfaces dosyasında da göründüğü gibi sadece eth0 için gateway tanımı ve eth1 için dns tanımı yaptım.

Bakanlıkta bağlanılan sistemin IP adresleri 10.6.8.0/24 ağındaydı. Bu IP grubu için ağ geçidi olarak router'ın IP adresini atadım.

# route add -net 10.6.8.0 netmask 255.255.255.0 gw 10.67.1.1

10.67.1.0/24 ağı için de aynı şeyi yaptım.

# route add -net 10.67.1.0 netmask 255.255.255.0 gw 10.67.1.1


route -n çıktısı şöyle:

Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.6.8.0 10.67.1.1 255.255.255.0 UG 0 0 0 eth2
10.67.1.0 10.67.1.1 255.255.255.0 UG 0 0 0 eth2
10.67.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0


firewall olarak kullandığım script'de iptables ile trafiği yönlendirdim. Aşağıdaki komutlarda göründüğü gibi 10.6.8.0/24 hedefine gitmek isteyen trafik eth2'ye yönlendiriliyor. Diğer trafik eth1'den çıkıyor.

iptables -t nat -A POSTROUTING -d 10.6.8.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

Bu şekilde istediğim trafiği istediğim ağ arayüzüne yönlendirebilirim. Bu yapı benim işimi gayet iyi gördü.

14 Mart 2008

squid ve virüs

Debian Linux proxy server nedensiz bir şekilde internet hareketini durdurmaya başladı. /var/log/syslog'a baktım ve:
"WARNING! Your cache is running out of filedescriptors" hata mesajını gördüm. Yaptığım araştırmada /etc/defaults/squid dosyasındaki SQUID_MAXFD değerinin 1024'den 4096'ya çıkarılarak sorunun çözülebileceğini okudum. Yaptım ama olmadı! Bir bug olabileceği düşüncesiyle sistemi kernel dahil güncelledim ama nafile. Log'lara bakarken bir IP'nin www.rusawm.com'a anlamsız bir şekilde trafik yaptığını gördüm. Blok şeklinde satırlarca bu siteye erişim logları access.log dosyasına düşüyordu. Kullanıcının dışında habersiz bir iletişim yapıldığı ortada olduğundan, IP'nin sahibi PC'nin kablosunu çektik. Sorun düzeldi... Ne menem bir virüs ise yaptığı trafik ile squid'in cachelerine zarar veriyormuş. Hani Linux ile masaüstünde virüssüz bir dünya kurmuş durumdayız ama windows PC'lere hizmet veren, onlara efendilik yapan bir Linux'da yer yer virüslerden nasibini alıyor maalesef...