인터넷 공유기는 대부분 linux를 OS로 사용한다.
조그마한 플래쉬메모리에 리눅스 커널을 최대한 컴팩트하게 빌드해서 제품으로 팔고 있다.
즉, 리눅스의 특정 기능을 사용하면 인터넷 공유기와 같은 기능을 할 수 있다는 것이다.

그 기능이 바로 iptables라는 프로그램을 사용하는 것이다.

iptables을 Linux에서 사용하는 방법은 다음과 같이 하면 된다.
예제) 
IP공유용 리눅스 머신에서 다음과 같이 설정.
외부에서 사용하는 IP : [공인IP]
내부에서 사용하는 IP : 192.168.0.X
외부에서 접근하는 port : 80,21,22
외부인터넷 랜카드 : eth0

echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to [공인IP]
/sbin/iptables -t nat -A PREROUTING -p tcp -d [공인IP] --dport 80 -j DNAT --to 192.168.0.3:80
/sbin/iptables -t nat -A PREROUTING -p tcp -d [공인IP] --dport 21 -j DNAT --to 192.168.0.4:21
/sbin/iptables -t nat -A PREROUTING -p tcp -d [공인IP] --dport 22 -j DNAT --to 192.168.0.3:22
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A OUTPUT -o eth0 -j ACCEPT


iptables는 커널 2.3.15이상 부터 지원된다. 현재는 커널 2.6이 거의 주류를 있으므로, 그냥 위 명령을 실행하면 리눅스 머신이 IP를 공유할 수 있게 해줄것이다.

자세한 iptables의 설명은 man iptables하면 확인할 수 있다.

 

저작자 표시
신고

+ Recent posts

티스토리 툴바