skip to Main Content

raspberry pi – raspbian ssh aktif edilmesi

raspberry ile çalışıyorsanız ssh in aktif olması olmazsa olmazlardan biridir. şimdi raspberry üzerine ssh sunucusu nasıl aktif edeceğimize bakalım.

raspberry nin konfigürasyon arayüzünü aktif çalıştıralım. bu arayüz ile konfigürasyon dosyaları ile uğraşmaya gerek kalmayacak. yazılım sürümüne göre ekran görüntüleri farklılık gösterebilir.

pi@raspberrypi ~ $ sudo raspi-config

açılan arayüzden “advanced options” seçilir

raspiconfigssh1

yeni açılan pencereden ssh seçilerek
raspiconfigssh2

açılan pencereler takip edilerek ssh aktif edilir.

raspiconfigssh3

raspiconfigssh4

ssh ımız aktif oldu. artk arayüzden “finish” diyerek çıkabilir.

raspiconfigssh5

arayüzden çıktıktan sonra komut satırını aşagıdaki şekilde göreceğiz.

pi@raspberrypi ~ $ sudo raspi-config 
update-rc.d: using dependency based boot sequencing
[ ok ] Starting OpenBSD Secure Shell server: sshd.

herşey güzel.. gerçekten ssh sunucumuz aktif mi kontrol edelim.

pi@raspberrypi ~ $ /etc/init.d/ssh status 
[ ok ] sshd is running.

ile sunucumuzun çalıştığı bilgisi alıyoruz. ip bilgisini ögrenelim ve gerçek bağlantı testimizi yapalım.

pi@raspberrypi ~ $ ifconfig
eth0 Link encap:Ethernet HWaddr 11:11:11:11:11:11
 inet addr:192.168.2.37 Bcast:192.168.2.255 Mask:255.255.255.0
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:777 errors:0 dropped:1 overruns:0 frame:0
 TX packets:557 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000 
 RX bytes:60040 (58.6 KiB) TX bytes:89779 (87.6 KiB)

bundan sonra ssh bağlantımızı yapalım…

[c:\~]$ ssh pi@192.168.2.37


Connecting to 192.168.2.37:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Linux raspberrypi 3.18.11+ #781 PREEMPT Tue Apr 21 18:02:18 BST 2015 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Jun 30 20:39:17 2015 from fcicek.local


pi@raspberrypi ~ $

artık raspberry de diğer işlerle uğraşabiliriz.

linux – ip adresinin öğrenilmesi

linux de bir ethernet arayüzünün ip adresinin ifconfig çıktısından inceleyerek bulabiliriz. ancak nokta atışı yapılması gereken zamanlar olabilir.

aşagıdaki örnekte adım adım incelenebilir.

fcicek@ubuntu:~$ ifconfig eth0 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:388668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226787 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:506708018 (506.7 MB)  TX bytes:22826593 (22.8 MB)
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:'
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' 
addr:192.168.126.128
fcicek@ubuntu:~$ ifconfig eth0 | grep 'inet addr:' | awk '{print$2}' | cut -d: -f2
192.168.126.128

linuxte iç ve dış ip adresi değişimlerinin twitter hesabına gönderilmesi

dış dünyaya dinamik bir ip adresi ile çıkıyor ve olası ip değişimlerinden haberdar olmak istiyorsanız elbette bunun yapmanın çok fazla yöntemi var.

bu örnekte dhcp tarafından ip değişimlerinin alğılanarak twitter üzerinden gönderilmesi konusunda ufak bir örnek yapacağız.

twitter için yeniden bir yazılım yapmayacağız.. mevcut linux cli uygulamalarını kullanabiliriz. Bu örnekte tuby ile geliştirilen T yi kullancağız. https://github.com/sferik/t adresinden yazlım hakkında gerekli bilgilendirme alınabilir..

ruby nin installer yazılımını yükleyelim ve sonrasında ise T yazılımını yükleyelim.

