마스커레이드는 보통 집에 사용하는 공유기와 비슷한 역활을 하는 리눅스 네트워킹 기능을 말한다.
쉽게 이야기하자면 여러대의 pc, 혹은 휴대폰, 테블릿 pc가 외부와 통신을 할려면 외부와 연결된
그 무엇이 필요하다.
그 무엇이란 공인 아이피를 말하며 공인 아이피는 외부와 통신하는 게이트라고 생각하면 된다.
마스커레이드란 그 게이트를 열고 닫는 기능을 한다고 생각하면 되겠다.
마스커레이드를 구성 할려면 외부 인터넷망과 연결된 랜포트 하나 내부 인터넷으로 연결할 스위치등
브릿지 기능을 하는 장비와 연결할 랜포트 총 두개가 기본적으로 필요하다.
리눅스에서 우선 마스커레이드 모둘이 올라왔나 확인을 해야한다.
[root@localhost etc]# lsmod |grep -i masq
ipt_MASQUERADE 2466 1
nf_nat 22759 2 ipt_MASQUERADE,iptable_nat
nf_conntrack 79758 5 ipt_MASQUERADE,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_state
그리고 iptables로 설정을한다.
-A FORWARD -s 192.168.22.0/24 -j ACCEPT
-A FORWARD -d 192.168.22.0/24 -j ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
# 설정은 nat 테이블의 POSTROUTING 체인에 외부 연결된 인터페이스 관련 MASQUERADE 설정과
filter 테이블의 FOWARD 체인에 내부 사설 아이피 네트웍 허용한다.
네트웍 제한을 위해 아이피 혹은 mac address로 설정을 해보겠다.
1. 특정 mac address 외부 통신 제한
iptables -I FORWARD -m mac --mac-source 08:00:27:22:b0:48 -j DROP
2. 특정 ip의 외부 통신 제한
iptables -I FORWARD -s 192.168.22.102 -j DROP
3. 특정 ip혹은 mac address의 외부 아이피 차단
iptables -I FORWARD -m mac --mac-source 08:00:27:22:b0:48 -d 8.8.8.8 -j ACCEPT
iptables -I FORWARD -s 192.168.22.102 -d 8.8.8.8 -j DROP
4. 특정 ip혹은 mac address의 외부 서비스 차단
iptables -I FORWARD -s 192.168.22.102 -p tcp --dport 80 -j DROP -- 외부 인터넷 차단.
iptables -I FORWARD -m mac --mac-source 08:00:27:22:b0:48 -p tcp --dport 80 -j DROP
# FORWARD 체인의 -s 192.168.22.0/24 -j ACCEPT, -d 192.168.22.0/24 -j ACCEPT
두개의 룰보다 기본적의로 룰의 순위가 높아야 하며 -I 옵션으로 처음 순위로 해도 된다.