Kategori arşivi: Sistem

(Anaconda – Tensorflow) ImportError: No module named

ImportError: No module named hatasını alıyorsanız ilgili module yüklü değildir. Örnek olarak bu modül Pandas olsun.

Pandas modülünü yüklemek öncelikle Anaconda terminalini açıyoruz ve aşağıdaki işlemleri gerçekleştiriyoruz.

[pastacode lang=”bash” manual=”conda%20activate%20gputensorflow%20(gputensorflow%20benim%20kulland%C4%B1%C4%9F%C4%B1m%20environment%20ismi.%20siz%20burada%20kendinizinkini%20belirtmelisiniz)%0A%0Apip%20install%20pandas%20(pandas%20yerine%20kurmak%20istedi%C4%9Finiz%20module%20ismini%20yazmal%C4%B1s%C4%B1n%C4%B1z)” message=”” highlight=”” provider=”manual”/]

Sürdürülebilir Linux Sistem Yönetimi

Bu yazıda Sürdürülebilir Linux Sistem Yönetimi için gerekli yazılımlar ve ipuçlarını paylaşacağım. Yazıda ayrıntılı açıklamalar olmayacak. Bu yazıdan yola çıkıp internette ilgili yazılımlar ile ilgili detaylı bilgi ve kaynaklara ulaşılabilir.

  • Docker – “Konteynerleştirme” olarak da bilinen işletim sistemi seviyesinde sanallaştırma sağlayan bir bilgisayar programıdır.
  • Clusterssh – Sistemdeki birden fazla bilgisayarda toplu komut çalıştırma.
  • Tmux – Terminal penceresini bölerek kullanmaya yarar.
  • Failover Programları (Yük Devretme – Arıza veren veya devreden çıkan sistem için başka bir sistemin devreye girmesi) (Load Balancer).
    • Corosync
    • Haproxy
    • Pound
  • Darboğaz (bottleneck)
  • Yedekleme İçin Kullanılabilecek Yazılımlar
    • tar / cf, xf
    • rsync
    • rdiff backup
    • duplicity
    • bacula
    • tarshap
    • ninjabackup
    • amanda
  • Merkezi Hesap Yönetimi – LDAP (Yazma çok yavaş, okuma çok hızlı)
  • tar_gz — 0..9: 0 en az, 9 en çok. Genelde maksimum 7 olarak seçiliyor.
  • Güvenlik
    • Selinux
    • App Armor
    • MAC (mandatory access control)
  • Puppetmaster
  • Monitörleme (service and server)- Nagios
  • swatch (log izleme) – logger – graylog – logrotate
  • 5S Kalite Yönetim Sistemi (JAPON)
    • Seiri (Ayıklama)
    • Seiton (Düzenleme)
    • Seiso (Temizleme)
    • Seiketsu (Standartlaştırma)
    • Shitsuke (Disiplin)
  • Servis kontrolü /etc/init.d altındadır.
    • service status -all
  • Linux’ta dizinler
    • etc – ayarlar
    • home – kullanıcı ev dizinleri
    • temp – geçici dosyalar
    • proc – çeşitl bilgiler (sistem vs.)
    • usr – kullanıcıların kurdukları (farklı diskte de olabilir)
      • bin
      • lib
      • share
      • sbin
    • lib – sistemin açılması için gerekli minimum bilgi ve dosyalar
    • sbin
    • share
    • bin
    • root – sistemin açılması için gerekli dosyalar mevcuttur. Sorun çıkabilir dikkatli olmak gerekir.
    • boot – grup, çekirdek, init.rd..
    • var – servis içerik ve logları
    • dev – devices
    • opt – program files diyebiliriz, genelde sıkıntı çıkaranlar burada.
  • BIOS – Hard disk – Master boot record – grup
  • LVM – Bölümler volume gruplar olarak tanımlanıyor. Disk bölümleriyle oynanabiliyor.
  • MAIL
    • Smtp – gönderme
    • Imap – Alma
    • Pop – Alma
  • Spam Filtresi – Tahminde bulunur. Greylisting, SPF Kaydı.
  • Postfix Admin
  • Spacewalk
  • Cobblerd
  • Network Boot