fcicek@ubuntu:~$ sudo apt-get install ruby-dev
fcicek@ubuntu:~$ gem install t

twitter üzerinden bu işlem için kullanacağımız bir twitter hesabı oluşturalım ve bu hesap ile http://dev.twitter.com/apps/new adresinden yeni bir uygulama oluşturalım.

ve sonrasında uygulama erişim ayarlarını yönergeleri izleyerek yapalım.

fcicek@ubuntu:~$ t authorize
It looks like you ve already registered an application with Twitter.
To authorize a new account, just follow the steps below:
  1. Sign in to the Twitter Developer site.
  2. Select the application for which you d like to authorize an account.
  3. Copy and paste the consumer key and secret below when prompted.

Press [Enter] to open the Twitter Developer site. 

authorize işlemi tamamlandıktan sonra

fcicek@ubuntu:~$ t account

fcicek@ubuntu:~$ t whoami

ile hesap kontrollerini gerçekleştirelim. ve sonrasında test için mesaj gönderelim

fcicek@ubuntu:~$ t dm ferhatcicek test
Direct Message sent from @fcicekcli to @ferhatcicek.

twitterin istemci yazılımı ile ilgili kısımları tamamladıktan sonra en önemli kısıma geldi. dhcp nin olduğu bölümü ögrendikten sonra dhclient.conf konfigürasyon dosyası içinde gerekli düzenlemeleri yapalım.

fcicek@ubuntu:~$ whereis dhcp
dhcp: /etc/dhcp

dhclient.conf dosyası /etc/dhcp/ dizini altında yer almaktadır. konfigürasyon dosyası içerisinde dhclient-script dosyasının aktif edilmesi gerekmektedir. (dizin yapısı ile ilgili sorun olabilir. )

fcicek@ubuntu:/etc/dhcp$ whereis dhclient-script
dhclient-script: /sbin/dhclient-script /usr/share/man/man8/dhclient-script.8.gz

dosyanın doğru yerini ögrendikten sonra dhclient.conf dosyası içinde

fcicek@ubuntu:/etc/dhcp$ vi dhclient.conf 

script "/sbin/dhclient-script";

gerekli düzenlemeyi tamamlayalım ve bir sonraki adıma geçelim.

fcicek@ubuntu:/etc/dhcp$ ls
dhclient.conf  dhclient-enter-hooks.d  dhclient-exit-hooks.d

dhclient-enter-hooks.d dizini içine çalışacak olan scriptimiz yarattığınız zaman olay tamamlanmıştır..

vi tt

PRIVATE_IP=$(ifconfig |grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }')
PUBLIC_IP=$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)

/usr/local/bin/t   dm @ferhatcicek "$PRIVATE_IP \n ip: $PUBLIC_IP"

linuxte komut satırından gerçek ip adresinin ögrenilmesi

linuxte shell script yazarken veya komut satırın dayken gerçek ip adresi (extarnal ip) bilgisine ihtiyaç duyabilirsiniz. bunun için farklı yöntemler vardır. temel olarak internette, size sizin bağlantı kurduğunuz ip adresini geri gönderecek bir servisin olmasıdır. bu servisler http, telnet, ssh veya başka bir servis olabilir. bunlardan bir kaçına hızlıca göz atalım

çok fazla bilinen bir çok sitenin bu işler için hazırlanmış api leri v.b. mevcuttur.

CURL ve WGET ile

fcicek@ubuntu:~$ curl bot.whatismyipaddress.com
78.168.67.209
fcicek@ubuntu:~$ wget http://smart-ip.net/myip -O - -q ; echo
78.168.67.209

fcicek@ubuntu:~$ curl http://smart-ip.net/myip
78.168.67.209
fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" 
Country: TURKEY (TR)
City: Karaman
IP: 78.168.67.209

