Friday, April 27, 2007

Ulak6Net Görev Gücü toplantısı

6. Linux ve Özgür Yazılım Şenliğinde Ulak6Net Görev Gücü toplantısı yapılacak. Şenliğin programına bu adresten ulaşılabilir.

Friday, April 13, 2007

www sunucusu

Apache-2.2.3'ün ipv6'ya hazır hale getirilmesi oldukça kolay. Önce /etc/apache2/ports.conf dosyasında gerekli düzenlemeleri yapalım.

 Listen 192.170.2.1:80
Listen [2001:db8::a00:20ff:fea7:ccea]:80
Şimdi de Virtual Host tanımlamasını yaptığımız apache2.conf dosyasında ipv6'dan ulaşılmasını istediğimiz alan için gerekli yapılandırmayı yapalım:

<VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
DocumentRoot "/var/www/htdocs/www6"
ServerName www6.domain.com
<Directory "/var/www/htdocs/www6">
allow from all
Options +Indexes
</Directory>
</VirtualHost>


Hepsi bu kadar. Dikkat edilecek tek şey, ipv6 adresini her iki durumda da [ ] arasında yazmak. Apache'yi yeniden başlattığınızda apache'nin ipv6 taleplerine de cevap verdiğini göreceksiniz:

~ $ nmap -6 www6.domain.com

