Ferhat Çiçek

9Mar/150

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
Etiketler: , , , , , , , , , Yorum yok
15Şub/150

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"
14Şub/150

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
9Şub/150

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
Etiketler: , , , , , , , Yorum yok
6Şub/150

Leopardboard

leopardboard

The Leopardboard is a full featured, ultra low cost, small form factor system that includes the DM355 processor board and a VGA camera board to provide VGA resolution capture. Linux distros supported

http://designsomething.org/leopardboard/default.aspx

 

Leopardboard 368
DM368 Highlights

  • High-Performance Digital Media System-on-Chip (DMSoC)
  • 432-MHz ARM926EJ-S Clock Rate
  • Two Video Image Co-processors (HDVICP, MJCP) Engines
  • Supports a Range of Encode, Decode and Video Quality Operations
  • Video Processing Subsystem
    • HW Face Detect Engine
    • Resize Engine from 1/16x to 8x
    • 16-Bit Parallel AFE (Analog Front-End) Interface Up to 120 MHz
    • 4:2:2 (8-/16-bit) Interface
    • 8-/16-bit YCC and Up to 24-Bit RGB888 Digital Output
    • 3 DACs for HD Analog Video Output
    • Hardware On-Screen Display (OSD)
  • Capable of 1080p 30fps H.264 video processing
  • Peripherals include EMAC, USB 2.0 OTG, DDR2/NAND, 5 SPIs, 2 UARTs, 2 MMC/SD/SDIO, Key Scan
  • 8 Different Boot Modes and Configurable Power-Saving Modes
  • Pin-to-pin and software compatible with DM365
  • Extended temperature (-40°C - 85°C) available
  • 3.3-V and 1.8-V I/O, 1.35-V Core
  • 338-Pin Ball Grid Array at 65nm Process Technology

Leopardboard 368 Capabilities

  • Including all Leopardboard 365 capabilities
  • 1080p video encoding & decoding

 

Leopardboard 365
DM365 Highlights

  • ARM926EJ-S Core: 216, 270, 300MHz
  • Enhanced Videp Processing Subsystem with Face Detection module
  • Video Processing Subsystem (VPSS)
  • HD Video Codecs: H.264, MPEG4, MJPEG, WMV9/VC1, MPEG2
  • Audio Codecs: MP3, WMA, AAC, Audio Echo Canceler (AEC)

Leopardboard 365 Capabilities

  • 10/100 Ethernet Port
  • USB 2.0 (can be used to power the board or as expansion)
  • JTAG and Serial ports for debugging
  • SD memory card support (also supports SDIO)
  • Stereo audio In/Out
  • Expansion connector for customer add-on feature
  • Composite TV/Component HD TV Output
  • LCD/DVI Interface
  • All camera boards for Leopard board can be used with Leopardboard 365
  • Face detection module is available
  • Royalty-free open source 2A functions

 

Leopardboard 355
DM355 Highlights

  • High-performance Digital Media System on Chip
  • ARM926EJ-S core
  • Video Processing Subsystem (VPSS)
  • DM355 combines high performance MPEG4 HD (720p) codecs and JPEG codecs up to 50M pixels per second, high quality, and low power consumption at a very low price point.
  • Seamless interface to most additional external devices required for a complete digital camera implementation

Leopardboard 355 Capabilities

  • 10/100 Ethernet Port
  • USB 2.0 (can be used to power the board or as expansion)
  • JTAG and Serial ports for debugging
  • SD memory card support (also supports SDIO)
  • Stereo audio In/Out
  • Expansion connector for customer add-on feature
  • Composite TV Output
  • LCD/DVI Interface
  • Support 720p at 30pfs
  • VGA Camera board (included)
  • Support wide range of video resolutions from VGA, 1.3M, 2M, 3M to 5 Mega-pixel CMOS Sensors (High resolution camera boards available seperately)
  • Royalty-free open source 2A functions
2Şub/150

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
<html>
  <head>
    <title>site1</title>
  </head>
  <body>
    <h1>site1.com sitemiz başarılı şekilde çalışmaktadır.</h1>
  </body>
</html>
nano /var/www/site2.com/public_html/index.html
<html>
  <head>
    <title>site2</title>
  </head>
  <body>
    <h1>site2.com sitemiz başarılı şekilde çalışmaktadır.</h1>
  </body>
</html>

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.

<virtualhost *:80>
    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
</virtualhost>

ş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
<virtualhost *:80>
    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
</virtualhost>

ş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...

31Oca/150

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.

<ifmodule mod_userdir.c>
        UserDir public_html
        UserDir disabled root
 
        <directory /home/*/public_html>
		AllowOverride All
		Options MultiViews Indexes SymLinksIfOwnerMatch
		<limit GET POST OPTIONS>
			# Apache < = 2.2:
		        Order allow,deny
		        Allow from all
 
		        # Apache >= 2.4:
		        #Require all granted
		</limit>
		<limitexcept GET POST OPTIONS>
			# Apache < = 2.2:
		        Order deny,allow
		        Deny from all
 
			# Apache >= 2.4:
			#Require all denied
		</limitexcept>
        </directory>
</ifmodule>

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.

<ifmodule mod_php5.c>
    <filesmatch "\.ph(p3?|tml)$">
	SetHandler application/x-httpd-php
    </filesmatch>
    <filesmatch "\.phps$">
	SetHandler application/x-httpd-php-source
    </filesmatch>
    # To re-enable php in user directories comment the following lines
    # (from </ifmodule><ifmodule ...> to </ifmodule>.) Do NOT set it to On as it
    # prevents .htaccess files from disabling it.
    <ifmodule mod_userdir.c>
        <directory /home/*/public_html>
    #        php_admin_value engine Off
        </directory>
    </ifmodule>

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
28Oca/150

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