질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

openvpn 관련 iptable 설정

작성자 정보

  • 홍보성 작성
  • 작성일

컨텐츠 정보

본문

뭐 FM이라는건 없지만. 퍼포먼스 문제를 말씀하시는거 같은데.

튜닝을 위해서는 실시간 트래픽 모니터링을 쭉~ 해보시면 아시겠죠.ㅎ

님의 보안 구성은 서버로의 접근보안을 제외한 나머지 트래픽에 대해서 전혀 보안이 안되어있는 구성이라고 보시면 됩니다.

게다가 VPN을 연결한 사용자의 불필요한 트래픽도 많이 들어올 수 있고..

도데체 왜 저 포트가 열려서 전송하고 있나... 왜 저 IP가 라우팅 걸지도 않았는데 저쪽으로 전송하나.. 뭐 이런 의문을 가지고 보신다면 하나하나 Fix 해 나가실 수 있을 겁니다.

우선 Network - Client 구성인지 Network to Network 구성인지 모르겠으나 Ruleset 구성을 보니 Network to Client으로 보이는군요.

우선 Default Policy 문제.

INPUT 만 DROP을 하셨고. Forward는 ACCEPT 하셨는데 FORWARD도 DROP으로 하셔야 불필요한 패킷을 기본적으로 차단하고 시작할 수 있습니다. 이건 기본적인거죠.

INPUT이나 FORWARD RULE의 DROP SET은 항상 가장 위에 구성하고 광범위 한 것 부터 먼저 ACCEPT 하고 세세한 룰을 하위에 구성하죠.
광범위한 셋에서 세세한 셋 이라면 장치/서브넷/IP/PORT 등의 순서로 예를 들수 있습니다.

INPUT에서도 좀 문제일 가능성인 내용들이 있는데 외부에서 서버로 접근하는 포트중에 SSH와 같은 해킹의 대상이 되는 포트들은 VPN을 통해서만 접근할 수 있도록 구성해야 합니다. 예를 들면 -i tun+ -p tcp --dport 8888 와 같이 -i를 지정하여 범위를 좁히는게 좋죠. ssh는 포트를 바꿔도 블루트포스 공격에 노출됩니다.

-i tun+에 대한 모든 신호를 기본적으로 INPUT과 FORWARD 까지 OPEN했는데 이도 위험한 구성이죠.

-i tun+에 대한 input도 실제 필요한 port만 오픈하도록 하고 FORWARD 또한 꼭 필요한 패킷만 흐르도록 지정하시기 바랍니다.

일단 막고 안되는 서비스가 있으면 해당 서비스를 분석해서 오픈하게 된다면 실력또한 늘릴 수 있을 겁니다.

FORWARD 일단 막으면 안되는게 많다고 난리겠죠. 좀만 찾아봐도 쉽게 발견하실 수 있을 겁니다.

제가 볼땐 NAT서버는 아닌듯 싶고 단지 VPN, FTP 서버 정도로 운영하시는거 같은데 무리가 없을 것으로 보입니다.

 

openvpn 님의 글



무더운 날씨에 고생이 많으십니다...

실력도 미비한 저에게 회사에서 엄청난 압박을 가하는 관계로 이렇게 질문드려 봅니다.^^

openvpn 을 라우팅기반으로 셋팅하여 현재, 정상적으로 가동중에 있는데요...(이 모든것이 홍선생님 덕분입니다.^^)

아무래도, 보안이 걱정되어 홍선생님 저서를 바탕으로 iptable 스크립트를 작성해 보았습니다.

네트웍쪽에는 너무 잼병이라 서비스는 잘되고 있는데, 혹 누수(?)현상이나 잘못된 설정이

있는지 고수님의 검토좀 부탁드립니다.

책에는 기술되어 있는데 잘 이해가 가지않는(두려운) 부분은 실력이 부족한 관계로 생략한 상태입니다...--;

감사합니다. 그럼, 좋은 하루되세요...

시작------------------------------------------------------------------------------------------------

#!/bin/sh

IPTABLES="/sbin/iptables"
. /etc/init.d/functions

case "$1" in
start|restart)
             echo "$1ing firewall : [ OK ]"
             ;;
         stop)
             echo "$1ping firewall : [ OK ]"
             $IPTABLES -F
             $IPTABLES -X
             $IPTABLES -P INPUT ACCEPT
             $IPTABLES -P FORWARD ACCEPT
             $IPTABLES -P OUTPUT ACCEPT
             exit
             ;;
            *)
             echo $"Usage: $0 {start|restart|stop}"
             exit
             ;;
esac

# 룰셋 초기화
$IPTABLES -F

# 기본정책 설정
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

# Loopback/TUN 트래픽 허용
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -i tun+ -j ACCEPT

# 상태추적 설정
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A INPUT -i eth0 -p all -m state --state INVALID -j DROP

# openvpn service
$IPTABLES -A INPUT -p udp --sport 1024: --dport 5000 -m state --state NEW -j ACCEPT

# ssh service
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 8888 -m state --state NEW -j ACCEPT

# ftp service
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 20 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp --sport 1024: --dport 9999 -m state --state NEW -j ACCEPT

# ping service
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

-----------------------------------------------------------------------------끝

 

 




 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,031 명
  • 현재 강좌수 :  35,772 개
  • 현재 접속자 :  143 명