Linux

Centos 7 Nginx İle BindDNS, Host ve FTP Kurulumu

Centos 7 sunucumuza Nginx üzerinden PHP, MySQL Server ve PhpMyAdmin kurulumundan önceki makalelerde değindik. Şimdi sıra son makalemize geldi. Bu makalede de  domain adreslerimizi sunucumuza yönlendirebilmemiz için BindDNS, Her domaini farklı dizinlerden buluşturmak için virtual host oluşturacağız. Hostumuza dosya yükleyebilmek için de VsFTPD kuracağız.




İlk önce domainleri sunucumuza yönlendirmek için BindDNS kurulumuna başlayalım.

[root@zulfumehmet ~]# yum -y install bind bind-utils

Kurulum bitiğinde named.conf dosyamızı düzenleyelim

[root@zulfumehmet ~]# nano /etc/named.conf

Aşağıdaki gibi düzenleyelim

options {
        listen-on port 53 { 127.0.0.1; 138.68.76.200; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     {any; };
        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion no;

Yukardaki düzenlemede sunucumuzun ip adresini binde tanımladık, izinli sorguları düzenledik ve yenilemeyi kapattık.

Elbette domain panelimizden sunucumuz için name server oluşturup domain adreslerimizi oluşturduğumuz name serverlere yönlendirmeyi unutmayınız. Natro üzerinde kayıtlı olan bektas.xyz domain adresim ile hem name server oluşturalım

NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ adında iki adet ns oluşturduk. Bunların ip adreslerini 138.68.76.200 olarak tanımladık.

Domain adresimizi de NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ  name serverlerine yönlendirdik.

Zulfumehmet.tk domain adresimizi de NS1.BEKTAS.XYZ ve NS2.BEKTAS.XYZ name serverlere yöneldirdik.

Domain adreslerimizi sunucuya tanımlamak için  named.conf dosyasını düzenleyelim.

[root@zulfumehmet ~]# nano /etc/named.conf

Domain adreslerimiz için gerekli zone dosyalarını tanımlayalım. Örnek amaçlı 2 adet domain tanımlayacağım. Biri zulfumehmet.tk diğer domain adresimiz bektas.xyz.

named.conf dosyasının en altına aşağıdaki komutları ekleyelim.

zone "bektas.xyz" IN {
        type master;
        file "bektas.xyz.zone";
        allow-update { none; };
};

zone "zulfumehmet.tk" IN {
        type master;
        file "zulfumehmet.tk.zone";
        allow-update { none; };
};

bektas.xyz.zone ve zulfumehmet.tk.zone adında iki adet dosya tanımladık. Siz dosyalara istediğiniz adı verebilirsiniz; ama hangi domaine hangi dosyayı  tanımladıysanız ona göre düzenleyiniz. Dosyaları karıştırmayınız. Yaptığımız değişiklikleri kaydedip çıkalım ve tanımlamış olduğumuz zone dosyalarını oluşturalım.

[root@zulfumehmet ~]# nano /var/named/bektas.xyz.zone

Önce bektas.xyz domain adresimizin zone dosyasını oluşturalım. Yandex mail kullanacağım için mx ve spf kayıtlarını yandexe göre giriyorum.

$TTL 86400
@       IN      SOA             ns1.bektas.xyz. info@bektas.xyz. (
                2014020801      ;Serial
                3600            ;Refresh
                1800            ;Retry
                604800          ;Expire
                86400           ;Minimum TTL
)

; NS sunucularini belirtiyoruz:

                        IN      NS              ns1.bektas.xyz.
                        IN      NS              ns2.bektas.xyz.

; NS’lere ait kayitlar.
ns1             IN      A                       138.68.76.200
ns2             IN      A                       138.68.76.200

; ve diger tum kayitlar.

bektas.xyz.     IN      A                       138.68.76.200
@               IN      A                       138.68.76.200
www             IN      CNAME                   @
bektas.xyz.     IN      MX              10      mx.yandex.net.
bektas.xyz.     IN      TXT                     v=spf1 redirect=_spf.yandex.net

Bektaş domainimizi tanımladık şimdide zulfumehmet domainimizi tanımlayalım

[root@zulfumehmet named]# nano /var/named/zulfumehmet.tk.zone

$TTL 86400
@       IN      SOA             ns1.bektas.xyz. info@zulfumehmet.tk. (
                2014020801      ;Serial
                3600            ;Refresh
                1800            ;Retry
                604800          ;Expire
                86400           ;Minimum TTL
)

; NS sunucularini belirtiyoruz:

                        IN      NS              ns1.bektas.xyz.
                        IN      NS              ns2.bektas.xyz.

; NS’lere ait kayitlar.
ns1             IN      A                       138.68.76.200
ns2             IN      A                       138.68.76.200

; ve diger tum kayitlar.

zulfumehmet.tk. IN      A                       138.68.76.200
@               IN      A                       138.68.76.200
www             IN      CNAME                   @
zulfumehmet.tk. IN      MX              10      mx.yandex.net.
zulfumehmet.tk. IN      TXT                     v=spf1 redirect=_spf.yandex.net

Burda dikkat etmeniz gereken parametreler arasını TAB tuşu ile boşluklar bırakmanız yoksa bindDNS çalıştırınca hata alırsınız aradaki boşlukları siliniz ve TAB tuşu ile yukarda ekran alıntıları gibi düzenleyiniz. BindDNS yapımızı oluşturduk. Domainleri tanımladık. Domainlerimizi domain aldığımız yerden (Ben Natro ve dot.tk firmalarını kullanıyorum oradan name serverleri yönlendirdim) sunucumuz için oluşturduğumuz name serverlere yönlendirdik. Şimdi BindDNS çalıştıralım ve reboot durumlarından sonra otomatik açılmasını sağlayalım ve en sonda bindDNS restart atalım her duruma karşı.

[root@zulfumehmet named]# systemctl start named
[root@zulfumehmet named]# systemctl enable named
[root@zulfumehmet named]# systemctl restart named

Herhangi bir hata almadıysanız yönlendirmeleri büyük ihtimal doğru yapmışsınız demektir. Domainlerimizi kontrol edelim yönlenmiş mi? İlk önce bektas.xyz domainimize bakalım.

Bektas.xyz domain adresimiz yönlenmiş. Şimdi zulfumehmet.tk domain adresmize bakalım.

Zulfumehmet.tk adresimiz de yönlenmiş durumda. Yönlendirmeler bazen uzun sürebilir. Eğer BindDNS yapılarını oluşturup çalıştırdıktan sonra herhangi bir hata almadıysanız belli bir süre sonra yönlendirmeler sağlanacaktır. Kimi zaman 24 saat bulabiliyor DNS’lerin tam oturması. DNS kayıtlarınızı kontrol etmek için https://www.whatsmydns.net adresini kullanabilirsiniz.

Şimdi domain adreslerimiz için host oluşturalım. İlk önce domainlerimiz için dizin belirleyelim hemen ardından nginx kullanıcısına tanıttıktan sonra yazma izinlerini düzenleyelim.

[root@zulfumehmet /]# sudo mkdir -p /var/www/bektas.xyz/html
[root@zulfumehmet /]# sudo mkdir -p /var/www/zulfumehmet.tk/html
[root@zulfumehmet /]# chown -R nginx:nginx /var/www/bektas.xyz/html
[root@zulfumehmet /]# chown -R nginx:nginx /var/www/zulfumehmet.tk/html
[root@zulfumehmet /]# chmod -R 755 /var/www

Oluşturduğumuz dizinlere index dosyası oluşturalım ve içine domain adresinin adını yazalım. Önce bektaş domaini içil oluşturalım

[root@zulfumehmet /]# nano /var/www/bektas.xyz/html/index.html

bektas.xyz yazarak kaydedip çıkalım. Ardından zulfumehmet.tk domaini için

[root@zulfumehmet /]# nano /var/www/zulfumehmet.tk/html/index.html

zulfumehmet.tk olarak kaydedelim. Şimdi nginx dizinin altına iki adet blok dizin oluşturalım

[root@zulfumehmet"]# mkdir /etc/nginx/sites-available
[root@zulfumehmet /]# mkdir /etc/nginx/sites-enabled

Şimdi oluşturduğumuz blok dizini nginx.conf dosyasına tanıtalım

[root@zulfumehmet /]# nano /etc/nginx/nginx.conf

http tagın içine ekleyelim.

    include /etc/nginx/sites-enabled/*.conf;
    server_names_hash_bucket_size 64;

Önce default için bir conf dosyası hazırlayalım.

[root@zulfumehmet /]# nano /etc/nginx/conf.d/default.conf

Aşağıdaki komutları ekleyelim.

server {
    listen  80;
    server_name localhost;

    location / {
        root  /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
        root  /usr/share/nginx/html;
    }
}

Domainlerimiz için açtığımız bloklara dosyalarımızı oluşturalım

[root@zulfumehmet /]# nano /etc/nginx/sites-available/bektas.xyz.conf

Aşağıdaki komutları ekleyelim. Php dosyalarımızın sorunsuz çalışması için php-fpm parametrelerini de tanımlıyorum.

server {
        server_name bektas.xyz www.bektas.xyz;
        listen 80;
        root /var/www/bektas.xyz/html;
        access_log /var/www/bektas.xyz/bektas_log.log;
        error_log /var/www/bektas.xyz/bektas_error.log;
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
                access_log off;
                expires max;
        }
        location ~ /\.ht {
                deny all;
        }
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO $fastcgi_path_info;
            include        fastcgi_params;
}
}

Aynı şekilde zulfumehmet.tk için ayaplım

[root@zulfumehmet /]# nano /etc/nginx/sites-available/zulfumehmet.tk.conf

Aşağıdaki komutları ekleyelim

server {
        server_name zulfumehmet.tk www.zulfumehmet.tk;
        listen 80;
        root /var/www/zulfumehmet.tk/html;
        access_log /var/www/zulfumehmet.tk/zulfumehmet_log.log;
        error_log /var/www/zulfumehmet.tk/zulfumehmet_error.log;
        index index.php index.html index.htm;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {
                access_log off;
                expires max;
        }
        location ~ /\.ht {
                deny all;
        }
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO $fastcgi_path_info;
            include        fastcgi_params;
}
}

Virtual Host dosyalarımızı oluşturduk. Dosyalarımızı sites-enable bloğuna da tanımladıktan sonra /etc/hosts dosyasına domainlerimizi ekleyelim

[root@zulfumehmet /]# ln -s /etc/nginx/sites-available/bektas.xyz.conf /etc/nginx/sites-enabled/bektas.xyz.conf
[root@zulfumehmet /]# ln -s /etc/nginx/sites-available/zulfumehmet.tk.conf /etc/nginx/sites-enabled/zulfumehmet.tk.conf 
[root@zulfumehmet /]# nano /etc/hosts






Ekran alıntısındaki gibi domainlerimizi ekleyelim.

138.68.76.200 bektas.xyz
138.68.76.200 zulfumehmet.tk

Hosts dosyasını da kaydedip çıkalım ve nginix servisini yeniden başlatalım

[root@zulfumehmet /]# systemctl restart nginx

Domainleri kontrol edelim. Bektas.xyz açalım

index.html dosyasına bektas.xyz yazmıştık. Doğru dizine yönlendirilmiş.

Burda da zulfumehmet.tk yazmıştık. Buda doğru dizine yönlendirilmiş durumda. Domainlerimiz yönlendi ve hosts dosyalarına tanımladık. Şimdi en son olarak hostlarımıza dosya transferleri için VsFTPD kurulumunu yapalım.

[root@zulfumehmet /]# yum install -y vsftpd ftp

Kurulum bittikten sonra  vsftpd.conf dosyasını silelim (bir kopyasını da almak isterseniz alabilirsiniz) ve sıfırdan oluşturalım.

[root@zulfumehmet /]# rm /etc/vsftpd/vsftpd.conf
[root@zulfumehmet /]# nano /etc/vsftpd/vsftpd.conf

Komutları ekleyelim.

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
#anon_upload_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
#chown_username=whoever
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Hosgeldiniz….
chroot_local_user=YES
listen=YES
max_clients=100
max_per_ip=25
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

Kaydedip çıkalım. Vsftpd başlatalım reboot durumlarına karşı otomatik başlasın diye enable edelim.

[root@zulfumehmet /]# systemctl start vsftpd
[root@zulfumehmet /]# systemctl enable vsftpd

Şimdi ftp erişimleri için bektas.xyz ve zulfumehmet.tk domainleri için kullanıcı oluşturalım, hangi dizine erişebileceğini belirleyelim ve kullanıcıya bir şifre verelim.

root@zulfumehmet /]# useradd bektasxyz -d /var/www/bektas.xyz
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@zulfumehmet /]# passwd bektasxyz
Changing password for user bektasxyz.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@zulfumehmet /]# useradd zulfumehmettk -d /var/www/zulfumehmet.tk
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
[root@zulfumehmet /]# passwd zulfumehmettk
Changing password for user zulfumehmettk.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

Html dizinine dosya kopyalabilmemiz için html dosyasına okuma yazma izni verelim.

[root@zulfumehmet /]# chmod 777 /var/www/bektas.xyz/html
[root@zulfumehmet /]# chmod 777 /var/www/zulfumehmet.tk/html

Herhangi bir ftp programıyla bağlanmaya çalışalım (FileZilla ile deniyorum ben)

Zulfumehmet.tk domain adresini de test edelim.

Ftp erişimlerimizi de sağladık. 3 bölümde bitirdiğimiz  Centos 7 Nginx, Php, MySQL, PhpMyAdmin, BindDNS, Host ve FTP Kurulum makalesinin sonuna geldik. 3 bölümden oluşan makalemizde Centos 7 üzerine Nginx server kurup nginx server ile uyumlu halde çalışan, php, mysql, phpmyadmin, BinDNS, Virtual Host ve en sonunda da vsFTPD kurulum ve yapılanmalarından bahsettik.  Herkese kolay gelsin.

1 – Centos 7 Nginx Ve PHP Kurulumu

2 – Centos 7 Nginx İle MySQL ve PhpMyAdmin Kurulumu

3 – Centos 7 Nginx İle BindDNS, Host ve FTP Kurulumu

3 Yorumlar
  1. Tuncay GÜVEN 2 yıl önce
    Cevapla

    Kral adamsın, o kadar sitede aradım senin yönlendirmen ile iki site nasıl açılır öğrenmiş oldum
    Teşekkürler

Yorum Yaz

*E-mail adresiniz gizli kalacaktır.

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

Öneriler

Yeni Makaleler