Skip to content

linuxte oturum açmak için ilişkilendirilmiş kabuk tanımı

Bir kullanıcıya etkileşimli oturum açma yetkisi vermek isteniyorsa, kullanıcının bir kabuk ile ilişkilendirilmiş olması gerektiği unutulmamalıdır. web1 kullanıcı için ilişkilendirme bakalım

#grep web1 /etc/passwd

web1:x:5004:5005::/var/www/web1:/bin/false

çıktıdaki /bin/false bir kabuk ilişkilendirmesi yapılmadığı anlamına gelmektedir.. bunu genellikle güvenlik için tercih ederiz. oturum açabilmek için bir kabul tanımlayalım.

sudo usermod -s /bin/bash web1

şimdi test edelim.. promtta web1 i gördüğümüze işlem başarılı olmuştur.

root@cicekpc:~# su -l web1
web1@cicekpc:~$ 

eğer sizde olmadıysa /var/log/auth.log veya /var/log/secure log dosyaları incelenmesi gerekecektir.

ngrok – statik ip ye sahip olmayan natlanmış kullanıcılar için

snap destekli bir linux dağıtım kullanıyorsanız

 snap install ngrok 

ile kurulumu yapalım. üyelik gerektiren

https://dashboard.ngrok.com/get-started/setup

adresine girerek tunel oluşumu için kullanılacak authtoken bilgisini ögrenelim ve

ngrok config add-authtoken <token>

ile bağlantıyı gerçekleştirelim. sonrasında bilgisayarımızdaki protokol ve portu tunelliyelim.

ngrok http 80

ekran çıktısında Forwarding satırında dış dünyadan bilgisayarımıza erişebileceğiniz bir ngrok.io adresi yer alacaktır.

Forwarding                    https://xxxx-xx-xxx-xx-xx.eu.ngrok.io -> http://localhost:80      

bundan sonra olası tüm riskler tabiki sizeaittir 🙂

pip 3 de kurulum sırasında –no-warn-script-location uyarısı

linuxde pip ile paket yüklemek istediğinizde aşagıdaki hatayı alırsanız

  WARNING: The script flask is installed in '/home/<username>/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

kabuk yorumlayıcı olarak bash kullandığınızı düşünerek

vi ~/.bashrc

ile bash konfigürasyon dosyasını açarak dosya içerisine

export PATH=$PATH:/home/$USER/.local/bin

satırını eklemek çözüm olacaktır.

ssh bağlantısında hesap değişim algoritmasının kullanılması

komut satırından ssh kullanmaya yeni başladıysanız aşagıdakine benzer hatalar ile karşılaşırsanız bunun nedeni sunucu tarafından bir hesap değişim algoritmasının aktif eilmiş olmasındandır.

# ssh  -p 3333 sshuser@ferhatcicek.com
Unable to negotiate with 10.66.26.35 port 3333: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group14-sha1

peki bu durumda ne yapacaksınız. yukarıdaki çıktıda diffie hellman algoritmasının kullanıldığı belirtiliyor. ssh bağlantısında parametre olarak bunu belirmemiz gerekmektedir.

# ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc -p 3333 sshuser@ferhatcicek.com 

komutu eksiksiz olarak yazdıysak aşagıdaki şekilde bir çıktı ile karşılacağız..

The authenticity of host '[ferhatcicek.com]:3333 ([10.66.26.35]:3333)' can't be established.
RSA key fingerprint is SHA256:NHXQ1no3z/Z2e/KoqrKyn0vNKlYhKmhvhtsQFXS4rvk.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

yes yazarak kabul ettikten sonra ne bağlantı gerçekleşmiş olacak

nginx den alan adının ve sertifikanın silinmesi

öncelikle alan adımı tanımlayalım

alanadi=ferhatcicek.com

alanadına ait konfigürasyon dosyalarını silelim

sudo rm /etc/nginx/sites-available/$alanadi
sudo rm /etc/nginx/sites-enabled/$alanadi

nginx i yeniden başlatalım

sudo nginx -t  
sudo service nginx restart

ve mevcut sertifikaları görüntüleyelim ve alanadına ait sertifikayı certboot ile silelim

certbot certificates

sudo certbot delete --cert-name $alanadi

Let’s Encrypt sertifikasının silinmesi

Let’s Encrypt dan bir sertifika aldıysanız sertifikaya ait dosyalar

/etc/letsencrypt/archive
/etc/letsencrypt/live
/etc/letsencrypt/renewal

dizinleri altında tutulmaktadır. herhangi bir alanadına ait sertifikayı silmek isterseniz

sudo certbot delete

komutu kullanabilir ve listden alan adı seçilerek işlem yapılabilir veya doğrudan alarn adı belirterek

sudo certbot delete --cert-name alanadi.com