fcicek@ubuntu:~$ curl -s "http://api.hostip.info/get_html.php" | grep 'IP:' | awk '{print $2}'
78.168.67.209
fcicek@ubuntu:~$ curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/< .*$//'  
78.168.67.209
fcicek@ubuntu:~$ curl ident.me
78.168.67.209

EXEC

fcicek@ubuntu:~$ exec 3<> /dev/tcp/icanhazip.com/80 && # open connection
>   echo 'GET /' >&3 &&                   # send http 0.9 request
>   read -u 3 && echo $REPLY &&           # read response
>   exec 3>&-                             # close fd
78.168.67.209

LWP-REQUEST

fcicek@ubuntu:~$ lwp-request -o text checkip.dyndns.org | awk '{ print $NF }'
78.168.67.209

DIG

fcicek@ubuntu:~$ dig +short myip.opendns.com @resolver1.opendns.com
78.168.67.209

fcicek@ubuntu:~$ alias wanip='dig +short myip.opendns.com @resolver1.opendns.com'
fcicek@ubuntu:~$ wanip
78.168.67.209
fcicek@ubuntu:~$ dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short
"78.168.67.209"
fcicek@ubuntu:~$ dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
78.168.67.209

NETCAT

fcicek@ubuntu:~$ netcat icanhazip.com 80 < << $'GET / HTTP/1.1\nHost: icanhazip.com\n\n' | tail -n1
78.168.67.209

linux – ethernet arayüzünün mac adresi

linuxte ethernet arayüzü ve ip konusunda bilgi almak için ifconfig komutu kullanılabilir.

gelişmiş komut yorumlayıcısı ile nokta atışıda yapabilirsiniz.. aşağıda adım adım bu durum ve çıktısı incelenebilir…

fcicek@ubuntu:~$ ifconfig -a 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
          inet addr:192.168.126.128  Bcast:192.168.126.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe68:0000/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:387259 errors:0 dropped:0 overruns:0 frame:0
          TX packets:225351 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:506148504 (506.1 MB)  TX bytes:22528155 (22.5 MB)
fcicek@ubuntu:~$ ifconfig -a | grep eth0 
eth0      Link encap:Ethernet  HWaddr 00:0c:29:68:00:00  
fcicek@ubuntu:~$ ifconfig -a | grep eth0 | awk '{print $5}'
00:0c:29:68:00:00
fcicek@ubuntu:~$ ifconfig -a | grep fe80 | awk '{print$3}'
fe80::20c:29ff:fe68:0000/64

apache üzerinde birden fazla alan adı

örnekte site1.com ve site2.com alan adlarna sahip iki sitenin sunucumuz üzerinden yayın yapabilmesi için en basit konfigürasyonun nasıl yapılacağına bakacağız.

apache için öncelikle vhost_alias modülünü aktif edelim.

a2enmod vhost_alias

sitelerin barındırılacağı alanı disk üzerinde belirlememiz bu dizinleri oluşturarak gerekli yetkilendirmeyi yapmamız gerekiyor. alan adlarına ait dosyalar /var/www/sitex.com/public_html olarak barındıracağımızı düşünerek

sudo mkdir -p /var/www/site1.com/public_html
sudo mkdir -p /var/www/site2.com/public_html

sudo chown -R $USER:$USER /var/www/site1.com/public_html
sudo chown -R $USER:$USER /var/www/site2.com/public_html

sudo chmod -R 755 /var/www

gerekli dizinleri ve kullanıcı izinlerini vermiş olduk. şimdi test aşamasında kullanılmak üzere birer adet index.html dosyası oluşturalım. bu en kolay kısmı :)

nano /var/www/site1.com/public_html/index.html

  
    site1
  
  
    

site1.com sitemiz başarılı şekilde çalışmaktadır.

nano /var/www/site2.com/public_html/index.html

  
    site2
  
  
    

site2.com sitemiz başarılı şekilde çalışmaktadır.

gerekli index.html dosyasına oluşturduğumuza göre esas konfigürasyona gelebiliriz.

