Yazdır
Gösterim: 2586

Bir aceminin evdeki günlüğünden.

Covid-19 nedeniyle evlerden çıkamadığımız bu günlerde gözler uzaktan eğitim yöntem ve tekniklerine dönse de yeterince her ihtiyacı karşılayabilecek ücretsiz çözümlerin olmaması, olan ücretsiz çözümler hakkında da yeterli Türkçe kaynak olmaması gibi sorunlar bizler gibi son kullanıcıların karşısına çıkmaktadır. Başka ve en önemli sorun ise kullanacağınız uzaktan eğitim sistemine bağlananların ses ve görüntüleri, kişisel bilgileri gibi sistemin güvenliği gibi güvenlik kaygıları. Bu yazımda kendi kişisel bilgisayarınızda oluşturacağınız sanal bilgisayarlara, açık kaynak özgür yazılımları yükleyip öğrenci ve öğretmen arkadaşlarınızın bu bilgisayara ulaşması ve bu bilgisayar üzerinden eğitim vermesi için neler yapılabileceğini yazmaya çalışacağım. İki senaryom var. Bu yazı 1. senaryomu içerecektir. Bir sanal bilgisayara ubuntu server kurmak, dns, nginx, mysql ve php kurmak, en son olarak bir uzaktan eğitim portalı olan moodle ve bigbluebutton entegrasyonu ile bilgisayarımızı dış dünyaya açmak.

 

Öncelikle https://www.metunic.com.tr/ adresinden "ekart.name.tr" adresini 5 yıllığına yaklaşık 35TL ye satın aldım.

 

Modemimin arayüzünden veya  veya basit bir web araması ile dış dünyaya açılan ip adresimi öğreniyorum.

 

"ekart.name.tr" ismini aldıktan sonra sitenin kontrol panelinden bu ismi evimdeki modemin dış İP adresi ile henüz oluşturmadığım bir dns sunucuya yönlendiriyorum. Alan adı sunucusu 1 bölümüne baş kısmını unutmayacağınız istediğiniz bir ifade yazın. Fotoğrafta "ekart.ekart.name.tr" olarak görünse de daha sonra "ns.ekart.name.tr" olarak değiştirdim.

 

Şimdilik deneme olsun diye sunucumu sanal bilgisayara kuracağım. Oluşturacağım sunucu için Virtual Box programını https://www.virtualbox.org/wiki/Downloads adresinden indirip kurduktan sonra çalıştırdım. Daha sonra gerçekleştirmeyi düşündüğüm 2. senaryoya da hazır olması için 64 Bit Ubuntu üzerine yeni bir makine oluşturalım.

100GB disk alanı vererek oluşturduğum makinenin ayarlarından makineme 2 işlemci çekirdeği ayırdım.

 

Ağ bağdaştırıcınızı köprü bağdaştırıcı olarak ayarlamanız, özellikle ağınız dışından gelenlerin sisteminize ulaşmasına yarayacak.

https://releases.ubuntu.com/16.04/ubuntu-16.04.6-desktop-amd64.iso adresinden indirdiğim dosyayı sanal optik disk olarak kullanıp kurulum yapmak için kullanacağım. Bu ekranda IDE denetleyici bölümünden "Disk dosyası seçin..." düğmesi ile indirdiğiniz ubuntu iso dosyasını seçmeniz lazım. Ubuntu Server kurulumu bittiğinde bu ekrana dönüp "Diski sanal sürücüden kaldır" seçeneğini seçmeyi unutmayın.

İkinci senaryomuz için ingilizce kurulum yapmanız önemli.

Fotoğrafları takip ederek yapıyorsanız Klavye diliniz Türkçe olacaktır.

Ayrıca bilgisayar adını belirlediğiniz Hostname kısmında "server.local" veya "ekart.name.tr" gibi "." işaretli bir isim belirlemeniz ve ssh servisini kurulması için işaretlemeniz işlerinizi kolaylaştıracaktır. Fotoğrafta "bbbserver.local" görünen yere satın aldığım "ekart.name.tr" yazdım.

 

OpenSSH yüklü olması, program kurulumları ve ayarlarını yaparken elinize çok rahatlatacaktır.

Kurmuş olduğunuz server bilgisayara SSH servisinden bağlantı kurmak için Pardus'ta konsolu kullanabiliriz. Diğer işletim sistemi için https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe adresinden indireceğiniz "Putty" programı yeterli olacaktır. Ancak server bilgisayarınıza SSH bağlantısı kurabilmeniz için bir defaya mahsus sanal Ubuntu Sunucunuzu başlatıp giriş yaptıktan sonra "ip address" komutunu çalıştırıp server sunucunuzun aldığı IP adresini öğrenmeniz gerekmektedir. Artık çalıştırmanız gereken komutları bu yazıdan kopyalayıp farenizin sağ tuşu ile konsolunuza veya Putty ekranına yapıştırabilirsiniz.

 

 

##### İlk Ayarlar ######