Linux OpenVPN Bağlantısı

OpenVPN bağlantısı yapabilmek için öncelikle sertifika dosyalarına sahip olmanız gerekmektedir. Bu dosyalar aşağıda listelendiği gibidir;

  • ca.crt
  • client.crt
  • client.key
  • client.ovpn
  • ta.key 

Bu dosyaları bir klasöre taşıyın.

OpenVPN programı bilgisayarınızda yüklü değilse aşağıdaki komut ile kuruyoruz.

[pastacode lang=”bash” manual=”sudo%20apt-get%20install%20openvpn” message=”” highlight=”” provider=”manual”/]

Daha sonra sertifika dosyalarının bulunduğu klasör içerisine giriyoruz ve aşağıdaki komutu çalıştırarak vpn bağlantısını kuruyoruz.

[pastacode lang=”bash” manual=”sudo%20openvpn%20client.ovpn” message=”” highlight=”” provider=”manual”/]

Bağlanmak istediğim sunucu kullanıcı adı ve şifre istemediğinden dolayı ben otomatik olarak bağlandım. Sunucunuz kullanıcı adı ve şifre istiyor ise size soracaktır.

Ayrıca bağlantı sağlandıktan sonra terminal üzerinde program çalışmaya devam ediyor, arka planda çalışmıyor. Arka planda çalışmasını sağlamak için ben screen programını kullanıyorum. Dolayısıyla bağlantı için aşağıdaki komutu kullanıyorum.

[pastacode lang=”bash” manual=”screen%20sudo%20openvpn%20client.ovpn” message=”” highlight=”” provider=”manual”/]

Screen kullanımı için daha önce yazdığım Linux Screen Programı ve Kullanımı isimle yazıdan yararlanabilirsiniz.

Android SSL VPN Bağlantısı – OpenVPN

  • Bağlantıyı yapabilmeniz için öncelikle SSL VPN sertifikalarınızın olması gerekiyor. Bunu bağlantıyı yapacağınız sunucunun sistem yöneticilerinden edinebilirsiniz.
  • Sertifikayı telefonunuzda bir dizine kopyalayın. Eğer dosya sıkıştırılmış bir biçimdeyse (tar vs.) Dosyayı açmanız gerekiyor (önce açıp sonra telefonunuza kopyalayabilirsiniz). Benim dosyalarım aşağıdaki şekildeydi. Sizde de aşağıdaki dosyaların uzantılarına sahip dosyalar olması gerekiyor.
    • ca.crt
    • client.crt
    • client.key
    • client.ovpn
    • ta.key 
  • Play Store’dan telefonunuza OpenVPN Connect uygulamasını kurmalısınız.
  • Uygulama kurulduktan sonra çalıştırın. En alttaki OVPN Profile seçeneğine basın. Import Profile diyin sonra telefonunuzda sertifikaların bulunduğu dizindeki .ovpn uzantılı dosyayı seçin (bende bu dosya client.ovpn dosyası idi). Bağlantı barını sağa çekerek bağlantınızı kurun. 

 

Linux: SSH Keygen public key şifre soruyor – I still getting password prompt with ssh public key authentication

Daha önce linux sunucuya SSH-Keygen ile nasıl şifresiz SSH bağlantısı yapılacağına dair bir yazı yazmıştım. Bugün bir SSH-Keygen ile şifresiz giriş için ayarladığım bir sunucuya bağlanmaya çalıştığımda halen şifre sormaya devam etti. Daha önce karşılaşmamıştım. Problemi ilgili sunucunun authorized_keys dosyasının okuma iznini aşağıdaki şekilde değiştirerek hallettim.

