IP masquerade 는 인터넷이 되는 리눅스 서버에서 내부 네트워크로 연결된 사설 IP들의 패킷을 외부 네트워크로 나갈수 있도록 포워딩 해주어 인터넷이 되지 않는 ㅐㄴ부 네트워크의 호스트들도 인터넷이 가능하도록 해주는 Network Address Translation(NAT)를 말합니다.
IPCHAINS를 이용하는법
IPCHAINS 유틸리티가 없다면
커널 컴파일을 통해서 넣어준다.
IP마스쿼레이드를 하기 위해선 랜카드 두개가 필요하다.
dmesg | grep eth 를 통해 2개의 랜카드를 확인한다.
ifconfig eth 192.168.1.100 ///하나의 랜카드에 사설 아이피를 할당한다.
타겟에 크로스 케이블을 꼽고.. ifconfig eth0 192.168.1.99 //사설 아이피 할당..
호스트에서 ping 192.168.1.99 해본다..
성공적으로 핑 테스트가 되었다면,
호스트# echo "1" > /proc/sys/net/ipv4/ip_forward
다음과 같이 ipchains 유틸리티로 내부 네트워크의 호스트 들도 인터넷이 가능하도록 처리해 줌
호스트# ipchains -F
호스트# ipchains -P forward REJECT
호스트# ipchains -A forward -s 192.168.1.0/24 -j MASQ
서버에 이와 같이 처리를 해주게 되면 내부 네트워크상의 클라이언트들은 인터넷을 공유 할 수있는 상태가 됩니다. 클라이언트에서 외부 네트워크로 핑을 날려 핑이 제대로 반응을 보이는지 확인
호스트# ipchains -L
---
---
---
다음은 TOS 설정 입니다.TOS 설정을 추가 하게 되면, FTP로 다운로드 할때 느린 텔넷보다 빠르게
사용 할 수 있습니다.
호스트# ipchains -A output -p tcp -d 0/0 telnet -t 0x01 0x10
호스트# ipchains -A output -p tcp -d 0/0 ftp -t 0x01 0x10
호스트# ipchains -A output -p tcp -d 0/0 ftp-data -t 0x01 0x08
TOS??? (Type Of Service )
ftp를 이용할때 ssh 등의 패킷이 먼저 전달될수 있도록 처리해 주는것으로, 자료를 다운 받고 잇는 동안 텔넷의 지연 현상을 최소화 하여 보다 빠르게 해 줍니다.
TOS 이름 값 용도
Minimum Delay 0x01 0x10 ftp,telnet,ssh
Maximum Throuchghput 0x01 0x08 ftp-data,www
Maximum Reliabilty 0x01 0x04 snmp,dns
Minimum Cost 0x01 0x02 nntp,smtp
IPTABLES을 이용하는 법
iptables는 커널 2.4대에서 기본적 작동 하는 넷필터 도구로 레드햇 리눅스 9에서 기본적으로 지원하는 방화벽 도구 입니다. iptables는 ipchains 에 비해 강력한 NAT 기능을 제공하고, 보안성이 향상되었으며, 커널 2.4의 TCP/IP 스택을 향상 시켜 줍니다.
하지만 ipchains에 비해 설정이 좀 까다로운 것이 단점입니다.
마찬가지로 두장의 eth카드를 준비하고, 위의 단계를 통해 테스트를 한다.
ifconfig eth1 로 사설 아이피 부여하고..
호스트#echo "1" > /proc/sys/net/ipv4/ip_forward
또는 /etc/sysctl.conf 파일에서
net.ipv4.ip_forward = 1로 설정해준다.
다음 명령을 통해 마스쿼레이드 설정
호스트# iptables -A FORWARD -o eth0 -j ACCEPT
호스트# iptables -A FORWARD -o eth1 -j ACCEPT
호스트# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
////3번째 설정에서 eht0 은 인터넷이 연결된 인터페이스카드 eth1 은 내부 네트웍
만일 ADSL전용선의 경우는 다음과 같이 실행
호스트# iptables -A FORWARD -o ppp0 -j ACCEPT
호스트# iptables -A FORWARD -o eth1 -j ACCEPT
호스트# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables에 의한 작동 여부는 iptables-L 명령과 iptables -L -t nat 명령으로 확인합니다.
iptables -L 명령을 실행하여 FROWARD 설정에서 모든 포트와 모든 소스에 대해서 허용 정책
이 설정되어 있는 지를 확인하고 iptables -L -t nat 명령을 실행하여 Chains POSTROUTING 설정에 마스쿼레이드 허용정책이 설정 되어 있는지를 확인합니다.
타겟에서의 인터넷 공유
호스트# ipconfig eht0 192.168.1.99
route add default gw 192.168.1.xxx dev eth0 ///xxx는 위에서 설정한 호스트의 ifconfig eth1값
게이트웨이가 되는군..음흐흐...
aa