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
'Tip & Tech > Tech' 카테고리의 다른 글
HTTP 와 HTTPS의 장단점 / 공개키암호화방식 / 인증기관(CA)이란? (0) | 2020.02.24 |
---|---|
해시(Hash)와 암호화(Encryption)의 차이점 / Hash종류 / Hash사용이유 (0) | 2020.01.03 |
자동화 빌드 도구, Gradle 내용 정리 (0) | 2019.12.20 |
SSL 인증서 저장위치 확인 / SSL 인증서 만료일 확인방법 (0) | 2019.11.05 |
UDP로 Syslog 출력하는 방법 (syslog서버설치 및 cloudbees 예제) (0) | 2019.11.01 |