본문 바로가기

개발관련/서버

centos tcp_socket

서버를 재부팅 하고 아파치를 재시작하니 웹서비스가 시작을 안한다.


머라고 주저리주저리 에러로그를 보여주는데.


[root@localhost ~]# systemctl start httpd.service

Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalc                                                                                      tl -xn' for details.



음. 이건먼가?


내용을 자세히 보기위해 


[root@localhost ~]# journalctl -xn;

-- Logs begin at 목 2015-02-05 01:09:46 KST, end at 수 2015-02-04 16:25:01 KST. --
 2월 04 16:24:24 localhost.localdomain setroubleshoot[3507]: load_plugins() plugins.xen_image previously imported
 2월 04 16:24:24 localhost.localdomain python[3507]: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket .

                                                      *****  Plugin catchall (100. confidence) suggests   **************************

                                                      If you believe that httpd should be allowed name_bind access on the  tcp_socket by default.
                                                      Then you should report this as a bug.
                                                      You can generate a local policy module to allow this access.
                                                      Do
                                                      allow this access for now by executing:
                                                      # grep httpd /var/log/audit/audit.log | audit2allow -M mypol
                                                      # semodule -i mypol.pp

 2월 04 16:24:28 localhost.localdomain fprintd[3459]: ** Message: No devices in use, exit
 2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: received signal=14
 2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: KeyboardInterrupt in RunFaultServer
 2월 04 16:24:34 localhost.localdomain setroubleshoot[3507]: writing database (/var/lib/setroubleshoot/setroubleshoot_database.xml) modified_count=2
 2월 04 16:24:34 localhost.localdomain dbus-daemon[795]: 'list' object has no attribute 'split'
 2월 04 16:24:45 localhost.localdomain systemd[1]: Starting Cleanup of Temporary Directories...
-- Subject: Unit systemd-tmpfiles-clean.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has begun starting up.
 2월 04 16:24:45 localhost.localdomain systemd[1]: Started Cleanup of Temporary Directories.
-- Subject: Unit systemd-tmpfiles-clean.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit systemd-tmpfiles-clean.service has finished starting up.
--
-- The start-up result is done.


서버는 주저리 주저리 말을 한다.

내용을 살펴보니 방화벽이 멀 막는단다.

SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket .

대충 보니 통신포트가 문제인거 같은데 


80, 8080, 8081, 8082 4개의 포트를 웹으로 쓰다보니 문제인가 해서 80, 8080 만 남기고 시작을 하니 된다. 


다시 8081을 추가하고 재시작 하면 똑같은 에러가 뜬다.


문제는 알았다. 센트에서 특정포트만 웹을 사용하게 만든것이다.


이제부터 구글링시작한다.


https://lkubaski.wordpress.com/2012/10/17/solving-the-permission-denied-make_sock-could-not-bind-to-address-issue-when-starting-apache-on-linux/


비슷한 내용이다.


죽 읽어보니 보안상 통신포트를 몇개만 열어놓는것 같다.


강제로 하는 방법이 쉽다고 하니 강제로 해보자.


[root@localhost conf]# getenforce

Enforcing

[root@localhost conf]# sudo setenforce 0

[root@localhost conf]# getenforce

Permissive

[root@localhost conf]# systemctl restart httpd.service


웹서버가 실행한다.


제일아래에 있는 semanage를 사용해서 아에 포트를 추가해본다.


http://docs.fedoraproject.org/en-US/Fedora/13/html/Managing_Confined_Services/chap-Managing_Confined_Services-The_Apache_HTTP_Server.html


링크를 따라가본다.


semanage를 사용해서 12345를 예를 들어 추가하는것이다.


[root@localhost conf]# semanage port -a -t http_port_t -p tcp 8081

ValueError: 포트 tcp/8081가 이미 지정되어 있습니다

[root@localhost conf]# semanage port -a -t http_port_t -p tcp 8082

ValueError: 포트 tcp/8082가 이미 지정되어 있습니다


포트가 추가됐는지 다시 확인한다.

[root@localhost conf]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989


음. 추가가 안돼어있다. ㅡ.ㅡ;; 

퇴근시간이 다가와서 우선 켜진것만 남겨놓고 나머지는 담에 또 에러가 생기면 해봐야겠다.


'개발관련 > 서버' 카테고리의 다른 글

우분투 apache www-data  (1) 2015.03.05
아마존클라우드 우분투  (0) 2015.03.05
centos7 apm설치  (0) 2014.11.09
국내 php 무료호스팅 또 다른곳 - 닷홈  (0) 2013.09.28
무료호스팅 업체-우비  (3) 2013.09.13