2015년 5월 13일 수요일

iptables 응용 사용법

ㅇ ㅂㅇ

1. iptables 수정법
 - 등록된 iptables를 수정하는 방법은 /etc/sysconfig/iptables 에서 직접 vi로 수정하거나 iptables 명령어를 사용한다.

 - 실행 순번 확인 명령어
  iptables -nL --line-number

 - 순번 2의 행을 아래와 같이 R(replace) - 수정하는 명령어
  iptables -R INPUT 2 -p tcp --dport 2222 -j ACCEPT

 - 인터페이스 지정 - 루프백 인터페이스에 대해 모든 패킷 허용
  iptables -A INPUT -i lo -j ACCEPT

 - 인터페이스 지정 - 특정 랜카드(eth0)에 대해 모든 패킷 허용
  iptables -A INPUT -i eth0 -j ACCEPT

 - IP 지정 - 특정 ip(192.168.0.101)에 대해 모든 패킷을 허용
  iptables -A INPUT -s 192.168.0.101 -j ACCEPT

 - IP 대역 지정 - 특정 IP 대역(192.168.0.0/24)에 대해 모든 패킷을 허용
  iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
  iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT

 - 특정 IP와 MAC 주소에 대해 모든 패킷 허용
  iptables -A INPUT -s 192.168.0.101 -m mac --mac-source 00:50:80:FD:E6:32 -j ACCEPT

 - 허용 포트 범위 지정
  iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT

리눅스(CentOS)에서 bridge 방화벽 설치하기

ㅇ ㅂㅇ

리눅스(CentOS)에서 bridge 방화벽 설치하기!

리눅스를 준비(랜카드 두개 준비) 후 설치 및 설정 할 것!

> 설치 환경
 - [네트워크] : 192.168.10.0/24
 - [방화벽] : 192.168.10.219/24, 리눅스(CentOS)
 - [internal] : 192.168.10.101/24, Window 7

> 설치 과정
 1. yum 명령어를 이용하여 bridge-utils를 설치한다.

< yum 명령어를 이용하여 bridge-utils 설치 >


 2.  ipforward를 가능하도록 설정을 바꿔준다.
 - 커널의 파라미터 변수의 변경을 통해 설정하며, 부팅시 원상태로 복구

< 초기값은 0 >













iptables 서비스 허용 및 취약점 설정

ㅇ ㅂㅇ

1. iptables 에서 서비스 허용 방법

* DNS 서버
 - DNS >> TCP 53 / UDP 53 포트 사용
  iptables -A INPUT -p tcp --dport 53 -j ACCEPT
  iptables -A INPUT -p udp --dport 53 -j ACCEPT


* WEB 서버
 - HTTP >> TCP 80 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

 - HTTPS >> TCP 443 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
  iptables -A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443 -j ACCEPT

 - MySQL >> TCP 3306 포트 사용
  iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

 - FTP(passive mode) 
  iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  iptables -A OUTPUT -p tcp –-sport 21 -j ACCEPT
  iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
  iptables -A OUTPUT -p tcp --sport 1024:65535 -j ACCEPT

* mail 서버
 - SMTP >> TCP 25 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
 - Secure SMTP >> TCP 465 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
 - POP3 >> TCP 110 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
 - Secure POP3 >> TCP 995 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
 - IMAP >> TCP 143 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
 - Secure IMAP >> 993 포트 사용
  iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
 - ICMP 허용 (ping)
  iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
  iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
 - NTP 시간동기화
  iptables -A INPUT -p udp --dport 123 -j ACCEPT 

2. 서버 취약점 보안

* NULL 패킷 차단
 - NULL 패킷은 정찰 패킷으로 서버설정의 약한 곳을 찾기 위한 방법으로 사용되기 때문에 차단 해야 한다.
  iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

* syn-flood attack 차단
 - 공격자가 새로운 연결을 지속적으로 요청하여 리소스를 소모시켜 PC를 다운 시키려는 공격이기 때문에 차단 해야 한다.
  iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

 - /etc/sysctl.conf 에서 설정을 바꿔준다.
 net.ipv4.tcp_syncookies = 1
 net.ipv4.conf.all.rp_filter = 1
 net.ipv4.conf.default.rp_filter = 1
 net.ipv4.tcp_max_syn_backlog = 8192
 net.ipv4.netfilter.ip_conntrack_max = 1048576

* XMAS 패킷 차단
 - XMAS 패킷은 서버가 정상적으로 작동하는지에 대해 확인하는 패킷으로 정찰 패킷에 속한다. 이는 취약점이 될 수 있기에 차단해주어야 한다.
  iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP