22.04.2009
too many open files
Linux'te tanımlı olan maksimum açılabilir dosya sayısı limiti aşıldıgında,
oluşan "too many open files" hatasının çözümü oldukça basit;
oncelikle open files limitimizin ne olduguna bakıyoruz
ulimit -n
1024
bu degeri "4096" 'ya çıkarmak için;
/etc/security/limits.conf dosyasının içine
#for too many open files
* soft nofile 4096
* hard nofile 4096
/etc/sysctl.conf dosyasının içine
#for too many open files
fs.file-max=4096
sistemi restart etmeden degişikliklerin aktif olması için
sysctl -p
komutu çalıştırılır...
21.04.2009
Konsol'da Proxy
$ vi ~/.bashrc
Bu dosyanin sonuna asagidaki girdileri eklemektir:
export http_proxy={kullanici_adi}:{sifre}@{proxy}:{port}
export https_proxy={kullanici_adi}:{sifre}@{proxy}:{port}
export ftp_proxy={kullanici_adi}:{sifre}@{proxy}:{port}
Yalniz unutmamak gereken bir nokta : sifreyi plain text olarak yazmali ve icinde @ bulundurmamaliyiz, zira @ konsol proxy de ayrac olarak kullaniliyor.
20.04.2009
SUN Satildi
Bu aslina cok sevindirici benim adima.Daha once Linux uzerinde kosturdugumuz OracleVeritabanlarinin performanslarinin Sun Solaris uzerinde,Windows ile Linux arasindaki Performans farki kadar farkli oldugunu duymus ancak tecrube edememistik. Umarim bundan sonra hersey degisir ve artik hem Oracle Sun sistemlere yatkinligini arttirir hem de Oracle kullanacak kisiler SUN sistemlere daha sicak bakarlar.
Ben kendi adima cok sevindim
Kaynak : http://www.sun.com/aboutsun/media/presskits/2009-0420/index.jsp
gcc ile c++ derlemek
C++ bir program yazilmasi gerekyordu, buyuk olcude yazip lden gecirdim, ilginc olan tarafi uzun suredir gcc ile program derlememisim.
Yazdigim c++ kodunu nasil derleyecegimi aramak zorunda kaldim.
En sonunda buldum :
g++ -Wall svural.cc -o svural
:)
17.04.2009
find ile bos klasorleri bulma
Ama find'in parametreleri arasinda bos klasorleri bulabilecegimiz bir parametresi de varmis.
find {arama_yapilacak_yer} -type d ile klasorlistesini alirken, bir de -empty ekliyoruz.
find {arama_yapilacak_yer} -type d -empty
Kaynak : http://www.void.gr/kargig/blog/2009/04/16/delete-all-empty-directories-using-xarg/
cron Yonetimi
Cron islerini yonetirken bunu su ana kadar belli cercevelerde yapiyordum :
$crontab -e // ile cron editorune giriyor ve isleri burda
dakika saat gun ay haftagunu komut
ya da
# vi /etc/crontab // ile cronjoblari yonetiyordum.
Ancak ozellikle gunluk, haftalik vs yonetimler iicn cron'un da kisa yollari oldugunu ogrendim.
Su sekilde :
string meaning
------ -------
@reboot Run once, at startup.
@yearly Run once a year, "0 0 1 1 *".
@annually (same as @yearly)
@monthly Run once a month, "0 0 1 * *".
@weekly Run once a week, "0 0 * * 0".
@daily Run once a day, "0 0 * * *".
@midnight (same as @daily)
@hourly Run once an hour, "0 * * * *".
Kaynak :http://www.howtoforge.com/a-short-introduction-to-cron-jobs
14.04.2009
MailScanner
Eskiden kurdugum bir mail sunucu uzerindeki mail servisinin mail yollamadigini farkettim ve MailScanner servisini baslattigimda sorunun MailScannerdan /usr/lib/MailScanner/MailScanner/Message.pm kaynaklandigini gordum. Aldigim hata : "/usr/lib/MailScanner/MailScanner/Message.pm" seklindeydi.
MailScanner versiyonum eskimisti:
- # perl -MCPAN -eshell
- cpan > install Bundle::CPAN
- cpan > reload cpan
- cpan > exit
- # perl -MCPAN -eshell
- cpan > upgrade
- wget {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu.rpm.tar.gz}
- tar -xvzf {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu.rpm.tar.gz}
- cd {en_yeni_MailScanner_Versiyonu_OS_im_ile_uyumlu}
- ./install.sh
- /etc/init.d/MailScanner restart
- //Burada bir klasor hatasi aldim
- vi /etc/MailScanner/MailScanner.conf // Bu dosyada Lock stringini aratip /tmp yerine adam akilli bir Lock yeri yaziyoruz. (Yer zaten oneriliyor bize)
- /etc/init.d/MailScanner restart
- mailq |wc -l
- Queue gittikce ufaliyor. Sorun cozuldu :)
MySQL ile Yedekten donme
Yakin zamanda mysql'de procedure ve function'larin yedeklemesi hakkinda ufak bir yazi yazmistim.Bugun bloglari gezerken bir makalede bilmedigim bir yolu okudum. Dogrusu makaleyi yazan eleman MySQL administration islerini hala PHPMyAdmin ile yapacak kadar acemi ama yine de gordugum ufacik bilgiyi paylasayim istedim.
Oncelikle mysql'den yedegi
mysqldump -u{db_user_name} -p{db_user_password} {db_adi} > {yedek_dosyasi.sql} seklinde alinacagini ve
mysql -u{db_user_name} -p{db_user_password} {db_adi} < {yedek_dosyasi.sql} ile restore edilecegini biliyoruz. Ancak eleman soyle yapmis:
- mysql -u{db_user_name} -p{db_user_password} // ile mysql'e baglanmis
- use {db_adi}; // ile veritabanini
- source {yedek_dosyasi_pathi} // ile db yi restore etmis
Kaynak : http://ditio.net/2008/12/07/big-mysql-dump-import/
8.04.2009
SLES ile Squid ile Transparent Proxy
Gecen sene Senol'la birlikte bir calismamiz olmustu.
Yapmamiz gereken sey suydu: Sirket icinde kullanilan Proxy'i kullanamadan cikan farkli Gatewayli makinalar icin transparan bir Proxy sunucusu kurmak ve bu kisilerin o Proxy Sunucusu uzerinden internete erismelerini saglamak, dolayisiyla internet erisimlerini loglamak.
En basta soylemem lazim : Transparent Proxy islemi HTTPS baglantilar icin calismamakta
Simdi Senol'un blog'unda yer verdigi seklinden biraz alintilar yaparak kendi eklemelerimle yontemi anlatacagim.
Biz bu calismayi yaparken SLES 11 daha yoktu dolayisiyla calismayi SuSE 10.2 x86_64 ile yaptik.
Oncelikle calisma icin kullanacagimiz paketler :
iptables
ebtables
squid
bridge-utils
Ancak bridge-utils paketi SLES Medyalarindan gelmiyor. Dolayisiyla bridge-utils paketini OpenSUSE Repository den indiriyoruz.Cift arayuzlu sunucumuzu bridge olarak kullanarak ebtables ile gelen paketi Layer 2 den Layer 3 e cikarip ,HTTP trafigini sonra da iptables ile Squid'e yonlendirecegiz. Squid ile de loglayip isimizi bitirecegiz.
// BRIDGE Bolumu
ifconfig eth0 0.0.0.0 up
ifconfig eth1 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
// BRIDGE Bolumu
Burada iki interfacei bridge yapiyoruz.Sonra da bridge arayuzune IP veriyoruz.
ifconfig br0 192.168.1.1 netmask 255.255.255.0 up
Sonra da HTTP trafiklerini Layer 3 e tasiyoruz
ebtables -t broute -A BROUTING -p IPv4 --ip-protocol 6 --ip-destination-port 80
-j redirect --redirect-target ACCEPT
Son olarak da Layer 3 e tasidigimiz 80. port trafigini proxy ye yoneldeniriyoruz.
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Gelen trafigi loglayacak Squid konfigurasyonlari asagida verilmis.
Bu kadar :)
Squid 3 versiyonu için /etc/squid.conf dosyası aşağıdaki gibi düzenlenebilir:
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
- acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
acl lan src 192.168.1.0/24
http_access allow localhost
http_access allow lan
- http_access allow all
http_reply_access allow all
icp_access allow all
visible_hostname suseproxy.domainadi.com
always_direct allow all
coredump_dir /var/spool/squid
Kismen Alinti : http://senoldemirkol.wordpress.com/2008/11/17/squidi-transparent-bridge-olarak-calistirmak/
PAM ile kullanici sifre force islemleri
Kisa bir bolumunu alinti yapacagim makaleyi siddetle okumanizi oneririm.
Enforce strong passwords
In this experiment we’ll use the pam_passwdqc module on the password stack to ensure that users choose strong passwords. (Note that this will only make any difference when users set or change their passwords; it won’t winkle out weak passwords that are already set.)
What you need to do: Red Hat already uses the pam_cracklib module to check password strength in the common system-auth file. We simply need to replace the pam_cracklib line with a line that looks something like this:
password requisite pam_passwdqc.so min=12,10,10,8,6 retry=3
Figure 3 above attempts to illustrate the parameters to pam_passwdqc. The test of a password’s strength is based on its length, but you can set different minimum lengths depending on the number of character classes in your password. There are four character classes: lower case, upper case, digits, and other characters. Upper case letters used as the first character and digits used as the last character of a password don’t count.
How to test it: Try changing your password to various strings; in each case count the number of characters and the number of character classes in the string and predict if it should be an acceptable password. There are a few examples in the table belowKaynak: http://tuxtraining.com/2009/04/07/how-pam-works
1.04.2009
Metasploit Kapatildi
ve www.Metasploit.com kapatildi.
(1 Nisan nedeniyle yapmis vicdansizlar :) cok guldum. Ama salakligim da gorunsun istedim....)
SMT nin kullanisli komutlari ve islevleri
KOMUT | İŞLEV |
smt-list-products | SMT servisinin desteklediği Ürün listesini gösterir |
smt-catalogs | Kataloglanabilecek ya da kataloglanmış ürünlerin tümünü gösterir |
smt-catalogs -o | Sadece kataloglanmış ürünlerin tümünü gösterir |
smt-catalogs –e | Güncelleme izlenecek yeni ürün girilmesini sağlar. Katalog numarası ile ilgili katalog, a ile tüm ürünler yansılanır |
smt-catalogs –d | Güncellemesi artık izlenmeyecek ürünlerin listeden çıkarılmasını sağlar. Katalog numarası ile ilgili kataloğun, a ile tüm ürünlerin yansılanmasından vazgeçilir |
smt-list-registrations | SMT sistemine tanıtılmış masaüstü ya da sunucu sistemlerin hepsini listeler. |
smt-delete-registration | SMT sistemine tanıtılmış masaüstü ya da sunucu sistemlerin silinmesini sağlar. Kullanımı smt-delete-registration {Unique ID} şeklindedir. |
smt-report | SMT sistemine bağlanan sunucu ve masaüstlerinin lisans sürelerini, kullanım süresi dolmuş lisansları listeler |
smt-mirror –d | SMT sistemine kaydedilmiş tüm katalog güncellemelerinin indirilmesini sağlar |
Daha fazla bilgi icin:
SLED 11 uzerinde Winbind ile AD
Calistigim sirket icin Linux masaustu sistemleri AD uzerinden kimlik dogrulamasi yapacak sekilde konfigure etmistim. Ancak SLED 10.1 - 10.2 surumlerinde su sekilde bir sorunla karsilasmistim;
Makinayi reboot ettikten sonra, kullanici adi ve sifre giris ekraninda domain'i goremiyorduk. Bunun uzerine Winbind ve Samba servislerini yeniden baslatan scriptler duzenleyerek sorunu cozmeye calismistim, cunku Novell'den Alper de bu konuda yorum yapamamisti.
Ancak gectigimiz hafta SLES/SLED 11 kullanmaya basladim ve bircok yeni ozellik ve hata giderilmesinin yaninda bu sorunun da cozuldugunu gordum.
Su anda sistem "tipki bir Windows makina gibi" AD yi yabancilamadan Domain Membership gorevini ustleniyor ve $ id kullanici adi ciktisi ise gercekten AD kullanicisinin primary ve yan gruplari seklinde gorunuyor.
Redhat ile Hot-Plug CPU
Cok guzel icerikler ve Tipler yollayabiliyorlar.
Ornegin bugun cok begendigim bir trick yollamislar. Paylasiyorum:
Problem
You want to dynamically enable or disable a CPU on a running system.
Solution
Red Hat Enterprise Linux 5 supports the cpu-hotplug mechanism, which allows for CPUs to be dynamically disabled and re-enabled on a system without requiring a system reboot.
In order to disable a CPU core in a running machine, use the file /sys/devices/system/cpu/cpuX/online.
The following command will disable a CPU:
# echo 0 > /sys/devices/system/cpu/cpuX/online
Where X is the ID of the CPU as determined from /proc/cpuinfo.
To re-enable the CPU, run:
# echo 1 > /sys/devices/system/cpu/cpuX/online
Example:
The following output from /proc/cpuinfo shows two processors on a system:
root@xen # grep "processor" /proc/cpuinfo
processor : 0
processor : 1
In order to disable CPU 1, echo "0" to /sys/devices/system/cpu/cpu1/online:
root@xen# echo 0 > /sys/devices/system/cpu/cpu1/online
cpu0/ cpu1/
Check /proc/cpuinfo to see if the cpu is disabled .
root@xen # grep "processor" /proc/cpuinfo
processor : 0
Notice that there is now only one processor shown (CPU 0) instead of two.
Note: There are some architectures in which a CPU cannot be disabled due to a dependency on a certain CPU. In such cases you will notice that the /sys/devices/system/cpu/cpuN/online file is missing.
For further details on CPU hotplugging, see this file:
/usr/share/doc/kernel-doc-2.6.18/Documentation/cpu-hotplug.txt
The documentation files are in the kernel-doc package, which can be installed from RHN.
Alinti: http://kbase.redhat.com/faq/docs/DOC-15523?sc_cid=70160000000HlgQAAS