sertifika silinebilir

docker kullanarak zabbix kurulumu

öncelikle kullanacağız image leri docker repository den çekeceğiz. Bu örnekte sunucu olarak nginx ve veritabanı olarak mysql kullanıyorum. daha optmizebir bir yapı taiki kurulabilir.

docker pull mysql
docker pull zabbix/zabbix-server-mysql
docker pull zabbix/zabbix-web-nginx-mysql
docker pull zabbix/zabbix-java-gateway
docker pull zabbix/zabbix-agent

sonrasında

docker images

ile kontrolleri yapabiliriz.

şimdi sıra ile imageleri başlatalım. kullanılan port kullanıcı adı ve şifrenizi mevcut sistemine göre uyarlamanız gerekebilir.

docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbixmysqlsifre" -e MYSQL_ROOT_PASSWORD="mysqlrootsifre" -d mysql --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password
docker run --name zabbix-java-gateway -t --restart unless-stopped -d zabbix/zabbix-java-gateway
docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbixmysqlsifre" -e MYSQL_ROOT_PASSWORD="mysqlrootsifre" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --link mysql-server:mysql --link zabbix-java-gateway:zabbix-java-gateway -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql
docker run --name zabbix-web-nginx-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbixmysqlsifre" -e MYSQL_ROOT_PASSWORD="mysqlrootsifre" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:8080 --restart unless-stopped -d zabbix/zabbix-web-nginx-mysql
docker run --name zabbix-agent --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server" -d zabbix/zabbix-agent

doğru şekilde çalıştığını kontrol edelim.

docker ps -a

şimi konfigürasyon bilgilerine bakalım… burada bize ip adresi gerekiyor…

docker inspect zabbix-agent

şimfi bir tarayıcı açarak ip adresini yazalım. zabbix kullanıcı giriş sayfası ile karşılaşırsak herşey tamamdır. default kullanıcı ado şifresi

Username: Admin
Password: zabbix

şeklindedir

rainloop dizin ve dosya yetki ayarları

kurulumun /var/www/rainloop dizinine yapıldığını varsayarak yetkili kullanıcı ile aşagıdaki komutlar çalıştırılmalıdır

cd /var/www/rainloop
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
cd /var/www/rainloop
chown -R www-data:www-data .

MTA kurulumu sonrası kontroller

shell üzerinden mevcut kullanıcınız ile farklı bir kullanıcıya eposta göndermek için

echo "test eposta icerigi" | mail -s "test eposta basligi" testkullanici@ferhatcicek.com

kullanabilirsiniz.. mail yoksa mailutils paketini kurmanız gerekebilir.

sudo apt-get install -y mailutils

mail gönderme başarısız olduysa logları incelemek gerekcek. MTA olarak postfix kullandığımız varsayarak maille ilgili en temel loglara bakmak için

sudo tail /var/log/mail.log
sudo tail -f -n 100 /var/log/syslog | grep postfix

kullanabiliriz….

php mail() fonksiyonunu kullanarak eposta sunucunuzun sorun olmadan kullanılma testlerini yapmak istersek en temel php kodu aşagıdaki şekilde olacaktır.

<?php
$to      = 'testkullanici@ferhatcicek.com';
$subject = 'test epostasi';
$message = 'test eposta icerigi';
$headers = 'From: testkullanici2@ferhatcicek.com' . "\r\n" .
    'Reply-To: testkullanici2@ferhatcicek.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Time Zone kontrolü ve değişikliğinin yapılması

öncelikle sistem üzerinde tanımlı “time zone” kontrolünü yapalım

root@test:# timedatectl status
                      Local time: Fri 2020-10-30 00:14:47 CST
                  Universal time: Thu 2020-10-29 16:14:47 UTC
                        RTC time: Fri 2020-10-30 00:14:48
                       Time zone: Asia/Shanghai (CST, +0800)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.

çıktından görüldüğü gibi sunucuz time zone u Asia/Shanghai olarak ayarlanmış görülmektedir. bunu ülkemize uygun olarak değiştireceğiz. öncelikle listede istanbul varmı kontrolü yapalım.

root@test:# timedatectl list-timezones | grep Istanbul
Europe/Istanbul

artık değişikliği yapabiliriz.

root@test:# timedatectl set-timezone Europe/Istanbul

time zone değişikliğini yapmış olduk. duruma ait kontroli tekrarlayalım.

root@test:# timedatectl status
                      Local time: Thu 2020-10-29 19:15:30 +03
                  Universal time: Thu 2020-10-29 16:15:30 UTC
                        RTC time: Thu 2020-10-29 19:15:30
                       Time zone: Europe/Istanbul (+03, +0300)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: yes

Warning: The system is configured to read the RTC time in the local time zone.
         This mode can not be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
Back To Top