Linux
[CentOS] 6.5 - 방화벽 80 포트 열기.
율토리 촌장
2019. 10. 4. 18:21
율토리에서는,
이제 막 CentOS 6.5 버전에 APM 을 설치를 끝내고, 80 포트를 열어야한다.
( 그래야 서버를 써먹지 !!! )
율토리 마을의 환경은 아래와 같다.
º 클라우드 서버
º CentOS 6.5
º 도메인은 가oo 에서 받았쥐롱. - 귀찮으니까 DNS 서버도 가oo 으로 신청하였다 -
시작하기 전!
CentOS 7.0 부터는 firewall 을 쓰기에, 본 포스트와는 명령어가 다르다.
먼저, 당연~~히 안 열려있지만 확인차 포트 개방 상태를 보자.
[root@lb2401 /]# iptables -nL
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
역시, 80 포트는 열려있지 않다.
♣ 80 포트 개방하기
[root@lb2401 /]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
이렇게 하면 열렸겠지?
♣ vi 에디터로 iptables 설정 보기. ( 직접 수정해서 설정할 수도 있다 )
[root@lb2401 /]# vi /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Oct 2 16:12:21 2019
*nat
:PREROUTING ACCEPT [555:22240]
:POSTROUTING ACCEPT [12:970]
:OUTPUT ACCEPT [12:970]
COMMIT
# Completed on Wed Oct 2 16:12:21 2019
# Generated by iptables-save v1.4.7 on Wed Oct 2 16:12:21 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [76:16260]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Oct 2 16:12:21 2019
자. 여기서 직접 수정하려고 해도, 저 외계어 같은 옵션들을 알아야 설정을 하겠지?
명령어 : -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
형태 : 명령어옵션 체인옵션 매치옵션 프로토콜종류 --dport 80 매치옵션 타겟
그럼 이제, 각 옵션을 알아볼까?
1. 명령어 (Command) 옵션 | |||
-A (--append) | 새로운 규칙 추가 | -L (--list) | 규칙 출력 |
-D (--delete) | 규칙 삭제 | -F (--flush) | chain 으로부터 규칙 전부 삭제. |
-C (--check) | 패킷 테스트 | -Z (--zero) | 모든 chain 의 패킷과 바이트 카운터 값을 0으로 만듦. |
-R (--replace) | 새로운 규칙으로 교체 | -N (--new) | 새로운 chain 생성 |
-I (--insert) | 새로운 규칙 삽입 | -X (--delete-chain) | chain 삭제 |
-F (--policy) | 기본 정책 변경 |
* 촌장이 테스트 해봤을때 -A와 -I는 별 차이가 없는 듯 하다.
2. 체인 (Chain) 옵션 - 아래 패킷들에 대하여 Accept/Reject/Drop 할 것인지를 결정. | |
INPUT | 서버로 들어오는 모든 패킷 |
OUTPUT | 서버에서 발생하여 나가는 모든 패킷 |
FORWARD | 서버가 최종 목적지가 아닌, 통과하는 모든 패킷 |
3. 매치 (Match) 옵션 | |||
-s (--source) | 출발지 IP주소 or 네트워크와의 매칭 | --comment | 커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석 |
-d (--destination) | 목적지 IP 주소 or 네트워크와의 매칭 | -y (--syn) | SYN 패킷을 허용하지 않음. |
-p (-protocol) | 특정 프로토콜과의 매칭 | -f (--fragment) | 두번째 이후의 조각에 대해서 규칙 명시 |
i (--in-interface) | 입력 인터페이스 | -t (--table) | 처리될 테이블 |
-o (--out-interface) | 출력 인터페이스 | -j (--jump) | 규칙에 맞는 패킷을 어떻게 처리할 것인지 명시 |
--state | 연결 상태와의 매칭 | -m (--match) | 특정 모듈과의 매치 |
--string | application 계층 데이터 바이트 순서와의 매칭 |
4. 타겟 (Target) 옵션 | |||
ACCEPT | 패킷 허용 | LOG | 패킷을 syslog에 기록 |
DROP | 패킷 버림 (패킷이 전송된 적이 없던 것처럼) | RETURN | 호출 체인 내에서 패킷 처리를 계속한다. |
REJECT | 패킷을 버리며 응답 패킷 전송 |
후. 오늘은 여기까지...
(촌장 빠이)