Archive for the 'Endersys Akademi' Category

Solaris 10 ve SMC ile Servis Yönetimi

Solaris’in önceki sürümlerinde bir servisi açıp/kapamak için  diğer çoğu UNIX dağıtımlarında olduğu gibi /etc/init.d altındaki scriptler kullanılırdı. Solaris 10 ile birlikte buna ek olarak Service Management Facility (SMF) adı verilen bir yöntem geldi.

Açık servisleri listelemek için svcs komutu verilir. –a parametresi verilirse aktif/pasif tüm servisler listenir.

# svcs

STATE          STIME    FMRI
legacy_run     16:40:13 lrc:/etc/rcS_d/S50sk98sol
legacy_run     16:41:47 lrc:/etc/rc2_d/S10
lulegacy_run     16:41:55 lrc:/etc/rc2_d/S20sysetup
legacy_run     16:41:56 lrc:/etc/rc2_d/S40llc2
legacy_run     16:41:57 lrc:/etc/rc2_d/S42ncakmod
legacy_run     16:41:58 lrc:/etc/rc2_d/S47pppd
legacy_run     16:41:58 lrc:/etc/rc2_d/S70uucp
legacy_run     16:41:59 lrc:/etc/rc2_d/S72autoinstall
legacy_run     16:42:00 lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run     16:42:01 lrc:/etc/rc2_d/S81dodatadm_udaplt
legacy_run     16:42:01 lrc:/etc/rc2_d/S89PRESERVE
legacy_run     16:42:01 lrc:/etc/rc2_d/S94ncalogd
legacy_run     16:42:02 lrc:/etc/rc2_d/S98deallocate
online         16:37:38 svc:/system/svc/restarter:default
online         16:37:43 svc:/network/pfil:default
online         16:37:44 svc:/network/tnctl:default
online         16:37:45 svc:/network/loopback:default
online         16:37:45 svc:/system/filesystem/root:default
online         16:38:00 svc:/system/scheduler:default
online         16:38:07 svc:/system/boot-archive:default
online         16:38:07 svc:/system/installupdates:default

svcs –p parametresi ile ilgili servisin çalışan prosesleri hakkında bilgi alınabilir.

# svcs -p network/smtp:sendmail

STATE          STIME    FMRI
online         16:41:43 svc:/network/smtp:sendmail
16:41:43      550 sendmail
16:41:43      555 sendmail

# ps -fp 550,555

UID   PID  PPID   C    STIME TTY         TIME CMD
smmsp   550     1   0 16:41:43 ?           0:00 /usr/lib/sendmail -Ac -q15m
root   555     1   0 16:41:44 ?           0:01 /usr/lib/sendmail -bd -q15m

-d parametresi ile ilgili servisin bağımlı olduğu servisleri, -D ile de bu servise bağımlılığı olan servisleri görebilirsiniz.  –l parametresi ile ise belirtilen servisle ilgili detaylı bilgi alınabilir.

# svcs -d network/smtp:sendmail

STATE          STIME    FMRI
online         16:40:10 svc:/system/identity:domain
online         16:40:15 svc:/system/filesystem/local:default
online         16:40:18 svc:/network/service:default
online         16:40:19 svc:/milestone/name-services:default
online         16:41:30 svc:/system/filesystem/autofs:default
online         16:41:39 svc:/system/system-log:default

# svcs -D network/smtp:sendmail

STATE          STIME    FMRI
online         16:42:03 svc:/milestone/multi-user:default

# svcs ssh

STATE          STIME    FMRI
online         16:41:32 svc:/network/ssh:default

# svcs -l ssh

fmri         svc:/network/ssh:default
name         SSH server
enabled      true
state        online
next_state   none
state_time   January  2, 2010  4:41:32 PM EET
logfile      /var/svc/log/network-ssh:default.log
restarter    svc:/system/svc/restarter:default
contract_id  64
dependency   require_all/none svc:/system/filesystem/local (online)
dependency   optional_all/none svc:/system/filesystem/autofs (online)
dependency   require_all/none svc:/network/loopback (online)
dependency   require_all/none svc:/network/physical (online)
dependency   require_all/none svc:/system/cryptosvc (online)
dependency   require_all/none svc:/system/utmp (online)
dependency   require_all/restart file://localhost/etc/ssh/sshd_config (online)

1.1.1      SMF Çalışma mantığı

SMF ile çalıştırılan her bir servis için ayrı bir xml yapılandırma dosyası vardır.  Bu dosyalar /var/svc/manifest/ altında tutulmaktadır. Örneğin ssh servisinin FMRI(Fault Management Resource Identifier) yukarıda svc:/network/ssh olarak gözükmektedir. Bu servisin yapılandırma dosyası /var/svc/manifest/network/ altındaki ssh.xml dosyasıdır.

# more /var/svc/manifest/network/ssh.xml

<?xml version=”1.0″?>

<!DOCTYPE service_bundle SYSTEM “/usr/share/lib/xml/dtd/service_bundle.dtd.1″>