apachenin sites-available altındaki örnek default konfigürasyonuda sitemiz adına uygun olarak kopyalayalım.

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site1.com.conf

şimdi konfigürasyon dosyamız üzerinde gerekli değişikleri yapalım.

sudo nano /etc/apache2/sites-available/site1.com.conf

olması gereken minimum konfigürasyon aşagıdaki şekilde yapabiliriz.


    ServerAdmin admin@site1.com
    ServerName site1.com
    ServerAlias www.site1.com
    DocumentRoot /var/www/site1.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

şimdi aynı işlemi diğer alanımız içinde yapalım…

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site2.com.conf

sudo nano /etc/apache2/sites-available/site2.com.conf

    ServerAdmin admin@site2.com
    ServerName site2.com
    ServerAlias www.site2.com
    DocumentRoot /var/www/site2.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

şimdi sıra konfigürasyonlarımı aktif etmeye geldi.

sudo a2ensite site1.com.conf
sudo a2ensite site2.com.conf

eğer konfigürasyonumuzda hata yoksa komutları uyguladığımızda

Enabling site site1.com.
To activate the new configuration, you need to run:
  service apache2 reload

şeklinde bir bilgilendirme mesajı alacağız. yönergeyi uygulayarak apache suncumuzu yeniden başlatıyoruz.

sudo service apache2 restart

apache sunucumuzda hata vermez ise yapamız gereken bir tek nokta kaldı. oda hosts dosyasının güncellenmesi. bu işlem sonucunda /etc/apache2/sites-enabled dizini altına konfigürasyon dosyaları kopyalanmış olacaktır.

ferhat@cicek:/etc/apache2/sites-enabled# ls
000-default.conf  site1.com.conf  site2.com.conf
sudo nano /etc/hosts

hosts dosyasının içine alan adlarımıza ait gerekli satırları ekleyerek işlemimizi tamamlıyoruz.

127.0.0.1   localhost
127.0.1.1   ubuntu
127.0.0.1    site1.com
127.0.0.1   site2.com

yukarıda bahsedilen durumun en temek yöntemlerden biri olduğu tekrarlamakta fayda var. farklı modüller ve yapılarla bu işlem uygulanabilir…

apache web server üzerinde kullanıcı dizin yapısını aktifleştirmek

Linux üzerinde Apache kullanıyor ve Linux üzerindeki kullanıcılarınıza bir alan açmak istiyorsanız bu işlem için en kolay yöntem userdir eklentisini aktifleştirmek olacaktır. Bunun ne kadar güvenli ve yönetilebilir olduğu tartışılır ancak en kolay yöntem olduğu kesin.

Gerekli modüllerin ve araçların yüklü olduğundan emin olunmalıdır. Aşağıdaki örnek debian tabanlı bir dağıtım da uygulanmıştır. Dağıtımlara göre dizin yapısı vb fark edebilir.

A2enmod ile userdir modülünü aktifleştirelim.

sudo a2enmod userdir

Modül aktifleştirdikten sonra Apache konfigürasyon dosyaları altında userdir modülü ile ilgili konfigürasyon dosyaları oluşturulmuştur. Bu konfigürasyon dosyası içinde gerekli düzenlemeleri yapılması gerekmektedir.

sudo nano /etc/apache2/mods-enabled/userdir.conf

Temel konfigürasyon dosyası aşağıdaki gibidir. Kullanıcıya açılan dizin ve erişim yetkisi ayarları doğru şekilde ayarlanmalıdır. Yoksa başımıza olmadık işler açabilir.


        UserDir public_html
        UserDir disabled root
 
        
		AllowOverride All
		Options MultiViews Indexes SymLinksIfOwnerMatch
		
			# Apache < = 2.2:
		        Order allow,deny
		        Allow from all
 
		        # Apache >= 2.4:
		        #Require all granted
		
		
			# Apache < = 2.2:
		        Order deny,allow
		        Deny from all
 
			# Apache >= 2.4:
			#Require all denied
		
        