Starting Nmap 4.20 ( http://insecure.org ) at 2007-04-13 21:15 EEST
Interesting ports on 2001:db8::a00:20ff:fea7:ccea:
Not shown: 1696 closed ports
PORT STATE SERVICE
80/tcp open http

Nmap finished: 1 IP address (1 host up) scanned in 1.313 seconds

Wednesday, April 11, 2007

ipv6calc

Linux IPv6 NASIL belgesinin yazarı olan Peter Bieringer'in yazdığı ipv6calc programının PiSi paketine buradan ulaşılabilir. Paketi hazırlayan öğrencilerimden Cem Sönmez.

Monday, April 2, 2007

ftp sunucusu

vsftpd'in ipv6 desteğinin sağlanması için yapılandırma dosyası olan vsftpd.conf dosyasına
listen_ipv6=yes

yeterli olduğu söyleniyor. Peki bu satırı ekleyince vsftpd ipv6 mı çalışıyor yoksa hem v4 hem de v6 mı çalışıyor? Bunun cevabı ikisi de olmuyor :(

Sadece ipv6 konuşabilen bir yapılandırma dosyası basitçe şöyle olabilir:
background=YES
listen_ipv6=YES
listen_address6=2001:A8:9150:2::21

anonymous_enable=YES
local_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd-v6.log
nopriv_user=ftpuser
ftp_username=ftpuser
ftpd_banner="IPv6 FTP SUNUCUSU"

Eğer sunucunuza sadece ipv6 ile erişilmesini istemiyorsanız, ipv4 isteklerine de cevap versin diyorsanız ikinci bir yapılandırma dosyası ( ncftpd-v4.conf olabilir) oluşturup onu da benzer şekilde:
background=YES
listen=YES
listen_address=192.168.1.1

anonymous_enable=YES
local_enable=YES
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd-v4.log
nopriv_user=ftpuser
ftp_username=ftpuser
ftpd_banner="IPv4 FTP SUNUCUSU"

şeklinde hazırlayıp, iki farklı yapılandırma ile çalışan iki süreci başlatmak gerekiyor:
#/usr/sbin/vsftpd /etc/vsftpd.conf &
#/usr/sbin/vsftpd /etc/vsftpd-v4.conf &

Herşey yolunda gittiyse aşağıdaki komutun çıktısında bunu görmelisiniz:
# netstat -lnptu | grep ftp
tcp 0 0 192.168.1.1:21 0.0.0.0:* LISTEN 21465/vsftpd
tcp6 0 0 2001:A8:9150:2::21 :::* LISTEN 21459/vsftpd

Son olarak başka bir bilgisayardan nmap çalıştırıldığında çıktısı aşağıdaki gibi olmalı:
ns01:~# nmap -6 host1.domain.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-04-02 23:31 EEST
Interesting ports on 2001:A8:9150:2::21:
Not shown: 1677 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http

Nmap finished: 1 IP address (1 host up) scanned in 0.306 seconds

Artık ftpuser kullanıcısın ev dizini neresiyse orasını anonim ftp için kullanmaya başlayabilirsiniz. Bu dizinin ftpuser kullanıcısı tarafından yazılabilir olmaması gerektiğini hatırlatmakta fayda var.

Sunday, April 1, 2007

ssh sunucusu

Hiç birşey yapmaya gerek yok. Bilgisayara ipv6 adresi verildiği zaman ssh sunucusu da ipv6'dan gelen isteklere cevap vermeye başlıyor.

Sunday, March 25, 2007

alan adı sunucusu

Yerel ağınızda bilgisayarların ipv6 adresi almasını sağladıktan sonra ilk yapılması gereken şey alan adı sunucunuzu makina adlarını ipv6 adreslerine çözümleyecek şekilde yapılandırmak olmalı. Eğer DNS sunucusu olarak bind kullanacaksanız en azından 9.1.3 sürümünü ya da daha iyisi son sürümünü kullamanız öneriliyor. Burada çalışan bir dns sunucunuz olduğunu kabul edip onu nasıl yapılandıracağınızı anlatmaya çalışacağım. Linux IPv6 NASIL belgesinde ilgili alanı okuduğumuzda bunun da zor olmadığını görüyoruz.

Önce sadece ipv4 ile çalışan sunucumuzun durumunu kontrol edelim:
[root@ns01 root]# netstat -lnptu |grep "named"
tcp 0 0 192.168.1.2:53 0.0.0.0:* LISTEN 24427/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 24427/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 24427/named
udp 576 0 192.168.1.2:53 0.0.0.0:* 24427/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 24427/named
udp 3456 0 0.0.0.0:50887 0.0.0.0:* 24427/named
udp 0 0 :::50888 :::* 24427/named
Şimdi /etc/named.conf dosyasının options kısmına aşağıdaki satırı ekleyelim.
options {
# sure other options here, too
listen-on-v6 { any; };
};
Burada any kullanmyıp Erişim Kontrol Listesi (ACL) hazırlamak yani sunucunuzu sadece belli ip'lerden gelen sorgulara yanıt verecek şekilde yapılandırmak mümkün ama eğer kendiniz de isimlendirme yapmak istiyorsanız herkese cevap vermeniz gerektiğinden bunu yapmayacağız. Yukarıdaki belgede nasıl yapılacağı anlatılıyor ve oldukça kolay. Gerekli değişikliği yaptıktan sonra bind (named) yeniden başlatıldığında artık ipv6 adresleriyle makina adlarını çözümleyebiliyor olmalı. Az önce not ettiğimiz şeye tekrar bakalım:
[root@ns01 root]# netstat -lnptu |grep "named"
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 24514/named
tcp 0 0 :::53 :::* LISTEN 24514/named
udp 0 0 192.168.1.2:53 0.0.0.0:* 24514/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 24514/named
udp 0 0 0.0.0.0:50892 0.0.0.0:* 24514/named
udp 0 0 :::53 :::* 24514/named
udp 0 0 :::50893 :::* 24514/named
Şimdi www.deepspace6.net adresini çözümlemeyi deneyelim:
[root@ns01 ~]# ping6 www.deepspace6.net
PING www.deepspace6.net(2001:760:2e01:1::dead:beef) 56 data bytes
64 bytes from 2001:760:2e01:1::dead:beef: icmp_seq=0 ttl=55 time=84.0 ms
Görüyorsunuz ping yerine ping6 komutunu kullanıyoruz. Bu küçük değişiklik alışık olduğumuz diğer komutlarda da karşımıza çıkacak, yeri geldikçe bunlardan da bahsedeceğim (Hatta şimdi birinden bahsedeyim: traceroute6. Bu komut benim gördüğüm kadarıyla Red Hat'de bulunmasına rağmen debian'da yok. Onun yerine ndisc6 paketinden çıkan tracert6 var. Aynı işi yapıyorlar ama isimleri farklı). Son olarak kendi alanımızdaki bir makinaya vereceğimiz isme karşılık ipv6 adresini gösterelim. Bunun için ilgili zone dosyasına aşağıdaki gibi bir satır eklemek gerekiyor:

host1 IN AAAA 3FFE:800::2A8:79FF:FE32:1982
IPv4'den farklı olarak A yerine AAAA kullanılıyor, o kadar. Detaylı bilgi için RFC 1886'ya bakılabilir.

Sunucu servisini değişikliklerden sonra yeniden başlatmak gerektiğini hatırlatmakta fayda var.

Artık yerel ağınızdaki kullanıcılar ipv6 kullanarak internet erişimlerini sağlayabilir durumdalar. Sırada kullanıcılara adres atama, rota ekleme ve dns adresi girme gibi işleri bırakmamak için gerekli olan dhcp sunucusunun yapılandırılması olacak. Daha sonra kendi servislerimizi (web, ftp, mail, proxy vs.) ipv6 ile haberleşebilir hale getireceğiz.

Friday, March 23, 2007

adresleme ve rota ekleme

Linux'a ipv6 adresi eklemek için aşağıdaki komutu girmek yeterli:
#ifconfig eth0 inet6 add 2001:A8:9150:2::5/64
Bu adresi elle atadığınızda ifconfig çıktısında eth0 için üç adet ipv6 adresi atandığını göreceksiniz:
inet6 addr: 2001:a8:9150:2::5 Scope:Global
inet6 addr: 2001:a8:9150:2:204:76ff:fede:4e0d/64 Scope:Global
inet6 addr: fe80::204:76ff:fede:4e0d/64 Scope:Link
İkinci ipv6 adresinin sizin yazdığınız adresin ethernet kartınızın MAC adresiyle birlikte türetilmiş bir hali olduğunu hemen farkedeceksiniz. IPv6 adresleri bir ethernet kartına birden fazla verilebildiğinden bir sorun yok, her iki adresi de kullanabilirsiniz. IPv6 adres türleri için Türkçe veya İngilizce belgelere bakabilirsiniz.

Rota eklemek daha basit:

#route -A inet6 add 2001::/34 gw 2001:A8:9150:2::1
Elbette ipv6 adreslerini kendi yönlendiriciniz ile değiştirmeniz lazım. Her şey yolunda gittiğinde artık ping6 ve traceroute6 komutlarını kullanarak durumunuzu denetleyebilirsiniz. Bunların kullanımı ping ve traceroute ile aynı.