토폴로지

Ethernet switch-2CentOS
 
NAT설정 이전 XP->BT

출발지와 목적지의 IP가 그대로 보인다.
 
[root@localhost Desktop]# iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -i eth0 -o eth1 -j MASQUERADE

위처럼 iptable 설정하면 실제 XPBT가 통신을 하지만 XPCentOS가 서로 통신하는 것처럼 XPIP를 가릴 수 있다.

[root@localhost Desktop]# iptables -t nat -L

[root@localhost Desktop]# iptables -t nat -D POSTROUTING 1
//IP table 지우기
 
NAT
아이피 변환 시스템이라고 보면 된다.
 
DNAT
외부 네트워크에서 내부 네트워크로 들어올때의 네트워크 주소 변환.
 
SNAT
Source IP의 주소를 공인 IP로 바꾼 후 NAT 테이블을 참조하여 내부망으로 전달해주는 것이다.
 
black list : 거부할 목록을 뜻하며 목록에 없는 IP는 모두 허용된다.
white list : 허용할 목록을 뜻하며 목록에 없는 IP는 모두 거부된다.
 
iptables (-t filter) : filter 는 생략이 가능하다.
 
[root@localhost Desktop]# iptables -t filter -P INPUT DROP
[root@localhost Desktop]# iptables -t filter -L

INPUT, OUTPUTDROP시켜도 xpbt는 통신이 가능하다.

 

xp상황
[root@localhost Desktop]# iptables -t filter -P FORWARD DROP

FORWARDDROP되는 순간 xpbt는 통신이 불가능해진다 이유는 아래의 iptable정책 구조와 관련있다.

INPUT,OUTPUT 정책 적용확인
XP

CentOS

프로세스끼리 통신 허용
|(파이프), IPC를 사용
 
[root@localhost Desktop]# iptables -t filter -A INPUT -i lo -j ACCEPT
[root@localhost Desktop]# iptables -t filter -A OUTPUT -o lo -j ACCEPT
프로세스간의 통신은 loopback을 사용하기 때문에 INPUT, OUTPUT을 설정하면 된다.
 
[root@localhost Desktop]# iptables -t filter -L -v


  rule 번호 확인하기
[root@localhost Desktop]# iptables -t filter -L -v --line

rule 삭제
[root@localhost Desktop]# iptables -t filter -D INPUT 1
[root@localhost Desktop]# iptables -t filter -L -v --line

CentOS 설정
[root@localhost Desktop]# iptables -t filter -A INPUT -s 192.168.200.0/24 -i eth0 -p icmp -j ACCEPT
 
XP확인

[root@localhost Desktop]# tcpdump -i eth0
//와이어샤크를 실시간으로 볼 수 있는 명령

INPUT만 허용했기 때문에 통신이 되지 않는다.
 
 
CentOS 설정
[root@localhost Desktop]# iptables -t filter -A OUTPUT -s 192.168.200.0/24 -o eth0 -p icmp -j ACCEPT

XP설정

OUTPUT을 허용후 정상적으로 통신이 되는 것을 확인 할 수 있다.
 
XP-> 외부 WebServer 접근
root@bt:~# service apache2 start
 
 
 
 
CentOS (XP -> CentOS -> BT)
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --dport 80 -s 192.168.200.0/24 -i eth0 -j ACCEPT

CentOS(BT -> CentOS -> XP)흐름에서 CentOS http 정책 설정
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -j ACCEPT

XP -> BT Webpage 확인

위의 룰은 위험하다. 포트검사하고 허용을 하기 때문에 포트만 80번으로 만들면 공격이 가능하다.

FORWARD 삭제
[root@localhost Desktop]# iptables -F FORWARD
[root@localhost Desktop]# iptables -L

올바른 정책 수정
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --dport 80 -s 192.168.200.0/24 -j ACCEPT
iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT

 
BT확인
root@bt:~# hping3 -p 80 192.168.200.10

위의 iptables 정책을 통해 80번 포트로 가는 ping을 접근을 제어한 것을 확인 할 수 있다.
     
도움말
[root@localhost Desktop]# iptables -t filter -A FORWARD -p tcp --sport 80 -d 192.168.200.0/24 -m state -h
//-m : state라는 외부 라이브러리 모듈을 쓰겠다.
--state옵션
INVALID : 올바르지 않은 (x)
ESTABLISHED : 연결된 (O)
NEW : 새로운 (x)
RELATED : 연계되는 세션 (O)
 
FORWARD 전체 재설정
[root@localhost Desktop]# iptables -F FORWARD //FORWARD 지우기
[root@localhost Desktop]# iptables -A FORWARD -p udp --dport 53 -s 192.168.200.0/24 -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p udp --sport 53 -d 192.168.200.0/24 -m state --state ESTABLISHED -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p tcp -m multiport --dport 80,443 -s 192.168.200.0/24 -m state --state NEW,ESTABLISHED -j ACCEPT
[root@localhost Desktop]# iptables -A FORWARD -p tcp -m multiport --sport 80,443 -d 192.168.200.0/24 -m state --state ESTABLISHED -j ACCEPT
 
//multiport옵션은 포트여러개를 한번에 지정할 수 있다.

+ Recent posts