Statik bir alan verecekseniz bu kadar yeterlidir. statik alanmı kaldı diyebilirsiniz. kullanıcıların php kullanmalarını istiyorsanız apachenin php modül konfigürasyon dosyasında gerekli düzenlemeyi yapmanız gerekecektir.

sudo nano /etc/apache2/mods-available/php5.conf

güvenlik gereği kullanıcı dizinlerinde server-side uygulamalar engellenmiş durumdadır. yapılması gereken “php_admin_value engine Off” satırını pasif ederek sunucu yeni konfigürasyonu ile başlatmaktır.


    
	SetHandler application/x-httpd-php
    
    
	SetHandler application/x-httpd-php-source
    
    # To re-enable php in user directories comment the following lines
    # (from  to .) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    
        
    #        php_admin_value engine Off
        
    


sunucumuzu yeniden başlattıktan sonra mevcut kullanıcılar için public_html dizinini oluşturmayı unutmayalım..

sudo service apache2 restart
mkdir /home/$USER/public_html

webmin yönetici şifresi resetlemek

bir hata yaptınız ubuntu üzerine webmin yüklediniz ve yönetici şifresi ile sorun yaşıyorsanız aşağıdaki şekilde yönetici şifrenizi resetleyebilirsiniz.

farklı bir dağıtım kullanıyorsanız dizin yapılarında ufak farklılıklar olabilir…

# /usr/share/webmin/changepass.pl /etc/webmin root "yeni şifreniz"

Sonrasında

https://localhost:10000/

Adresinden yeni sifrenizle erişebilirsiniz

5620 SAM Client

Alcatel 5620 SAM clienti kurmanın-çalıştırmanın birden fazla yöntemi var. eğer sunucunuz standart konfigürasyonla kuruldu ise client dosyalarını sam sunucunuz dan edinebilirsiniz.

ssl kullanmıyorsanız :

http://<sam-sunucu-adresi>:8085/client ,

eğer ssl kullanıyorsanız

https://<sam-sunucu-adresi>:8444/client  

adresini tarayınızın adres çubuğuna yazın. karşınıza aşağıdaki şekilde bir sayfa açılacaktır. buradan install or launch linkine tıklayarak SAM clientini  yükleyebilirsiniz.

linux ve windoz işletim sisteminde çalışabilmektedir.

NN019881

sam çalıştıktan sonra sizi aşağıdaki ekran karşılayacaktır.

NN024077

 

linux işletim sisteminde de çalıştığı için ferhatcicek.com da kendin yer buldu :)

 

kullanmak zorunda kalmayın – android device manager

google in bir süre önce hizmete sunmaya başladığı uygulamalardan bir tanesi daha : Android Device Manager.

bu uygulamayı google yayınlamadan önce google play de alternatif çözümler vardı elbette. ancak yüksek performanslı ve kullanımı kolay olanını görmemiştim.

bu uygulamayı kullanabilmek için ön şart android yüklü bir cihaz ve gps in olması. haa unutmadan tabiki cihazının aktif bir data hattı ve bulunduğu konumda telefonun data hattını kullanılabiliyor olması. (kısaca telefonun google sunucuları ile irtibat halinde olması) bu uygulamayı tüm izinlerini vererek aktif etmeyi unutmayın.

telefonunuzu sık sık bir yerlerde unutuyorsanız oldukça işinize yarayacaktır. Türkiye de en fazla kullanılacağını düşündüğüm yönü ise anne-babaların çocuklarının konumlarını izlemek olacaktır.

uygulama ile yapılabilen temel iki özellik var. cihazın sesi kapalı, kesik vb. olsa bile yüksek sesle çalmasını sağlamak ve google maps ile tümleşik yapısı sayesinde cihazın bulunduğu konumu göstermesi.

https://www.google.com/android/devicemanager

adresinden uygulamayı kullanıyoruz. aşağıda örnek bir ekran görüntüsü mevcut.

google device manager

 

 

Back To Top