DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Web Hosting, web serveri i operativni sistemi (http://www.devprotalk.com/forumdisplay.php?f=11)
-   -   LAMP stack na CentOS 6 (http://www.devprotalk.com/showthread.php?t=11728)

Nemanja Avramović 24. 11. 2013. 02:27

LAMP stack na CentOS 6
 
1 Prilog(a)
Već par godina imam managed VPS pa rekoh aj' da uzmem jedan unmanaged da probam sve da postavim sam i da vidim kako će da ide :)

Elem, uzeh novi unmanaged VPS i nakačim se na SSH, te instaliram Apache, MySQL i PHP prateći ovo uputstvo, pokrenem httpd i kad odem na http://ip.adresa dobijem samo: The server at ip.adresa is taking too long to respond.

Nisam menjao default podešavanja očekujući neku default Apache welcome stranicu.

U Virtualization panelu piše da je firewall isključen i da je sav saobraćaj dozvoljen. http://www.yougetsignal.com/tools/open-ports/ za port 80 kaže da je zatvoren dok za port 22 kaže da je otvoren, što je i normalno jer se ja kačim na SSH.

Kôd:

[root@server ~]# cat /etc/centos-release
CentOS release 6.4 (Final)
[root@server ~]#

U prilogu je default httpd.conf. Ima neko neki savet? Da pogledam iptables (i kako), ili tako nešto? :S

ivanhoe 24. 11. 2013. 03:09

nisam dugo radio sa centos-om, ali mislim da on isto ima /etc/init.d/httpd skripte, tako da probaj prvo:
Kôd:

/etc/init.d/httpd status
pa vidi sta kaze da li je apache pokrenut (sa /etc/init.d/httpd stop/start/restart kontrolises servis)

Mozes jos i ovo da probas:
Kôd:

ps aux | grep httpd
da vidis koji su sve apache procesi pokrenuti, trebalo bi da bude jedan pod root-om i jos nekoliko kao www-data ili kako se vec zove apache user na centosu.
Kôd:

nestat -an | grep ':80 '
da vidis da li slusa na portu 80.. treba da pise *:80 ili 0.0.0.0:80 ako slusa na svim adresama, jer moguce da slusa samo 127.0.0.1
u /var/log/ su ti svi logovi, pa vidi sta kaze apache, jel se buni na neke greske (za gledanje logova koristis tail, recimo tail -100 neki.log ti prikaze zadnjih 100 linija)

Sorry ako tupim o stvarima koje vec znas, posto ne znam koliko si se petljao sa linuxom
konzolom ranije...

mangia 24. 11. 2013. 04:34

iptables -L -n pa vidi ima li šta po portu 80 da je zatvoreno

Takođe, provjeri da li je uključen selinux

provjeri logove:
/var/log/httpd/error_log i /var/log/httpd/access_log

Nemanja Avramović 24. 11. 2013. 13:48

Hvala na savetima, u Linux konzolu se razumem toliko koliko sam brljao po managed serveru (znam gde stoje ti najkorišćeniji fajlovi za LAMP, znam da pokrenem/restartujem servis, instaliram neki paket itd...), tako da što se konfiguracije samog LAMP okruženja tiče tu ću se snaći već nekako, ali sa ovim stvarima na nižem nivou nisam imao gotovo nikakvog iskustva (osim nešto malo na faksu).

Evo i rezultata... Apache je podignut:

Kôd:

[root@server ~]# /etc/init.d/httpd status
httpd (pid  5832) is running...

Kôd:

[root@server ~]# ps aux | grep httpd
root      5832  0.0  0.2 299848 10780 ?        Ss  01:29  0:02 /usr/sbin/httpd
apache    5834  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5835  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5836  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5837  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5838  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5839  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5840  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
apache    5841  0.0  0.1 299848  5836 ?        S    01:29  0:00 /usr/sbin/httpd
root    30256  0.0  0.0 103244  800 pts/1    S+  12:19  0:00 grep httpd

Apache sluša na svim adresama na portu 80:

Kôd:

[root@server ~]# netstat -an | grep ':80 '
tcp        0      0 :::80                      :::*                        LISTEN

U iptables se ne razumem puno, radili smo na faksu pre par godina ali nikad se posle nisam susretao sa njima pa ne znam šta je šta, ali mi se čini kao da nema ništa eksplicitno podešeno da blokira port 80

Kôd:

[root@server ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target    prot opt source              destination
ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0          state RELATED,ESTABLISHED
ACCEPT    icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT    all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT    tcp  --  0.0.0.0/0            0.0.0.0/0          state NEW tcp dpt:22
REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target    prot opt source              destination
REJECT    all  --  0.0.0.0/0            0.0.0.0/0          reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination

Izgleda da je aktiviran taj SELinux, evo šta ima u Apache error logu:
Kôd:

[Sun Nov 24 12:26:33 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Sun Nov 24 12:26:33 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Nov 24 12:26:33 2013] [notice] Digest: generating secret for digest authentication ...
[Sun Nov 24 12:26:33 2013] [notice] Digest: done
[Sun Nov 24 12:26:33 2013] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations

I na kraju, kad uradim wget iz konzole, ovako:

Kôd:

wget -qO- http://localhost | less
Dobijem kao odgovor "Hello world!", što je i sadržaj fajla /var/www/html/index.html

Dakle, server je aktivan i sluša na portu 80, samo ne mogu da mu priđem spolja. Da li je uzrok tome SElinux i šta da mu radim? :)

mangia 24. 11. 2013. 14:13

Otvori /etc/sysconfig/selinux i umjesto enforcing upisi disabled. Snimi izmjene i reboot-aj server

Kasnije ako imaš vremena možeš praviti neke police i koješta ali čisto da provjeriš da li je do toga...

Nemanja Avramović 24. 11. 2013. 14:52

Uradio sam to, pa reboot, ponovo pokrenuo httpd, ali i dalje neće :S

Kôd:

[root@server ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#    enforcing - SELinux security policy is enforced.
#    permissive - SELinux prints warnings instead of enforcing.
#    disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#    targeted - Targeted processes are protected,
#    mls - Multi Level Security protection.
SELINUXTYPE=targeted

Bilo je SELINUX=permissive, ne enforcing.

U nastavku...

Kôd:

[root@server ~]# cat /dev/null > /var/log/httpd/error_log
[root@server ~]# cat /var/log/httpd/error_log
[root@server ~]# /etc/init.d/httpd status
httpd is stopped
[root@server ~]# /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]
[root@server ~]# cat /var/log/httpd/error_log
[Sun Nov 24 13:48:29 2013] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Sun Nov 24 13:48:29 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Sun Nov 24 13:48:29 2013] [notice] Digest: generating secret for digest authentication ...
[Sun Nov 24 13:48:29 2013] [notice] Digest: done
[Sun Nov 24 13:48:30 2013] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations

I dalje mi u error_log javlja da je SELinux aktivan :S

mangia 24. 11. 2013. 15:07

Prvi put vidim da se ne može tako isključiti selinux :)

Koji je javni IP servera ?

Šta dobiješ kada sa svog računara uradiš
telnet IPSERVERA 80

Trebao bi da dobiješ crn ekran (windows) ili ovako nešto ako koristiš linux
telnet google.com 80
Trying 173.194.112.166...
Connected to google.com.
Escape character is '^]'.

Nemanja Avramović 24. 11. 2013. 16:08

Uspeo sam da isključim SELinux, ali u /etc/selinux/config

Posle reboot-a:

Kôd:

[root@server ~]# /etc/init.d/httpd start
Starting httpd:                                            [  OK  ]
[root@server ~]# sestatus
SELinux status:                disabled
[root@server ~]# ps -eZ | grep httpd
-                                1948 ?        00:00:00 httpd
-                                1950 ?        00:00:00 httpd
-                                1951 ?        00:00:00 httpd
-                                1952 ?        00:00:00 httpd
-                                1953 ?        00:00:00 httpd
-                                1954 ?        00:00:00 httpd
-                                1955 ?        00:00:00 httpd
-                                1956 ?        00:00:00 httpd
-                                1957 ?        00:00:00 httpd

Ovo mi je sad baš čudno. Naravno, i dalje je nedostupan spolja. error_log NE javlja da je SELinux aktivan, tako da nije do toga. Ili možda treba da ga aktiviram pa ovako nešto da uradim? (mada kod mene ne postoji fajl /etc/selinux/targeted/booleans koji se tu pominje)

edit: IP je 82.192.74.198 i nedostupan je preko telneta:

Kôd:

C:\Users\avram>telnet 82.192.74.198 80
Connecting To 82.192.74.198...Could not open connection to the host, on port 80:
 Connect failed


mangia 24. 11. 2013. 17:13

Nema šta. Port 80 nije dostupan na toj IP adresi.

Ako u access_log nema ništa, onda te konekcije ne dolaze do njega po portu 80...

Pokušaj zamijeniti port u httpd.conf-u pa vidi da li je dostupan iz vana po tom drugom portu.

Šta imaš još od fajlova u /etc/httpd/conf.d/ ?

ivanhoe 24. 11. 2013. 19:21

probaj ti ipak da privremeno iskljucis iptables, da bi bio siguran da nije do firewalla

# /etc/init.d/iptables save
# /etc/init.d/iptables stop

EDIT: e i probaj prvo da kucas iptables -L -v da vidimo tacno sta radi onaj prvi ACCEPT all (mislim da je on samo za localhost interfejs)


Vreme je GMT +2. Trenutno vreme je 01:22.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.