Düzenleme (24.10.2016): Gelen sorular üzerine; birden fazla farklı ağın tek raspberry’ye kaydedilmesi ve Raspberry’nin WiFi IP adresinin öğrenilmesi konuları en alta eklendi.
Raspberry Pi 3 ile beraber kablosuz ağ (WiFi) özelliği de geliyor. Grafik ekranda bağlantı yapmak kolay zaten ancak konsolda biraz uğraşmak gerekebiliyor. Aşağıdaki uygulamalar hem Raspberry 3’te hem de Ubuntu gibi diğer dağıtımlarda uygulanabilir.
Kablosuz profilini yapılandıralım
/etc/wpa_supplicant/wpa_supplicant.conf dosyasının içeriğini aşağıdaki gibi düzenleyelim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
network={ ssid="eduroam" scan_ssid=1 key_mgmt=WPA-EAP eap=PEAP phase2="auth=MSCHAP" ################################################## ### ALTTAKi 3 SATIR, KiSiYE ÖZELDiR ### # Ogrenciler TC_No@bilecik.. seklinde yazmalidir # ################################################## anonymous_identity="hesap_ismi@bilecik.edu.tr" identity="hesap_ismi@bilecik.edu.tr" password="******" } |
Kablosuz interface (wlan0) yapılandırmasını yapalım
/etc/network/interfaces dosyasındaki wlan0 ile ilgili satırlar şu şekilde olmalıdır:
1 2 3 4 |
auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf |
Bağlantı ve testleri yapalım
Önce ağ servisini yeniden başlatalım: sudo /etc/init.d/networking restart
ifconfig wlan0 komutu ile, wlan0 ağının IP alıp alamadığını kontrol edelim:
iwconfig komutu ile, hangi kablosuz ağa bağlandığımızı kontrol edelim:
Eğer bu aşamaya kadar tamam ise, artık eduroam IP adresi üzerinden de cihaza SSH ile bağlanabiliriz.
Raspberry’ye birden fazla WiFi (SSID) profili tanıtılması
/etc/wpa_supplicant/wpa_supplicant.conf dosyasına bir blok daha eklememiz gerekiyor. Bu durumda, ağlardan hangisi aktif ise otomatik olarak ona bağlanacaktır. Satırların hepsinin ne işe yaradığını bilmiyorum, netten bulduk, denedik (Teşekkürler Esra) ve çalıştı. Bir tek priority kısmını belirteyim. Birden fazla tanımlı ağın kapsama alanında isek priority değeri yüksek olan önceliklidir. Dosyaya eklenecek olan örnek blok şöyle:
1 2 3 4 5 6 7 8 9 10 |
network={ ssid="KABLOSUZ_AĞ_İSMİ" scan_ssid=1 key_mgmt=WPA-PSK psk="KABLOSUZ_AĞ_PAROLASI" proto=RSN pairwise=CCMP auth_alg=OPEN priority=50 } |
Ağdaki Raspberry’nin IP adresini nasıl bulacağız?
Raspberry’nin üzerinde ekran yoksa, kablosuz ağa bağlandığını belki led’lerden anlayabilirsiniz ama peki hangi IP adresi aldığını nasıl öğreneceğiz? Bu açıklamaya geçmeden önce güvenlik açısından kritik olan şu bilgilendirmeyi yapayım:
Önemli güvenlik uyarısı
Raspberry’yi herkese açık olan bir WiFi (ya da kablolu) ağa bağladığınızda, standart kullanıcı adı ve parola ile herkes cihazınıza SSH üzerinden bağlanabilir. Bu durumda mutlaka şu iki madde gözden geçirilmelidir:
- Raspberry’nin kullanıcı parolası mutlaka değiştirilmelidir. (İlgili komut: passwd )
- Raspberry’nin SSH portu da değiştirilse iyi olur. TCP-22’yi herkes biliyor sonuçta. Port taramasında görülmesin en azından. Bunun için, /etc/ssh/sshd_config dosyasındaki Port 22 satırındaki 22 yerine istenen herhangi bir port numarası (mesela 54, Sakarya’nın plakası) yazılabilir. Sonra da sudo service ssh restart komutu ile SSH servisi yeniden başlatılmalıdır.
Raspberry’nin IP adresini bulalım
Eğer Raspberry ile aynı ağda isek (mesela iki cihaz da eduroam’a bağlı iken), en mantıklı yöntem port taramasıdır. Raspberry’ye verdiğimiz SSH port numarasını bağlı olduğumuz ağ içerisinde taratabiliriz. 1 dakikayı geçmeden cihazı bulacaktır diye düşünüyorum. Port taraması yaparken TCP & UDP 1-65535 arası tüm portları taramamaya, sadece bize lazım olan portu (mesela 54) tüm ağda taramaya dikkat etmeliyiz.
Örnek port taraması çıktısı aşağıda verilmiştir. /24 büyüklüğünde (254 host) bir ağı 1 saniyede tarıyor. Örnek komut ve çıktı şöyle:
1 2 3 4 5 6 7 |
murat@ozalp:~$ nmap -n -sn -PA22 -oG - 10.9.9.0/24 # Nmap 7.01 scan initiated Mon Oct 24 10:39:22 2016 as: nmap -n -sn -PA22 -oG - 10.9.9.0/24 Host: 10.9.9.1 () Status: Up Host: 10.9.9.3 () Status: Up ... ... # Nmap done at Mon Oct 24 10:39:23 2016 -- 256 IP addresses (** hosts up) scanned in 1.01 seconds |
Raspberry uzakta biryerde bir ağda ise port taraması yapamayız. Bu durumda Raspberry üzerinden dışarıdaki bir sisteme düzenli aralıklarla ( crontab vasıtasıyla) bağlantı (http, ismp, ssh, ftp, vb.) yapıp bu isteklerin log’lanmasını sağlayabiliriz. Bunun için internet üzerinde bir yerde ortak bir sunucu erişimi olmalıdır.
Ya da belki; Google talk, Skype, ICQ, vb. bir uygulama kurup hem Raspberry’den hem de PC’nizden buna bağlanarak “contact list” üzerinden karşıdaki kişinin IP adresini görebilirsiniz. Denemedim, bilmiyorum.
Eğer elimde portscan yapacak bilgisayarım yoksa, Raspberry üzerine bir LCD ekran takıp IP adresini sürekli olarak orada yazdırabiliriz. Ucuz ve pratik olur. Örnek için tıklayınız: http://www.instructables.com/id/How-a-headless-Raspberry-Pi-can-tell-you-its-IP-ad/
Şimdilik bu kadar.
Yorumu formunu geç ↓
Fethi Candan
24 Ekim 2016, 08:50 (UTC 2) Bu yoruma bağlantı
Hocam her zamanki gibi çözümü sizde buldum :) Mezun oldum ama hala takipteyim :) F.C.
Murat Özalp
24 Ekim 2016, 09:03 (UTC 2) Bu yoruma bağlantı
Teşekkür ederim :)
Fethi Candan
24 Ekim 2016, 08:57 (UTC 2) Bu yoruma bağlantı
Sorumu ayrı yorum olarak yazayım dedim, Hocam Eduroam ayarlarını yaptık diyelim. Normalde win kullanıcıları için Advanced Port Scanner Linux kullanıcıları için sanırım arp -a yöntemi ile IP adreslerini listeliyorduk. Peki Eduroam’A bağladık ve sistem çalışıyor diyelim. Nasıl bir SSH üzerinden bağlantı kuracağız? Sonuçta artık Eduroama bağlı ve yeni bir IP ismi var? Nasıl bunu ulacağız? Kampüste tek raspi ve ben bağlanmıyorum sonuçta? F.C.
Murat Özalp
24 Ekim 2016, 09:07 (UTC 2) Bu yoruma bağlantı
Aklıma gelen birkaç tane çözüm var: 1) Network içerisinde SSH (TCP-22) portscan. Bilgisayardan da eduroam’a bağlanınca ikisi aynı ağda olmuş oluyor. Ancak bu tarz bir iş yapılacaksa, şunları da belrtmek lazım. Raspberry’nin parolasını kesinlikle değiştirmelidir. Çünkü herkes bağlanabilir. Ayrıca mümkünse SSH portu da değiştirilebilir. Bu sayede farklı bir TCP port taranacağından, bulmak daha kolay olur. 2) Raspberry ile aynı ağda değilsek ne yapacağız? Bu yöntem için sabit açık olan bir sunucuya ihtiyaç var. Raspberry’nin crontab’ına, dakikada 1 kez bir yerden bir istek (http, icmp, ssh, vb.) yapması istenir. Sunucuda bunların log’u tutulup bakılabilir. 3) Raspberry üzerine bir LCD ekran bağlayıp IP adresini orada yazdırmak 4) HDMI ekran bağlamak :P
Fethi Candan
24 Ekim 2016, 14:51 (UTC 2) Bu yoruma bağlantı
Şimdi İTÜ BİDB ile görüştüm bu tarz işlem için sadece ubuntu fedora ve pardus üzerine destek vermişler. Benimde planım yazınızda olan gibi yapmak. önce Certificate onaylaması ardından Console üzerinden yeniden wlan0 yapılandırması. Yarın deneyeceğim hocam eğer çalışırsa size de bilgi veririm :)