본문 바로가기
Tip & Tech/Tech

CentOS 6 방화벽 iptables / CentOS 7 방화벽 firewall

by 나비와꽃기린 2019. 12. 26.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 

CentOS6까지는 방화벽 설정을 위해 iptables 서비스를 재시작하여 방화벽 규칙을 설정했지만

CentOS7부터는 방화벽을 관리하는 데몬인 firewalld를 제공해 더 쉽게 방화벽을 설정할 수 있게 되었다.

 

centos6과 7의 명령어가 iptables, firewall 로 다르기 때문에

일단 버전을 확인하는것이 중요하다.

 

#리눅스 OS 버전 확인방법

#sudo cat /etc/*release*

CentOS release 6.5 (Final) ~ 이런식으로 버전정보 출력됨

 


▶CentOS6기준 Iptables 설정

 

1. iptables 설치

#sudo apt install iptables

 

2. iptables 설정

- 방화벽설정 방법은 iptables 파일을 직접 수정하거나, 쉘에서 명령어를 통해서 설정할 수 있다.

- iptables 파일 위치 : /etc/sysconfig

 

2.1 iptables 쉘 명령어

#-P옵션 : 기본정책을 설정하는 옵션으로 세가지 체인인 INPUT,OUTPUT,FORWARD를 모두 허용함

#sudo iptables -P INPUT ACCEPT

#sudo iptables -P OUTPUT ACCEPT

#sudo iptables -P FORWARD ACCEPT

 

#-F옵션 : 체인의 모든 규칙을 삭제함

#sudo iptables -F

 

#-X옵션 : 세가지 기본정책 INPUT, OUTPUT, FORWARD를 제외한 모든 체인을 삭제함

#sudo iptables -X

 

#기본출력

#iptables -L

 

#상세 네트워크 정보까지 모두 출력

#iptables -nL

 

#적용 순서까지 확인

#iptables -nL --line-numbers

 

#iptables 재시작

#iptables restart

 

2.2 포트별 규칙 생성 및 삭제

기본명령 기능 체인 출발지IP 목적지IP 프로토콜 포트 매칭 동작
iptables -A(추가) INPUT -s -d -p -dport -j ACCEPT
-D(삭제) OUTPUT tcp or udp 0~65535 DROP
-I(삽입) FORWARD icmp   REJECT

 

 2.2.1 규칙예

#외부에서 모든 목적지의 tcp/80 포트로의 접근을 허용

#iptables -A INPUT -p tcp --dport 80 -j ACCEPT

 

#외부 모든 출발지에서 해당ip목적지 서버의 tcp/80 포트 접근을 차단

#iptables -A INPUT -d 123.456.78.90 -p tcp --dport 80 -j DROP

 

#111.111.111.11 출발지에서 222.22.22.222 목적지 서버의 tcp/53 포트의 접근을 허용

#iptables -A INPUT -s 111.111.111.11 -d 222.22.22.222 -p tcp --dport 53 -j ACCEPT

 

#내부 ip 111.111.111.11 출발지에서 222.22.22.222 목적지 서버의 tcp/53 포트의 접근을 허용

#iptables -A OUTPUT -s 111.111.111.11 -d 222.22.22.222 -p tcp --dport 53 -j ACCEPT

 

#111.111.111.11 출발지에서 222.22.22.222 목적지 서버의 udp/514 포트의 접근을 허용

#iptables -A OUTPUT -s 111.111.111.11 -d 222.22.22.222 -p udp --dport 514 -j ACCEPT

 

2.2.2 규칙삭제

# INPUT체인 내부 모든 서버의 tcp/443 허용 정책 삭제

iptables -D INPUT -p --dport 443 -j ACCEPT

 


▶CentOS7기준 Iptables 설정

 

# firewall 상태보기

# firewall-cmd --state

 

# firewall 목록 확인
# firewall-cmd --zone=public --list-all

 

# firewall 특정 포트 방화벽 추가
# firewall-cmd --permanent --zone=public --add-port=8080/tcp

# firewall-cmd --permanent --zone=public --add-port=514/udp

 

# firewall 80~90 멀티 포트대역 방화벽 추가
# firewall-cmd --permanent --zone=public --add-port=80-90/tcp

 

# firewall tcp 80 포트 방화벽 제거
# firewall-cmd --permanent --zone=public --remove-port=80/tcp

 

# 방화벽 목록 갱신
firewall-cmd --reload

 

#방화벽 해제

systemctl stop firewalld