Iptables 란?
iptables는 리눅스에서 방화벽을 설정하는 도구입니다.
iptables는 커널상에서 패킷필터링 기능을 사용자 공간에서 체인 및 규칙들을 구성할 수 있게 합니다.
패킷필터링이란?
패킷의 헤더 정보를 보고 그 전체 패킷의 허용유무를 결정하는 것을 말합니다.
일반적으로 패킷은 헤더와 데이터를 포함합니다.
헤더의 필터링 정보인 아래의 옵션등을 갖고 있으며 데이터는 각각의 전송 데이터가 들어갑니다.
특정 조건에 해당하는 패킷에 대해 허용(ACCEPT)과 차단(DROP) 등을 설정 할 수 있습니다.
- 출발지 IP:PORT
- 도착지 IP:PORT
- checksum
- 프로토콜
◎ iptables 를 설치하고 설정하는 방법을 알아보도록 하겠습니다.
iptables 설치 확인
rpm -qa | grep iptables
iptables 설치
yum -y install iptables
설치 상태 확인
chkconfig –list
시작프로그램 등록
chkconfig iptables on
iptables 규칙 확인
iptable -L
1회성 iptables 추가
iptables -I INPUT 1 -p tcp --dport 9200 -j ACCEPT
iptables -I OUTPUT 1 -p tcp --dport 9200 -j ACCEPT
service iptables save
/etc/init.d/iptables restart
iptables 설정
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9202 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
/etc/init.d/iptables start
/etc/init.d/iptables stop
샘플 iptables (vi /etc/sysconfig/iptables)
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT // 새로운 연결 기존 연결 모두 허용
-A INPUT -p icmp -j ACCEPT // 핑 허용
-A INPUT -i lo -j ACCEPT // localhost 인터페이스 내에 접근 허용
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT // 22번 포트 오픈
-A INPUT -p tcp --dport 80 -j ACCEPT // 80 포트 오픈
# NULL 패킷 차단
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# syn-flood attack 차단 (반복적으로 공격해 오는 접근)
-A INPUT -p tcp ! --syn -m state --state NEW -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited // 허용된 포트를 제외한 모든 접근을 거부한다.
-A FORWARD -j REJECT --reject-with icmp-host-prohibited // 허용된 포트를 제외한 모든 접근을 거부한다.
# -A OUTPUT ACCEPT
COMMIT
※ iptables 의 자세한 옵션 정보는 아래에서 확인 가능합니다.
'개발 > 기타' 카테고리의 다른 글
[Linux] crontab 기본 개념 및 사용방법 (0) | 2023.02.25 |
---|---|
[Linux] 리눅스 서버시간 동기화 (0) | 2023.01.15 |
구글지도 api 사용하기 (0) | 2022.12.31 |
[JAVASCRIPT] 문자열을 배열로, 배열을 문자열로 바꿔주는 split() 함수와 join()함수 (0) | 2022.12.17 |
[JAVASCRIPT] 자바스크립트 배열 특정 요소 검색 includes() (0) | 2022.12.03 |