setcap cap_net_bind_service=+ep /path/to/program
iptables -I PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 1380
Zgjidhja e @gurax me siper eshte me praktikja ne fakt.Une do e beja me nje menyre tjeter.
Psh une kam nje sistem ku nuk ka webserver. Por nje aplikacion qe me duhet te perdor. Klientet qe lidhen me te kerkojne te lidhen ne tcp-port 80 per te komunikuar, pse-ja s'na intereson (psh per te mos u bllokuar nga firewall te ndryshem. Por ne sistemin ne fjale, aplikacioni nuk eshte i ekzekutuar me te drejta "root" dhe nuk mund te perdore porten 80.
Ajo qe do te beja eshte te konfiguroj aplikacionin te punoje ne nje porte tjeter me te madhe se 1024, psh le te themi 1380.
Me pas, si root, behet nje redireksionim i portes 80 qe eshte jashte mundesive te aplikacionit tone, ne porten 1380 qe eshte porta me te cilen punon aplikacioni.
Redireksionimi me ane te (linux. Nuk di te them per *BSD):
Code:iptables -I PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 1380
Kjo komande duhet patur kujdes qe te aplikohet sa here qe sistemi behet restart.
Kjo kerkonte nje librari qe nuk mund ta instaloj per arsye te ndryshme: libcap2-binMe sa lexova verdalle nuk eshte e keshillueshme per shkaqe sigurie...
Sdq nje "work around" propozohej diku, (Perveç CentOS 3/4/5 mangesi te kapacitetit te filesystems)!
Per te tjerat keshillohej kjo:
Mund ti japesh kapacitetin CAP_NET_BIND_SERVICE programit qe ka nevojen te hape ate porte. Root do i jape lejen file-t qe ekzekutohet (executable). Pastaj "çdo user" mund te beje run executable, dhe do kete te mundur perdorimin e portave nen 1024.
Per ti dhene kapacitetin file-t executable perdoret kjo komande:
Code:setcap cap_net_bind_service=+ep /path/to/program
Zgjidhja e @gurax me siper eshte me praktikja ne fakt.
Ajo qe kerkoja ne fillim eshte qe te lehtesoja usera jo-root te perdornin portat nen 1024.
Aktualisht ne porten 80 kisha Apache dhe po kerkoja te hapja nje porte tip 81 per nje tomcat si jo root.
Sdq zgjidhja ime per tu shtuar ne liste me te @eklipsi dhe @gurax ka te beje me Apache Proxies.
/etc/sysconfig/apache2
- Variable APACHE_MODULES suchen
- “proxy proxy_ajp proxy_http proxy_connect” shtohen modulet e proxy (mund te duhet re-kompilim ose thjesht shtim i tyre, varet sipas ambientit)
- vi /etc/apache2/default-server.conf
- Shtohet dicka si “ProxyPass /aliasname ajp://localhost:8080” ne fund te skedarit me siper
- Apache restart dhe
- GET http://lservername:80/aliasname/
Keto jane 'workarounds' dhe jo zgjidhje tamam. Ngelet prap pyetja, ku percaktohet qe vetem root mund te hape porta nen 1024