Tomcat'i 80 Portunda Çalistirmak

Web uygulamalarini 80 portu uzerinde calistirmak bircok sebepten dolayi gerekli olabilir. Genel olarak eger web sitesi tarzi bir uygulama ise (jsp sayfalari gibi) kullaniciya port yazdirma derdinden kurtulmus olursunuz. domain:8080 veya domain:8443 neredeyse kullanici arayuzu olan sitelerde kullanilmaz. Diger sikinti ise ozellikle benim sikca yasadigim portlarin bloklu olmasi. Ozellikle sirket aglarinda bircok port default olarak bloklu ( ve 8080 bunlardan biri). Eger sirketinize veya kendinize yazdiginiz bir uygulama falan web servislere 8080 portundan baglaniyorsa adam akilli demo bile yapamiyorsunuz. Bazen IT'ye falan istek gonderilip engel kaldiriliyor ama her zaman 8080 portunu actiracak kadar sansli olamayabilirsiniz. Bunlarin yaninda ise DDOS veya diger turlu saldirilar icin ilk bakilacak port 80 portu oldugu icin bu bir sikinti olusturabilir. Cok onemli oldugu soylenemez cunku genelde tum portlari tarayip acik olan portu her turlu kesfediyorlar. Genelde Çin gibi ulkelerden gelen botlar rasgele default portlari tarayip geciyor ona dikkat etmek lazim.

3 adimda Ubuntu (veya debian) uzerinde tomcati 80 portu uzerinde calistirabiliriz.

Ilk olarak server.xml dosyasinin yerini bulalim. Genelde /etc/tomcat/server.xml altinda ama locate komutu ile tam yerini de bulabilirsiniz.

$ locate server.xml
/etc/tomcat7/server.xml

server.xml dosyasini vi ya da nano hangisi uygunsa biriyle acip editlecegiz.

$ sudo nano /etc/tomcat7/server.xml

Alttaki kismi bulup default portu 80 olarak update ediyoruz.

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443" />

Dosyayi kaydedip cikiyoruz ama burada sorun cozulmuyor. Eger Tomcat'i 1023'den asagi bir portta calistirmak istiyorsaniz ozel olarak yetkilendirmeniz gerekiyor cunku bu portlar reserved olarak tanimlanmis. Su anda direk tomcat'i tekrar calistirdiginizda hata verecek ve spesifik olarak "authentication error" tarzi uyarilar verecektir. Tomcat bunu authbind ile basariyor ve normalde kapali halde bulunan authbind'i elle aktive etmeniz gerekiyor.

Yine nano ile  /etc/default/tomcat dosyasini aciyoruz.

$ sudo nano /etc/default/tomcat7

En altta authbind=no yazan kismi  authbind=yes olarak kaydedip cikiyoruz.

# NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.
# (yes/no, default: no)
AUTHBIND=yes

Yukaridaki NOTE kisminda yazan sey onemli.

# NOTE: authbind works only with IPv4.  Do not enable it when using IPv6.

Seklinde bir uyari var ve authbind kullanmak istiyorsaniz IPv6'yi devre disi birakmalisiniz diyor. Cogu sistemde kapali oluyor ama yine de elle tamamen kapatacagiz IPv6'yi.

/etc/sysctl.conf dosyasini aciyoruz.

$ sudo nano /etc/sysctl.conf

Dosyanin sonuna bu uc satiri ekleyip kaydedip cikiyoruz.

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

IPv6'nin tamamen devre disi oldugunu dogrulamak icin alttaki komutu calistiriyoruz.

sudo sysctl -p

ve bunlari ekrani yazacaktir. 

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

En son eger alttaki sonuc olarak 1 donerse IPv6 devre disi demektir. 

$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Simdi direk port 80 uzerinde calistirabiliriz. 

$ sudo service tomcat7 start

catalina.out loglarina bakinca 80 portunda sikintisiz basladigini boyle gorebiliriz.

Mar 21, 2015 10:02:44 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-80"]

simdi direk domain/Services diye erisebiliriz.

Tarih:
Hit: 2492
Yazar: musdawdaf

Taglar: linux ubuntu tomcat port 80 port 8080


Yorumlar


Yorum yapabilmek için üye girişi yapmalısınız.

Yorumlar

MaviEkran tarafından yazıldı. Tarih: 13/Haz/15 00:52
iptables ile port yönlendirme de yapılabilir. Tek satırda iş tamam :D iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080