Ubuntu server kurulumu bitti, sistem açıldı, login ekranında kullanıcı adı ve parolamız ile sisteme giriş yaptıktan sonra ilk işimiz, depoları ve sistemi güncelleme komutlarını sonrada temizlik komutunu çalıştırmak.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove

 

Güvenlik duvarını şimdilik kapatacağım.

sudo ufw disable

 

##### DNS Server Servisi Kurulumu ######

sudo apt-get -y install bind9 bind9utils bind9-doc rblcheck dnsutils

 

195.174.67.40 - WAN IP adresim

192.168.0.16  - LAN IP adresim

ekart.name.tr - Alan adım

nameserver.ekart.name.tr - DNS adım

Kurulum bittikten sonra nano editörü ile ayar dosyalarınızın içeriğini aşağıdaki gibi ayarlayın. Nano editöründe, dosyaları kaydederek çıkış yapmak için CTRL+X düğmelerini kullanın.

 

sudo nano /etc/bind/named.conf.local

# # # # # # # # # # # # # # # #
# # # Dosyanın son hali # # #
zone "ekart.name.tr" {
type master;
file "/etc/bind/ekart.name.tr.db";
};

zone "67.174.195.in-addr.arpa" {
type master;
file "/etc/bind/db.174.195";
};
# # # 195.174.67.40 WAN ip adresinin yazılışına dikkat edin # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

 

sudo nano /etc/bind/ekart.name.tr.db

# # # # # # # # # # # # # # #
# # # Dosyanın son hali # # #
; BIND data file for ekart.name.tr
;
$TTL 604800
@ IN SOA nameserver.ekart.name.tr. host.ekart.name.tr. (
2020050201 ; YILAYGUNSIRA
604800 ; Refresh time
86400 ; Retry time
2419200 ; Expire time
604800) ; Negative cache TTL
;
ekart.name.tr. IN NS nameserver.ekart.name.tr.

ekart.name.tr. IN MX 10 mail.ekart.name.tr.
ekart.name.tr. IN A 195.174.67.40

nameserver IN A 195.174.67.40
www IN CNAME ekart.name.tr.
mail IN A 195.174.67.40
ftp IN CNAME ekart.name.tr.
ekart.name.tr. IN TXT "v=spf1 ip4:195.174.67.40 a mx ~all"
mail IN TXT "v=spf1 a -all"
# # # name.tr den sonraki . işaretinin yazılışına dikkat et # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

 

sudo nano /etc/bind/db.174.195

# # # # # # # # # # # # # # #
# # # Dosyanın son hali # # #
;
; BIND data file for local loopback interface
;
$TTL    604800
@ IN SOA localhost. root.localhost. (
        2020050201      ;Serial
        604800          ;Refresh
        86400           ;Retry
        2419200         ;Expire
        604800 )        ;Negative cache TTL

@       IN      NS      localhost.
@       IN      A       127.0.0.1
# # # localhost ifadesinden sonraki . işaretine dikkat et # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

 

DNS kurulumu bitti, dns servisini yeniden başlatalım.
 

sudo systemctl restart bind9

 


sudo nano /etc/resolv.conf

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # sorun olursa search ekart.name.tr ifadesini ekle  # # #
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

domain ekart.name.tr
search ekart.name.tr
nameserver 192.168.0.16

nameserver 46.197.15.60
nameserver 178.233.140.110
nameserver 176.240.150.250
# # # Değişikliğin kalıcı olması için aşağıdaki komutu çalıştır  # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

sudo resolvconf -u

 

 

##### NGINX Web Server Servisi Kurulumu ######


Web servisinin kurulumu için aşağıdaki komutu çalıştırmanız yeterlidir.

sudo apt-get install nginx
sudo systemctl restart nginx.service



 

##### PHP7.4 Servisi Kurulumu ######


Web servisinin kurulumu için aşağıdaki komutu çalıştırmanız yeterlidir.

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update


sudo apt-get install graphviz aspell php7.4 php7.4-fpm php7.4-cli php7.4-common php7.4-curl php7.4-gd php7.4-intl php7.4-json php7.4-ldap php7.4-mysql php7.4-mbstring php7.4-opcache php7.4-pspell php7.4-readline php7.4-soap php7.4-xmlrpc php7.4-xml php7.4-zip



Aşağıdaki iki dosyayı nano editörü ile açıp değerleri değiştirelim.

sudo nano /etc/php/7.4/cli/php.ini
sudo nano /etc/php/7.4/fpm/php.ini


file_uploads = On
allow_url_fopen = On
memory_limit = 256M
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 360
cgi.fix_pathinfo = 0
date.timezone = Europe/Istanbul


Aşağıdaki iki dosyayı nano editörü ile açıp değerleri değiştirelim.

sudo nano /etc/php/7.4/fpm/pool.d/www.conf

security.limit_extensions = .php

 

sudo systemctl restart php7.4-fpm.service


 

##### MariaDB Mysql Veritabanı Servisi Kurulumu ######


Önce programı kuralım sonra ayarlamalarla devam...

sudo apt-get install -y mariadb-server mariadb-client

 

sudo mysql_secure_installation

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: Create password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

 

