Inetd Kurulumu
Önceki Ağ Ayarları Sonraki
Inetd Kurulumu
Sisteme TCP/IP tabanlı bir ağ üzerinden dosya göndermek veya sisteme bağlanmak için FTP ve telnet servislerini kurabiliriz. Bu amaçla basit bir FTP sunucu ygulaması in.ftpd ve telnet sunucu uygulaması in.telnetd Linux yüklü sistemden SBC üzerine aktarılmalıdır. FTP ve telnet servisleri, ilgili portları sürekli dinlemeyecektir. Bunun yerine her iki port (ve olursa ileride diğer servislerin de ihtiyaç duyduğu portlar) inetd (Internet Daemon) programı tarafından dinlenecek, porta veri geldiğinde ilgili program arka planda çalıştırılacak, gelen istek programa yönlendirilecektir. inetd, busybox içerisinden çıkmadığından programın çalıştırılabilmesi için Linux yüklü sistemden /usr/sbin/inetd dosyasının da SBC üzerine aktarılması gereklidir. Ayrıca inetd kendi içinde tcp uygulama yönlendiricisi olarak /usr/sbin/tcpd uygulamasınıı kullandığından gene bu dosyanın da aktarılması gerekmektedir.
Burada dikkat edilmesi gereken bir nokta, artık SBC üzerine attığımız uygulamaların çok fazla kütüphaneye bağımlı olmaya başlamalarıdır. Temel işlerden daha özel işlere doğru çıktığımızda uygulamaların kullandığı kütüphanelerin sayısı da artmaktadır. tcpd bunun en basit örneğini oluşturuyor. Linux yüklü bilgisayarımızda aşağıdaki gibi tcpd uygulamasının ihtiyaç duyduğu kütüphanelerin neler olduğunu öğrenebiliriz:
laptop:~/docbook/embedded$ ldd /usr/sbin/tcpd
      libwrap.so.0 => /lib/libwrap.so.0 (0x4001b000)
      libc.so.6 => /lib/libc.so.6 (0x40024000)
      libnsl.so.1 => /lib/libnsl.so.1 (0x40134000)
      /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Son üç kütüphane SBC sistemimizde zaten mevcut iken libwrap.so.0 henüz mevcut değildir. Dolayısıyla tcpd uygulamasının çalışabilmesi için bu dosyanın da dosya sistemi üzerine atılması gereklidir. Aksi takdirde uygulama çalışmayacak ve aşağıdaki gibi bir hata mesajı verecektir:
/usr/sbin/tcpd: error while loading shared libraries: libwrap.so.0: cannot open
shared object file: No such file or directory
Bu aşamadan sonra SBC üzerine atacağımız çalıştırılabilir her uygulama için buradaki işlem adımlarını tekrarlayarak gerekli kütüphanelerle birlikte atmalıyız.
Inetd programı, hangi portları dinleyeceğini ve gerektiğinde çalıştırması gereken uygulamaların neler olduğunu /etc/inetd.conf ayar dosyasından okur. man inetd ve man inetd.conf komutlarıyla program ve ayar dosyasının biçimi hakkında sisteminizden yardım alabilirsiniz. Ftp ve telnet servisleri için gerekli inetd.conf dosyası aşağıdaki gibi olmalıdır:
Örnek 6.1. /etc/inetd.conf
# /etc/inetd.conf dosyamız
ftp  stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
telnet stream tcp nowait root /usr/sbin/tcpd  /usr/sbin/in.telnetd
Bu dosyanın satırlarındaki ilk sözcük servisin ismini göstermektedir. Buradan alınan isim bilgisi (ftp, telnet) /etc/services dosyası içerisinde aranacaktır. Bu durumda /etc/services dosyası Linux yüklü bir sistemden aynen kopyalanmalı veya sadece aşağıdaki kayıtları içerecek şekilde oluşturulmalıdır:
telnet          23/tcp
ftp-data        20/tcp
ftp             21/tcp
inetd, telnet vb. gibi servislerin ilk ayarlanması süreci boyunca syslogd programının arka planda çalışıyor olması çıkabilecek problemlerin çözümünde oldukça faydalı bilgiler sağlayacaktır. syslogd açık olduğu müddetçe, syslog mekanizmasını kullanan programlar hata durumlarını günlüğe yazabileceğinden /var/log dizini altındaki dosyaların incelenmesiyle sorunun nereden kaynaklandığını bulmak çok daha kısa zaman alacaktır. syslogd programını çalıştırmak için komut satırında syslogd yazmanız yeterlidir. Her açılışta çalışması istenirse bu defa /etc/init.d/rcS dosyası içerisinde herhangi bir satıra
syslogd &
kaydı eklenmelidir. Kullanımına artık gerek kalmadığı görüldüğünde rcS içerisinden bu satır kaldırılmalıdır (gömülü bir sistemde bu anlamda günlük tutulması, sistem belirli bir kararlılığa ulaştıktan sonra mutlaka önlenmelidir).
Bu ayarlamalar yapıldıktan sonra rcS içerisinde inetd şeklinde inetd servisinin açılışta çalışabilmesi için gerekli satırın bulunduğundan emin olunmalıdır. Sistemi yeniden başlatmadan inetd programını test edebilmek için komut satırından inetd yazılması yeterlidir. Eğer bir hata oluşursa /var/log/messages dosyası incelenmelidir.
Önceki Üst Ana Başlık Sonraki
Ağ Ayarları Başlangıç FTP Sunucu Kurulumu
Bir Linux Kitaplığı Sayfası