<!–

Copyright 2004 Sun Microsystems, Inc.  All rights reserved.         Use is subject to license terms.
ident   “@(#)ssh.xml    1.7     04/12/09 SMI”

NOTE:  This service manifest is not editable; its contents will
be overwritten by package or patch operations, including
operating system upgrade.  Make customizations in a different
file.
–>
<service_bundle type=’manifest’ name=’SUNWsshdr:ssh’>
<service
name=’network/ssh’
type=’service’
version=’1′>
<create_default_instance enabled=’false’ />
<single_instance />
<dependency name=’fs-local’
grouping=’require_all’
restart_on=’none’
type=’service’>
<service_fmri
value=’svc:/system/filesystem/local’ />
</dependency>

<exec_method
type=’method’
name=’start’
exec=’/lib/svc/method/sshd start’
timeout_seconds=’60′/>

Linux’da kullanıcıları OpenLDAP üzerinden yetkilendirme

Daha önceki yazımız genel olarak LDAP ve OpenLDAP yapılandırması üzerineydi. Bu yazıda ise önceki yazıdaki alt yapıya göre Linux kullanıcılarını OpenLDAP üzerinden yetkilendirme anlatılacaktır.
Bu yazıyı okumadan önce mutlaka önceki yazıyı okumalısınız. Bu örnekte OpenLDAP sunucusu, OpenLDAP üzerinden yetkilendirme yapacak Linux istemci makinasına üzerine kurulmuştur. Dolayısıyla LDAP sunucu olarak 127.0.0.1 kullanılmıştır.

Kullanıcı yetkilendirmek için nss_ldap paketinin kurulması gerekir. Redhat’de bu paket nss_ldap ve pam_ldap modüllerini içerir. nss (Name Service Switch) passwd, group ve host gibi bilgilere nasıl erişileceğini tanımlarken, pam (Pluggable Authentication Modules) ise yetkilendirme işlemini yapar. Aşağıdaki komutla nss_ldap paketi kurulu değilse kurulur.

yum install nss_ldap

/etc/ldap.conf dosyasına aşağıdaki satırlar eklenir.

base dc=example,dc=com
rootbinddn cn=root,dc=deneme,dc=com
uri ldap://127.0.0.1/
ssl no
tls_cacertdir /etc/openldap/cacerts
scope one
pam_filter objectclass=posixaccount
pam_login_attribute uid,
pam_member_attribute gid
pam_password md5
nss_base_passwd         ou=People,dc=deneme,dc=com?one
nss_base_shadow         ou=People,dc=deneme,dc=com?one
nss_base_group          ou=Group,dc=deneme,dc=com?one
scope

LDAP arama seviyeleri (scope)

/etc/ldap.secret dosyasına ldap yönetici parolası yazılır. Dosya izni 600 yapılır.

echo secret > /etc/ldap.secret
chmod 600 /etc/ldap.secret

/etc/nsswitch.conf dosyasındaki aşağıdaki satırlara ldap parametresi eklenir.

passwd:     files
shadow:     files
group:      files

ldap değerlerini ekledikten sonra kayıtlar aşağıdaki gibi gözükmelidir.

passwd:     files ldap
shadow:     files ldap
group:      files ldap
cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.

# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     sufficient    pam_ldap.so
account     required      pam_ldap.so
#account    [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_first_pass
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_mkhomedir.so skel=/etc/skel umask=0022 silent
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so

Mevcut kullanıcı ve parola bilgilerini veritabanına atmak için /usr/share/openldap/migration/ altındaki scriptler kullanılabilir.

cd /usr/share/openldap/migration/
vi migrate_common.ph
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "deneme.com";

# Default base
$DEFAULT_BASE = "dc=deneme,dc=com";
$EXTENDED_SCHEMA = 1;
mkdir -p /root/ldap/migration
./migrate_base.pl >/root/ldap/migration/base.ldif
more /root/ldap/migration/base.ldif
dn: dc=deneme,dc=com
dc: deneme
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: deneme.com

dn: ou=Hosts,dc=deneme,dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit
objectClass: domainRelatedObject
associatedDomain: deneme.com
./migrate_group.pl /etc/group  >/root/ldap/migration/group.ldif
more /root/ldap/migration/group.ldif
dn: cn=root,ou=Group,dc=deneme,dc=com
objectClass: posixGroup
objectClass: top
cn: root
userPassword: {crypt}x
gidNumber: 0
ETC_SHADOW=/etc/shadow
./migrate_passwd.pl /etc/passwd > /root/ldap/migration/passwd.ldif

Son olarak yukarıda oluşturulan ldiff dosyaları ldapadd komutu ile eklenir.

OpenLDAP Kurulum ve Yapılandırması

Endersys Sistem Ekibi olarak bilgi paylaşımına blog platformumuzda devam ediyoruz. Çok yakın zamanda yeni makaleleri bu sayfa görebilirsiniz.
Continue reading ‘OpenLDAP Kurulum ve Yapılandırması’