Even I configured a linux server as passwordless SSH by SSH-Keygen, I was still getting password prompt. I solvent the problem as shown below.

chmod 400 ~/.ssh/authorized_keys

Openconf Kurulum – Openconf Installation

UBUNTU 20.04
OPENCONF 7.10

Aşağıdaki kurulum adımlarını sunucuda tamamladıktan sonra web arayüzden Openconf konfigürasyonlarını tamamlayarak kurulum tamamladım.

After I completed the steps below, I configured Openconf by web gui.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt install lynx unzip apache2
lynx https://www.openconf.com/download (and download) #or download openconf and send to server with a way such as scp
unzip openconf-7.10.zip
sudo rm /var/www/html/index.html
sudo cp -r openconf/* /var/www/html/
sudo apt install php php-mysql php-pear php-xml* php-cgi php-cli
sudo apt install mysql-server
sudo chown -R www-data:www-data /var/www/html/*
sudo chmod -R g+rwX /var/www/html/*
/etc/init.d/apache2 restart
/etc/init.d/mysql restart
sudo mysql -u root

#on mysql
USE mysql; 
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; 
FLUSH PRIVILEGES; 
exit; 

sudo systemctl restart mysql.service 
sudo mysql_secure_installation 

Enter current password for root (enter for none): Enter 
Set root password? [Y/n]: Y 
New password: Enter password 
Re-enter new password: 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

mysql -u root -p
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
quit;

E-posta işlemleri için sudo apt install sendmail ile sendmail kurulabilir. Eğer gmail‘e (veya hotmail yahoo) bildirim düşmesi veya oradan gönderilmesi isteniyorsa sendmail yerine ssmtp ile gmail kullanarak mail gönderilmelidir. Onun nasıl yapılacağına dair şu yazıdan bilgi alınabilir.

Ayrıca database konfigürasyonu aşağıdakine benzer bir şekilde olacaktır.


UBUNTU 18.04.3
OPENCONF 6.90

Aşağıdaki kurulum adımlarını sunucuda tamamladıktan sonra web arayüzden Openconf konfigürasyonlarını tamamlayarak kurulum tamamladım.

After I completed the steps below, I configured Openconf by web gui.

apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get install apache2
apt-get install lynx
lynx https://www.openconf.com/download/license.php (and download) #or download openconf and send to server with a way such as scp
apt-get install unzip
unzip openconf-6.90.zip
cp -r openconf /var/www/html/
apt-get install php php-mysql php-pear php-xml* php-cgi php-cli
apt-get install mysql-server
chown -R www-data:www-data /var/www/html/openconf
chmod -R g+rwX /var/www/html/openconf/*
  • Kurulumdan sonra sistemin e-posta gönderebilmesi için sendmail’i kurmayı unutmayın. Aksi taktirde We have generated a new password for you, but were unable to email it. Please contact the OpenConf administrator hatası ile karşı karşıya kalabilirsiniz.
  • Ubuntu 17.10’dan sonra mysql kurulurken şifre falan istemiyor ve şifresiz olarak kuruluyor. Kurulumdan sonra bağlantıdan yardım alarak şifresini ve ayarlarını belirleyebilirsiniz.
apt-get install sendmail

 

UBUNTU 14.04.5
OPENCONF 6.71

Ubuntu 16.04’de problem yaşadığım için Ubuntu 14.04.5’e kurulum yaptım. Aşağıdaki kurulum adımlarını sunucuda tamamladıktan sonra web arayüzden Openconf konfigürasyonlarını tamamlayarak kurulum tamamladım.

I chose Ubuntu 14.04.5 because I had some problem on Ubuntu 16.04 during installation of Openconf. After I completed the steps below, I configured Openconf by web gui.

apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get install apache2
apt-get install lynx
lynx https://www.openconf.com/download/license.php (and download)
apt-get install unzip
unzip openconf-6.71.zip
cp -r openconf /var/www/html/
apt-get install php5 php5-mysql php-pear php5-mcrypt php-xml* php5-cgi php5-cli
apt-get install mysql-server
chown -R www-data:www-data /var/www/html/openconf
chmod -R g+rwX /var/www/html/openconf/*
  • Kurulumdan sonra sistemin e-posta gönderebilmesi için sendmail’i kurmayı unutmayın. Aksi taktirde We have generated a new password for you, but were unable to email it. Please contact the OpenConf administrator hatası ile karşı karşıya kalabilirsiniz.
apt-get install sendmail

 

Nextcloud ldap authentication

Öncelikle nextclould’unuzda LDAP user and group backend uygulaması aktif değilse web arayüzden sol üstteki menüye tıklıyoruz. Açılan pencereden Apps (uygulamalar) kısmını seçiyoruz. Not enabled’a tıklıyoruz ve LDAP user and group backend uygulamasını bulup enable’a tıklıyoruz. Aşağıdaki gibi bir uyarı alırsanız sunucunun (ubuntu 16.04) içerisine girip apt-get install php-ldap ile ilgili paketi yüklüyoruz ve sonrasında enable etmeyi tekrar deniyoruz. Bu kez enable olmuş olması gerekir.

Sonrasında yine web arayüzden bu kez sağ üstteki menüye tıklıyoruz ve Admin seçeneğini seçiyoruz. LDAP / AP integration’a tıklıyoruz. Server sekmesinde ilgili yerleri ldap sunucumuza göre düzenliyoruz. Daha sonra Test Base DN’e tıklayarak test ediyoruz. Configuration OK uyarısı görülüyor ise Continue butonuna basarak Users sekmesine geçebiliriz. Burada herhangi bir değişiklik yapmadan tekrar Continue butonuna tıklıyoruz.

Son olarak sağdaki Advanced butonuna tıklıyoruz ve aşağıdakine benzer şekilde konfigüre ediyoruz.

Ayarları yaptıktan sonra Login Attributes sekmesine tıklıyoruz ve ldap’ımızda kayıtlı olan bir kullanıcıyı Test Loginname yazan textbox’a yazarak test ediyoruz. Test başarılı bir şekilde tamamlanmış ise ldap bağlantımız kurulmuş demektir.

Apache ssl virtualhost

Edit default-ssl configuration file;

<IfModule mod_ssl.c>

<VirtualHost _default_:443>
 ServerName blabla1.blabla.com:443
 ServerAdmin webmaster@localhost
 DocumentRoot /directory
 <Directory />
 Options FollowSymLinks
 AllowOverride None
 </Directory>
 <Directory /directory>
 Options FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
 AllowOverride None
 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 Order allow,deny
 Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 LogLevel warn

 CustomLog /var/log/apache2/ssl_access.log combined

 Alias /doc/ "/usr/share/doc/"
 <Directory "/usr/share/doc/">
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order deny,allow
 Deny from all
 Allow from 127.0.0.0/255.0.0.0 ::1/128
 </Directory>

 SSLEngine on

 SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
 SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 #SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt

 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>

 BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>

<VirtualHost _default_:443>
 ServerName blabla2.blabla.com:443
 ServerAdmin webmaster@localhost
 DocumentRoot /directory
 <Directory />
 Options FollowSymLinks
 AllowOverride None
 </Directory>
 <Directory /directory>
 Options FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
 AllowOverride None
 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 Order allow,deny
 Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log
 LogLevel warn

 CustomLog /var/log/apache2/ssl_access.log combined
 Alias /doc/ "/usr/share/doc/"
 <Directory "/usr/share/doc/">
 Options Indexes MultiViews FollowSymLinks
 AllowOverride None
 Order deny,allow
 Deny from all
 Allow from 127.0.0.0/255.0.0.0 ::1/128
 </Directory>
 SSLEngine on
 SSLCertificateFile /directoryCert
 SSLCertificateKeyFile /directoryCertKeyFile


 <FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>
 <Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>

 BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>