Perşembe, Aralık 27, 2012

DokuWiki LDAP Authentication

1. conf dizinine local.protected.php dosyası oluşturulur ve aşağıdaki gibi bilgiler eklenir.

 
  $conf['useacl'] = 1;
  $conf['authtype']       = 'ldap';
  $conf['auth']['ldap']['server']      = 'ldap://venus.sea.net';
  $conf['auth']['ldap']['usertree']    = 'ou=People,dc=sea,dc=net';
  $conf['auth']['ldap']['grouptree']   = 'ou=Groups,dc=sea,dc=net';
  $conf['auth']['ldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
  $conf['auth']['ldap']['groupfilter'] = '(&((gidNumber=%{gid})(objectClass=posixGroup))';
  $conf['auth']['ldap']['version']     = 3;
  $conf['auth']['ldap']['debug']      = 1;
  //$conf['auth']['ldap']['starttls']   = 1;


Çarşamba, Aralık 26, 2012

Client LDAP Authentication

NOT1 : CentOS 6 ile beraber LDAP güvenli bağlantısı için sssd servisi kullanılmaya başlanmıştır.
NOT2 : Ayar dosyalarında LDAP sunucu adı olarak sertifika içinde belirtilen CN ifadesi yazılmalıdır. Genellikle bu FQDN dir.


1. İstemci tarafında LDAP yetkilendirme işlemini başlatabilmek için birkaç seçenek mevcuttur;

Komut satırından ayarları yapabilmek için;
# authconfig

Arayüzden yapabilmek için;
# authconfig-gtk
veya
# authconfig-tui

komutları kullanılır.

2. CA (sertifika otoritesinin) sertifikası belirtilen dizine (/etc/openldap/cacerts) yüklenir.

389 Directory Server

1. İlgili paketler kurulur:


# yum install  389-ds-base-1.2.10.2-20.el6_3.i686 389-admin-console-1.1.8-1.el6.noarch 389-ds-base-libs-1.2.10.2-20.el6_3.i686 389-ds-console-1.2.6-1.el6.noarch 389-console-1.1.7-1.el6.noarch 389-adminutil-1.1.15-1.el6.i686 389-admin-1.1.29-1.el6.i686

2. Yönetim konsolu ve temel ayarlar için aşağıdaki komut çalıştırılır. Etkileşimli (soru-cevap) olarak dizin sunucusu bilgileri girilir.
# setup-ds-admin.pl

3. Yönetim konsolu çalıştırılır.
# 389-console &

4. Server Group/Directory Server (INSTANCE) seçeneği işaretlenerek Open komutu işletilir.
5. Tasks/Manage Certificates seçeneği işaretlenir ve CA Certs sekmesinden sertifika otoritesinin sertifikası yüklenir.
6. Server Certs sekmesinden Request seçilerek dizin sunucusu için bir istek (CSR) dosyası oluşturulur. Bu istek dosyası sertifika otoritesine imzalatılarak sertifika oluşturulur. Server Certs sekmesindeki Install seçilerek imzalatılan sunucunun sertifika dosyası yüklenir.
7. Configuration/INSTANCE seçilir. Sağ taraftaki açılan pencerede Encryption sekmesi tıklanır. Buradan güvenli bağlantı için Enable SSL for this server kutusu işaretlenir ve gerekli ayarlar yapılarak değişiklikler kayıt edilir.

8. Değişikliklerin aktif hale gelmesi için dizin sunucusu yeniden başlatılır. Servis başlatılırken daha önce sertifika ve anahtarların saklandığı token şifresi girilir.

# service dirsrv restart INSTANCE
INSTANCE...Enter PIN for Internal (Software) Token:******

9. Kullanıcı ve gruplar oluşturulur. Bu amaçla yönetim konsolu arayüzü kullanılabilir veya daha önce hazırlanmış LDIF dosyaları içe aktarılabilir (Tasks/Import Databases).

Salı, Aralık 18, 2012

OpenLDAP sunucu kurulumu için aşağıdaki paketlerin kurulması gerekmektedir.
# yum install openldap-servers openldap-clients -y

NOT : OpenLDAP 2.4 sürümünden sonra slapd.conf dosyası yerine /etc/openldap/slapd.d dizin yapısı oluşturulmuştur. Eski yapı desteklenmekle beraber sonraki sürümler bu yapıda olacaktır.

Global parametreleri değiştirmek için;

/etc/openldap/slapd.d/cn=config.ldif

dosyası kullanılmaktadır.

1. Slapd parolası belirlenir.

# slappasswd -s 123qwe
{SSHA}p6/AYKlBYwdoXuyG6jM2TNtjkDobt+LU


2. Aşağıdaki dosya düzenlenir:

# vim cn\=config/olcDatabase\=\{2\}bdb.ldif

Dosya içindeki ilgili alanlar güncellenir:
%s/dc=my-domain,dc=com/dc=abc,dc=com/g

Parola bilgisi güncellenir/eklenir.
olcRootPW: {SSHA}p6/AYKlBYwdoXuyG6jM2TNtjkDobt+LU

3. Aşağıdaki dosya düzenlenir:

# vim cn\=config/olcDatabase\=\{1\}monitor.ldif
%s/dc=my-domain,dc=com/dc=abc,dc=com/g

4. Ldap sunucusunun çalışabilmesi için gerekli olan veritabanı aşağıdaki gibi oluşturulur:

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

5. Ayarların test edilmesi:
# slaptest -u
config file testing succeeded


Yönetim Arayüzü

Yönetim arayüzü için phpldapadmin paketi kullanılabilir:

# yum install phpldapadmin -y

1. Erişim ayarları:

# vim /etc/httpd/conf.d/phpldapadmin.conf

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs


  Order Deny,Allow
  Deny from all
  Allow from all
  Allow from ::1


2. Yönetim arayüzüne erişmek için web tarayıcısına;

http://SUNUCU_IP/ldapadmin




Kaynaklar:
http://blog.christophersmart.com/articles/openldap-how-to-fedora/
http://www.server-world.info/en/note?os=CentOS_6&p=ldap&f=4
https://www.nodeofcrash.com/?p=481



Cumartesi, Aralık 15, 2012

OpenSSL İle Sertifika Zinciri Oluşturmak

OpenSSL İle Sertifika Zinciri Oluşturmak
Dizin yapısı oluşturulur;
# mkdir /path_to_ssldir/ssldir
# cd /path_to_ssldir/ssldir
# mkdir newcers keys crls CA
# touch index.txt
# echo ‘100’ > crls/crlnumber
# echo ‘1000’ > serial
# cd keys

Sertifika zincirinin kök anahtarı oluşturulur. Anahtar (CA.key) BASE64 (PEM) formatındadır ve 2048 bit uzunluğundadır.
# openssl genrsa -out CA.key 2048

Kök sertifika oluşturulması:
# cd ..
# openssl req -new -x509 -days 3650 -key keys/CA.key -config openssl.cnf -extensions v3_ca -out certs/ca.pem

-new                     : Yeni bir imzalama talebi oluşturur.
-x509                    : İmzalama isteği yerine kendi kendine imzalayan bir sertifika üretir.
-days                    : Sertifikanın süresini belirler
-key                      : Daha önceden üretilmiş özel anahtarın yolunu tanımlar.
-config                 : Daha önceden ayarların tanımlandığı dosya yolunu tanımlar.
-extensions       : Ayar dosyasında (openssl.cnf) v3_ca olarak tanımlanan bölümdeki değerleri kullanmasını sağlar.
-out                       : Üretilen sertifikanın nereye yazılacağını tanımlar.

Kullanıcı sertifika talebinin oluşturulması:
# openssl req -new -nodes -newkey rsa:2048 -keyout keys/key1.pem -config openssl.cnf -out user1.csr

-new                     : Yeni bir imzalama talebi oluşturur.
-nodes                 : Oluşturulacak anahtarın şifrelenmesini engeller.
-newkey             : Anahtar çeşidini ve uzunluğunu tanımlar. Anahtar daha önce oluşturulduysa (–key) parametresi ile bulunduğu yer gösterilebilir.
-keyout                               : Oluşacak anahtarın nerede saklanacağı belirtilir.
-config                 : Daha önceden ayarların tanımlandığı dosya yolunu belirtilir.
-out                       : Üretilen sertifika talebinin nereye yazılacağını belirtilir.

Kullanıcı sertifika talebinin imzalanması:
# openssl ca -in user1.csr -config openssl.cnf

Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 4097 (0x1001)
        Validity
            Not Before: Dec 15 00:06:57 2012 GMT
            Not After : Dec 15 00:06:57 2013 GMT
        Subject:
            countryName               = TR
            stateOrProvinceName       = Gebze
            organizationName          = TUBITAK
            organizationalUnitName    = SEA.NET
            commonName                = test01.ev.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Subject Key Identifier:
                F2:0E:93:7C:09:6F:EB:90:4F:07:CE:BE:F7:1D:64:B3:FB:3E:F6:8E
            X509v3 Authority Key Identifier:
                keyid:50:27:F7:40:E8:15:5F:29:C2:E2:1D:00:76:C0:BD:9A:62:05:E1:E2

            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
Certificate is to be certified until Dec 15 00:06:57 2013 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 4097 (0x1001)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=TR, ST=Gebze, L=Kocaeli, O=TUBITAK, OU=SEA.NET, CN=SEA.NET Root Certificate
        Validity
            Not Before: Dec 15 00:06:57 2012 GMT
            Not After : Dec 15 00:06:57 2013 GMT
        Subject: C=TR, ST=Gebze, O=TUBITAK, OU=SEA.NET, CN=test01.ev.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:cb:97:ef:47:99:7c:e6:55:aa:36:68:79:7d:ef:
                    5d:d4:b0:91:00:3c:57:12:7f:46:d5:98:b5:be:b2:
                    9b:0d:9d:cf:50:d1:a7:19:fa:b6:ab:18:c0:14:56:
                    c0:6f:e3:c2:a9:48:8c:3a:70:14:99:cd:a3:e8:98:
                    05:16:da:77:70:bc:65:6a:fe:a6:1b:cd:d3:9a:2a:
                    d0:af:dc:11:ba:5f:23:73:2f:5f:2b:99:dc:3f:46:
                    0f:7f:d3:60:e4:27:20:f2:bb:89:96:18:29:69:42:
                    78:d0:ad:76:88:65:81:42:57:89:11:39:8b:08:8f:
                    d0:18:66:02:9a:e4:f5:91:32:98:ce:c5:7d:a0:c7:
                    cb:3a:56:00:43:5d:f1:ff:57:49:27:29:30:c5:88:
                    53:84:1d:41:ef:a2:4f:88:f7:46:39:59:80:43:48:
                    7c:54:d5:78:ae:aa:52:d1:5c:a1:26:67:94:43:99:
                    7c:fb:47:12:c5:c6:f0:8f:c5:b4:2c:bd:2c:66:bc:
                    91:2c:94:fb:78:ee:25:b5:2c:fc:53:7a:9e:1a:8f:
                    2f:04:cc:a6:fc:33:fd:dc:da:10:09:49:14:33:0a:
                    8f:29:82:aa:a5:3a:16:cc:00:c2:66:6f:ed:fc:5d:
                    53:6f:12:43:68:0c:aa:52:bb:c8:90:73:13:1a:52:
                    4b:8d
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Subject Key Identifier:
                F2:0E:93:7C:09:6F:EB:90:4F:07:CE:BE:F7:1D:64:B3:FB:3E:F6:8E
            X509v3 Authority Key Identifier:
                keyid:50:27:F7:40:E8:15:5F:29:C2:E2:1D:00:76:C0:BD:9A:62:05:E1:E2

            X509v3 Key Usage:
                Digital Signature, Non Repudiation, Key Encipherment
    Signature Algorithm: sha1WithRSAEncryption
        71:3f:09:67:ee:10:3a:68:f7:5e:af:c8:5f:f8:68:e7:ee:12:
        79:36:38:71:ab:de:4e:57:bd:14:c9:bd:4d:1b:1d:53:ca:f5:
        0a:4e:16:a6:32:3d:55:50:a0:4e:20:3e:4a:1b:4a:48:ac:bd:
        b2:74:67:1a:f5:2f:97:3d:52:b2:d7:4f:1d:45:61:4d:84:56:
        c7:13:0a:8f:cb:14:57:77:6c:81:da:99:b2:fa:6b:41:e9:75:
        7f:7e:b7:31:1a:e0:f6:a7:06:f6:de:6a:42:d8:bb:5f:ec:59:
        f0:3e:91:5b:52:cc:64:ec:57:27:ba:fc:5e:7d:98:39:08:ad:
        c6:be:c4:bd:f3:86:1a:80:fa:3e:07:c1:59:9a:a8:53:5b:d2:
        f6:b0:d5:8f:38:f4:3a:e9:83:b1:05:59:b4:23:3a:ec:ac:45:
        24:b9:ef:13:b1:6b:41:91:85:49:b9:d5:1a:9c:d1:3e:84:88:
        c7:fb:a5:c8:51:08:64:81:9c:ac:b5:26:f6:62:17:16:f1:a8:
        bb:0c:46:97:48:b8:75:7e:d0:e8:91:75:c7:8e:02:60:e2:c3:
        e6:c5:74:67:29:53:38:91:fe:f8:aa:ba:01:c2:6b:db:d6:81:
        52:60:33:5f:c4:70:f8:be:20:23:a2:80:a6:f4:85:cd:0d:49:
        2a:9e:55:44
-----BEGIN CERTIFICATE-----
MIIDpTCCAo2gAwIBAgICEAEwDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMCVFIx
DjAMBgNVBAgMBUdlYnplMRAwDgYDVQQHDAdLb2NhZWxpMRAwDgYDVQQKDAdUVUJJ
VEFLMRAwDgYDVQQLDAdTRUEuTkVUMSEwHwYDVQQDDBhTRUEuTkVUIFJvb3QgQ2Vy
dGlmaWNhdGUwHhcNMTIxMjE1MDAwNjU3WhcNMTMxMjE1MDAwNjU3WjBZMQswCQYD
VQQGEwJUUjEOMAwGA1UECAwFR2ViemUxEDAOBgNVBAoMB1RVQklUQUsxEDAOBgNV
BAsMB1NFQS5ORVQxFjAUBgNVBAMMDXRlc3QwMS5ldi5jb20wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDLl+9HmXzmVao2aHl9713UsJEAPFcSf0bVmLW+
spsNnc9Q0acZ+rarGMAUVsBv48KpSIw6cBSZzaPomAUW2ndwvGVq/qYbzdOaKtCv
3BG6XyNzL18rmdw/Rg9/02DkJyDyu4mWGClpQnjQrXaIZYFCV4kROYsIj9AYZgKa
5PWRMpjOxX2gx8s6VgBDXfH/V0knKTDFiFOEHUHvok+I90Y5WYBDSHxU1XiuqlLR
XKEmZ5RDmXz7RxLFxvCPxbQsvSxmvJEslPt47iW1LPxTep4ajy8EzKb8M/3c2hAJ
SRQzCo8pgqqlOhbMAMJmb+38XVNvEkNoDKpSu8iQcxMaUkuNAgMBAAGjWjBYMAkG
A1UdEwQCMAAwHQYDVR0OBBYEFPIOk3wJb+uQTwfOvvcdZLP7PvaOMB8GA1UdIwQY
MBaAFFAn90DoFV8pwuIdAHbAvZpiBeHiMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0B
AQUFAAOCAQEAcT8JZ+4QOmj3Xq/IX/ho5+4SeTY4caveTle9FMm9TRsdU8r1Ck4W
pjI9VVCgTiA+ShtKSKy9snRnGvUvlz1SstdPHUVhTYRWxxMKj8sUV3dsgdqZsvpr
Qel1f363MRrg9qcG9t5qQti7X+xZ8D6RW1LMZOxXJ7r8Xn2YOQitxr7EvfOGGoD6
PgfBWZqoU1vS9rDVjzj0OumDsQVZtCM67KxFJLnvE7FrQZGFSbnVGpzRPoSIx/ul
yFEIZIGcrLUm9mIXFvGouwxGl0i4dX7Q6JF1x44CYOLD5sV0ZylTOJH++Kq6AcJr
29aBUmAzX8Rw+L4gI6KApvSFzQ1JKp5VRA==
-----END CERTIFICATE-----
Data Base Updated

Sertifikanın iptal edilmesi:
# openssl ca -revoke newcerts/1000.pem

Sertifika İptal Listesinin (SİL) oluşturulması:
# openssl ca -config openssl.cnf -gencrl -out crls/ca.crl


NOT : Ayar dosyası (openssl.cnf) içinde;
unique_subject = no  
parametresi aktif hale getirilmediyse, aynı CN’ye ait ikinci bir sertifika üretilemez.


Perşembe, Aralık 06, 2012

Disk Klonlama Sonrası Ağ Ayarları (CentOS)


Raid 1 yapısındaki bir diski diğer bir sunucuya taktıktan ve makine başlatıldıktan sonra ağ ayarlarında bazı değişiklikler yapılması gerekiyor. Bunlar aşağıdak gibidir:

1. Disk bir önceki sistemin kopyası olacağı için ağ ayarları (IP adresi, MAC adresi vb) aynı kalmış olacaktır. Bunları güncellemek gerekir.

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

eth0 arayüzü için gerekli güncellemeler gerçekleştirilir.

2. /etc/udev/rules.d/70-persistent-net.rules dosyasında olan ve bir önceki sunucuya ait kayıtlar kaldırılmalıdır.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC_ADDRESS", "ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

...
# ethX ifadesindeki X yerine 0,1 gibi ağ arayüzüne uygun değer konulmalıdır.
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC_ADDRESS", "ATTR{type}=="1", KERNEL=="eth*", NAME="ethX"

Pazartesi, Aralık 03, 2012

FIND Komutu

FIND Komutu

Belirtilen dizinde ve altdizinlerde 10 günden eski dosyaları siler.
find /dosya/yolu* -mtime +10 -exec rm -f {} \;

Belirtilen seviyedeki alt dizine kadar (maxdepth 0) ve 10 günden eski dosyaları siler.
find /dosya/yolu* -mtime +10 -maxdepth 0 -exec rm -f {} \;

10k boyutundan küçük dosyaları siler.
 find /dosya/yolu -size -10k | xargs rm -f 

500k dan büyük, 1M den küçük olan dosyaları bulur ve silinmesi için sorar.
 find /dosya/yolu -type f -size +500k -name -size -1M  | xargs rm -i

Pazar, Ekim 14, 2012

CentOS Ganglia Kurulumu

1. CentOS EPEL ve RPMFUSION repoları eklenir.

2. YUM ile ilgili paketler kurulur.
#  yum install ganglia ganglia-gmetad ganglia-gmond ganglia-web

3. SELINUX kapatılır.

# sed -i.bak -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

veya

# sed -e 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux > /etc/sysconfig/selinux.tmp && mv /etc/sysconfig/selinux.tmp /etc/sysconfig/selinux

Yukarıdaki değişikliği yaptıktan sonra makineyi kapatıp açmamak için

# echo 0 > /selinux/enforce

 komutu işletilebilir.



HATALAR
 
1.gmond servisi çalıştırıldığında aşağıdaki gibi bir hata alınıyorsa:
 
udp_recv_channel mcast_join=239.2.11.71 mcast_if=NULL port=8649 bind=
239.2.11.71
Error creating multicast server mcast_join=239.2.11.71 port=8649
mcast_if=NULL family='inet4'. Exiting.

Yönlendirme tablosuna aşağıdaki yönlendirme eklenir. 
 
# route add -host 239.2.11.71 dev ethX