Iptables

오픈소스 비즈니스 컨설팅
Pnuskgh (토론 | 기여)님의 2014년 8월 13일 (수) 08:32 판 (→‎관리자 가이드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

Linux IPv4 환경에서 방화벽 서비스를 제공하는 iptables를 정리한다.


설치 가이드

  • iptables 설치
  • Ubuntu에 root로 로그인한다.
  • sudo apt-get install iptables
  • 설치 정보
  • 설치 폴더 :
  • 환경 폴더 :
  • 데이터 폴더 :
  • 기동 종료 :
  • 서비스 확인 :
  • 로그 정보 :

CentOS용 설치 가이드

  • Linux는 기본적으로 iptables를 방화벽으로 사용 한다.
yum list | grep iptables
yum install iptables

service iptables on
chkconfig iptables on
chkconfig --list | grep tables
  • 설치 정보
  • 설치 폴더 :
  • 실행 파일 : /sbin/
  • 환경 파일 : /etc/sysconfig/iptables
  • 기동 종료 : service iptables start, stop, restart

사용자 가이드

  • 방화벽 설정 명령어
setup
system-config-securitylevel
  • iptables 정책
  • 설정된 정책은 위에서부터 차례로 적용이 되기 때문에 순서에 주의 하여야 한다.
Chain INPUT   : 서버로 들어오는 정책
Chain FORWARD : 서버에서 포워딩 하는 정책
Chain OUTPUT  : 서버에서 나가는 정책
Chain RH-Firewall-1-INPUT : 방화벽 설정이 적용되는 정책
  • iptables 명령
iptables -L            #--- 설정된 정책 확인
#--- 정책 추가(ACCEPT), 차단(DROP)
iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  • 특정 IP의 서버 접근 차단 방법
iptables -A INPUT -s 61.247.209.81 -j DROP
iptables -A INPUT -s 61.247.209.0/24 -j DROP

관리자 가이드

  • tables : filter (필터링 규칙 적용), nat, mangle, raw
  • chain
  • INPUT : Host로 들어오는 패킷
  • OUTPUT : Host에서 나가는 패킷
  • FORWARD : Host를 지나가는 패킷
  • match : 패킷을 처리할 때 만족해야 하는 조건
  • --source (-s) : 출발지 IP
  • --sport : 출발지 Port
  • --destination (-d) : 목적지 IP
  • --dport : 목적지 Port
  • --protocol (-p) : 프로토콜 (tcp, udp)
  • --in-interface (-i) : 입력 인터페이스 (eth0, eth1)
  • --out-interface (-o) : 출력 인터페이스 (eth0, eth1)
  • --state : 연결 상태 (NEW, ESTABLISHED, RELATED, INVALID)
  • --string : 애플리케이션 계층의 데이터 바이트 순서와 매핑
  • --comment : 주석 (최대 256 바이트)
  • --syn (-y) : SYN 패킷을 허용하지 않음
  • --fragment (-f) : 두번째 조각부터 적용하는 규칙
  • --table (-t) : 처리할 테이블
  • --jump (-j) : 패킷 처리 방식 정의 (ACCEPT, DROP, REJECT, LOG, RETURN)
  • --match (-m) : 특정 모듈과 매핑 (state, tcp, multiport)
  • target : ACCEPT (허용), DROP (삭제), REJECT (거부), LOG (syslog 기록), RETURN (패킷 처리 계속)
  • Connection Tracking : 연결 추적
  • NEW (새 연결 요청), ESTABLISHED (기존 연결), RELATED (기존 연결내 새 연결), INVALID
  • command
  • --append (-A) : 규칙 추가
  • --delete (-D) : 규칙 삭제
  • --check (-C) : 패킷 테스트
  • --replace (-R) : 새로운 규칙으로 교체
  • --insert (-I) : 규칙 삽입
  • --list (-L) : 규칙 조회
  • --flush (-F) : chain의 모든 규칙 삭제
  • --zero (-Z) : 패킷과 바이트 카운트 값을 0으로 초기화
  • --new (-N) : 새로운 chain 생성
  • --delete-chain (-X) : chain 삭제
  • --policy (-P) : 기본 정책 변경
iptables -L
iptables -nL
iptables -nL --line-numbers
iptables -L -v
  • service iptables save
  • 변경 사항을 /etc/sysconfig/iptables 파일에 저장

참고 문헌