CentOS 6.5에서 열린 포트 80


14

가상 머신의 CentOS 6.5에서 포트 80을 열려고하는데 데스크탑 브라우저에서 아파치에 액세스 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

위의 스크린 샷을 보면 .... http://www.cyberciti.biz/faq/linux-iptables-firewall-open-port- 에 표시된 것처럼 파란색 화살표 앞에 줄을 추가했습니다 . 80 / 이제 브라우저에서 IP 주소를 입력 할 때 아파치 테스트 페이지가 표시되지만 iptables를 다시 시작할 때 CentOS가 새 규칙을 적용하려고하면 "FAILED"가 표시됩니다.

누구든지 이것에 대한 해결책을 알고 있습니까? 아니면 실패를 무시해야합니까?

답변:


28

규칙을 수동으로 입력하는 대신 iptables규칙을 해당 체인에 추가 한 다음 저장할 수 있습니다. 이렇게하면 규칙을 파일에 추가하지 않고 규칙을 실시간으로 디버깅하여 규칙이 올바른지 확인할 수 있습니다.

포트 80을 열려면 다음과 같이하십시오.

$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save

마지막 명령은 추가 된 규칙을 저장합니다. 이것이 웹 트래픽의 포트를 여는 데 사용하는 규칙입니다.

규칙이 문제를 일으키는 이유

사용하려는 규칙을 발견 한 경우 :

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

"RH-Firewall-1-INPUT"이라는 체인이 있습니다. 이 체인이 없거나 체인에서이 체인으로 연결되는 링크가 없으면 INPUT이 규칙에 도달 할 수 없습니다. 이 규칙은 다음과 같습니다.

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

또는 INPUT체인 RH-Firewall-1-INPUT이 다음과 같은 규칙 으로이 체인에 연결되어야 합니다.

$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

참고 : 이 명령으로 어떤 체인이 있는지 확인할 수 있습니다.

$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

또한 기존 연결도 허용되도록 상태를 수정해야 할 수도 있습니다.

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

또한 -A스위치 를 사용할 때 규칙을 chain에 추가합니다 INPUT. 이 규칙의 도달을 차단 및 / 또는 방해하는 다른 규칙이 있기 전에는 실행되지 않습니다. 따라서 다음과 같이 추가하는 대신 삽입하여 맨 위로 이동시킬 수 있습니다.

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

GUI 사용

방화벽은 복잡한 짐승 일 수 있습니다. 따라서 대신 TUI를 사용해보십시오 (TUI는 터미널의 GUI입니다).

$ sudo system-config-firewall-tui

그런 다음 iptables규칙을 설정하는 다양한 화면을 진행할 수 있습니다 .

            ss # 1

            ss # 2

참고 문헌


마지막 규칙은 내 iptables 파일에서 이전의 모든 규칙을 삭제하고 위의 규칙 만 추가했습니다 (sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT). 이제 더 이상 브라우저에서 아파치 페이지에 액세스 할 수 없습니다.
Erik van de Ven

1
@ErikVandeVen-죄송합니다. 명확하지 않았습니다. 다른 규칙은 동일한 방식으로 추가하여 저장해야하거나 (샘 시간에) 저장하거나 파일로 이동하여 /etc/sysconfig/iptables추가 할 수 있습니다. 원본 항목은이 파일에 있어야합니다 /etc/sysconfig/iptables.save.
slm

감사합니다. iptables.save를 복사하여 iptables를 복원 할 수있었습니다. 그러나 여전히 실패없이 규칙을 추가 할 수 없었고 동시에 브라우저 내에서 아파치 테스트 페이지를 열 수 없었습니다. 먼저 riclags가 게시 한 튜토리얼을 살펴 보겠습니다. :)
Erik van de Ven

1
남자, 나는 왜이 답변이 아직 싱글을 받았는지 전혀 알지 못했습니다. 훌륭한 상세 답변. 천의 감사와 같은 것을 고려하십시오.
Samiron

1
그 방화벽 GUI는 신이 보낸 것입니다.
매트 플레처

0

최근 가상 웹 서버로 사용하기 위해 같은 이유로 CentOS 6.5를 가상 머신으로 설치했습니다. 어쨌든, 나는 CentOS 위키 에서이 매우 상세한 방법을 따랐습니다 . 그런 다음 @slm의 답변에 따라 포트 80을 추가하고을 사용하여 저장했습니다 sudo /etc/init.d/iptables save.

iptables -L -v 이 출력이 있습니다 :

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination

0

방화벽 설정을 편집하고 싶지만에 익숙 하지 않은 경우 X 서버가없는 경우이 도구 iptables를 사용 하여 GUI 도구 인을 사용하는 것이 좋습니다.system-config-firewall-tuisystem-config-firewall

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.