Linux Server

리눅스 방화벽 iptables

delmaster 2015. 5. 12. 15:44

[방화벽]

* 아래 방법으로 실제 방화벽 작업의 세부 내용을 볼수 없고 수정할 수 없다.(권장하지않음)
******************************************************************************************
 * GUI 설치
  * yum install system-config-firewall

 * CLI 환경에서 텍스트 모드 작업
  * system-config-firewall-tui
******************************************************************************************


* 방화벽 정책 출력
 * iptables -nvL

* 기본옵션

 * -A : 체인의 끝에 규칙 추가
 * -I : 체인에 추가할 규칙의 위치 지정(입력하지 않을 시 가장 위에 추가됨)
  * ex) iptables -I INPUT [위치.숫자] -p tcp --dport 8888 -j ACCEPT
 * -p : 프로토콜 지정(ex. tcp, udp)
 * -j : 액션 타겟 지정(ex. ACCEPT, DROP, REJECT)
 * -s : 소스 주소
 * -d : 목적지 주소
 * -i : 패킷이 수신되는 인터페이스 지정
 * -o : 패킷이 출발한 시스템의 인터페이스 지정
 * -m : 필터링에 대한 확장을 위한 옵션(TCP, UDP, STATE, IPRANGE, MAC..)
 * --state : 패킷의 상태 감시
 * -L : 현재 테이블 출력
  * -v : 자세히
  * -n : 호스트와 포트를 숫자로 출력(기본값은 DNS변환)
  * --line-numbers : 규칙의 고유번호 출력
 * -D : 규칙 삭제
  * ex) iptables -D INPUT 3
 * service iptables save : 현재 규칙 저장
 * service iptables start : 서비스 시작
 * service iptables stop : 서비스 중지
 * servcie iptables restart : 서비스 재시작


* 방화벽 기본정책 설정
 * iptables -P INPUT DROP
 * iptables -P OUTPUT ACCEPT

* 예제

 * 발신지 주소 변경
  * iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 8.8.8.8

 * 수신지 주소 변경
  * iptables -t nat -A PREROUTING -o eth0 -j DNAT --to 168.126.63.1
 
 * 인바운드 포트 허용
  * iptables -A INPUT -p tcp --dport 21 -j ACCEPT

 * 아웃바운드 포트 차단
  * iptables -A OUTPUT -p tcp --dport 3389 -j DROP

 * 특정 IP 차단
  * iptables -A INPUT -s 168.126.63.1/32 -j DROP

 * IP 대역 차단
  * iptables -A INPUT -m iprange --src-range 192.168.0.0/24 -j DROP
  * iptables -A INPUT -m iprange --src-range 192.168.0.15-192.168.0.35 -j DROP


* 방화벽 중지 시 반드시 save 할것.
 * service iptables save
  * save된 파일은 /etc/sysconfig/iptables 파일에 기록됨

 


1 # Firewall configuration written by system-config-firewall
      2 # Manual customization of this file is not recommended.
      3 *filter
      4 :INPUT DROP [0:0]
      5 :FORWARD DROP [0:0]
      6 :OUTPUT ACCEPT [0:0]
      7 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      8 -A INPUT -p icmp -j ACCEPT
      9 -A INPUT -i lo -j ACCEPT
     10 COMMIT


* ESTABLISHED : 자신이 요청한 작업에 대해서는 상태 추적테이블에서 방화벽 규칙을 검사하지 않고 허용
* RELATED : ESTABLISHED에서 허용한 작업과 연관된 패킷


* nmap을 이용하여 open된 포트 확인
 * nmap localhost