50-server.cnf dosyasında [mysqld] satırının altında aşağıdaki değişiklikleri yaptıktan sonra MariaDB Mysql servisini yeniden başlatalım.

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_large_prefix = 1

 

 sudo systemctl restart mysql.service




Moodle portalının kurulumu için "yeniparola" parolasına sahip olacak "moodlekullanicisi" adında bir mysql kullanıcı hesabı oluşturarak gerekli izinleri verelim.

sudo mysql -u root -p

CREATE DATABASE moodle;

CREATE USER 'moodlekullanicisi'@'localhost' IDENTIFIED BY 'yeniparola';

GRANT ALL ON moodle.* TO 'moodlekullanicisi'@'localhost' IDENTIFIED BY 'yeniparola' WITH GRANT OPTION;


Sadece moodle isimli veritabanına değilde tüm veritabanlarına tam yetki vermek isterseniz üstteki komut yenine alttaki komutu kullanın. (Önerilmez)

GRANT ALL PRIVILEGES ON * . * TO 'moodlekullanicisi'@'localhost';

FLUSH PRIVILEGES;

EXIT;

Mysql servisini yeniden başlatalım.

sudo systemctl restart mysql.service


Veritabanını grafik arayüzde yönetmek isterseniz PhpMyAdmin kullanabilirsiniz.

sudo apt-get install -y phpmyadmin

sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html

sudo ln -s /usr/share/phpmyadmin /var/www/html

 

 

##### SSL Sertifikası Kurulumu ######


SSL sertifikamızı alabilmek için gerekli kurulumları yaptıktan sertifikamızı alalım.


sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install -y python-certbot-nginx

 

sudo certbot --nginx -m This email address is being protected from spambots. You need JavaScript enabled to view it. -d ekart.name.tr -d www.ekart.name.tr


 

##### Moodle Portalı Kurulumu Öncesi Hazırlık ######


Önce programı kuralım sonra ayarlamalarla devam...

cd /tmp && wget https://download.moodle.org/download.php/direct/stable38/moodle-latest-38.tgz

sudo tar -zxvf moodle-latest-38.tgz -C /var/www/html

sudo chown -R www-data:www-data /var/www/html/moodle/

sudo chmod -R 755 /var/www/html/moodle/

sudo mkdir -p /var/www/moodledata

sudo chown -R www-data /var/www/moodledata

 

SSL, PHP ve Nginx ayarları için Nginx dosyalarını düzenleyilim.

sudo nano /etc/nginx/sites-available/default

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name ekart.name.tr www.ekart.name.tr;

        location / {
                try_files $uri $uri/ =404;
        }
        
        location ~ [^/]\.php(/|$) {
                fastcgi_split_path_info  ^(.+\.php)(/.+)$;
                fastcgi_index            index.php;
                fastcgi_pass             unix:/var/run/php/php7.4-fpm.sock;
                include                  fastcgi_params;
                fastcgi_param   PATH_INFO       $fastcgi_path_info;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
                listen 443 ssl;
                ssl_certificate /etc/letsencrypt/live/ekart.name.tr/fullchain.pem;
                ssl_certificate_key /etc/letsencrypt/live/ekart.name.tr/privkey.pem;
                include /etc/letsencrypt/options-ssl-nginx.conf;
                ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

        if ($scheme != "https") {
                return 301 https://$host$request_uri;
        }
}

 

sudo nano /etc/nginx/sites-available/moodle

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/html/moodle;        
        index index.php index.html index.htm index.nginx-debian.html;
        server_name ekart.name.tr www.ekart.name.tr;

        location / {
                try_files $uri $uri/ =404;
        }
        
        location /dataroot/ {
                internal;
                alias /var/www/moodledata/
        }
}



 

Modem ayarlarına girip gerekli yönlendirme (NAT) ayarlarını yapıp tüm hizmetleri yeniden başlatalim.

sudo systemctl restart bind9.service

sudo systemctl restart nginx.service

sudo systemctl restart php7.4-fpm.service

sudo systemctl restart mysql.service

 

 

##### Moodle Portalı Kurulumu ######


Alan adımız/moodle adresini herhangi bir internet tarayıcının adres çubuğuna https olarak yazıp onaylayarak kuruluma başlayalım.

https://ekart.name.tr/moodle gibi.

 

Kurulumu kendinize göre tamamladıktan sonra siteniz hazir. Zoom, jitsi gibi sistemlere alternatif olan Bigbluebutton eklentisini sitenize kurmak istiyorsanız Kontrol paneli -> Site Yönetimi -> Eklentiler -> Eklenti yükle menüsünden yükleyebilirsiniz.

Eklentiyi Kullanabilmek için sitenizin düzenlemesini açarak "Yeni bir etkinlik ya da kaynak ekle" yolu ile Bigbluebutton seçimini yapıp eklemek gerekmektedir.

 

 

Bu aceminin gözden kaçırdığı veya daha açık olması istediğiniz yerler ile katkılarınız için lütfen iletişim bölümünü kullanınız.

 

 

 

....