내가 말하는 기계 A는 두 개의 네트워크 인터페이스를 가지고 있으리라 믿고있어 eth0 및 eth1. 이제
echo 1 > /proc/sys/net/ipv4/ip_forward
: 당신은 시스템 A에서 패킷 포워딩을 활성화해야합니다 기계 B.
첫째로 인터페이스가 eth1 (외부) 모뎀에 conected입니다되며, eth0를 (내부)는 스위치에 conected입니다 또는 직접 당신은 /etc/init.d/fwscript.sh으로 다음 저장할 수 있습니다
#!/bin/sh
ipt=/sbin/iptables
extip=5.6.7.8 # replace with your EXTERNAL IP
lan=192.168.0.0/24 # your LAN
# start firewall
start_firwall {
echo "Enabling iptables firewall."
# default policies
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
# NAT
$ipt -t nat -A POSTROUTING -o eth0 -j SNAT --to-source $extip
# INPUT chain
$ipt -A INPUT -i lo -j ACCEPT
$ipt -A INPUT -i eth1 -s $lan -j ACCEPT
$ipt -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A INPUT -p tcp --destination-port 22 -j ACCEPT
# FORWARD chain
$ipt -A FORWARD -i eth1 -s $lan -j ACCEPT
$ipt -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
}
# stop firewall
stop_firwall {
$ipt -P INPUT DROP
$ipt -P OUTPUT DROP
$ipt -P FORWARD DROP
# allow internal traffic
$ipt -A INPUT -i eth1 -j ACCEPT
$ipt -A OUTPUT -o eth1 -j ACCEPT
}
# flushing, removing and zeroing tables
reset_firewall {
chains=`cat /proc/net/ip_tables_names`
for i in $chains; do
$debug $ipt -t $i -F
$debug $ipt -t $i -X
$debug $ipt -t $i -Z
done
}
case "$1" in
start|restart|reload)
reset_firewall
start_firewall
;;
stop)
reset_firewall
stop_firewall
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
;;
esac
exit 0
스크립트가 실행되어야합니다 (chmod를 + X fwscript.sh). 이제 다음을 입력하여 간단히 실행할 수 있습니다. ./fwscript.sh [start | stop]. 지금 시작시에 실행 방화벽을 얻을 : 트래픽 또는 캐시를 모니터링 할 경우
update-rc.d fwscript.sh defaults 99
당신은 오징어가 필요합니다. 그러나 오징어 구성은 fwscript.sh에서 약간의 변경이 필요하며 투명하거나 투명하지 않은 프록시를 원할 경우 결정해야합니다. 나는 지금 오징어없이 시험해보고 싶다.
정말 고마워요! 비록 당신의 대답에 대한 설명이 필요합니다. 스크립트가 머신 B 또는 머신 A로 이동합니까? 그것이 기계 A에 있다면 B에게 무엇을해야합니까? 머신 A는 1 개의 네트워크 인터페이스 만 가지고 있습니다. 이게 문제 야? – ProbablePattern
스크립트는 게이트웨이가 될 머신 A로 이동합니다. 예, 시스템 A는 포워딩을 수행하기 위해 두 개의 네트워크 인터페이스가 필요합니다. – wind39
정적 IP 또는 DHCP를 통해 이미 A와 B 사이의 통신이 있다고 가정합니다. 컴퓨터 A도 DHCP 서버가되도록 구성 할 수 있으며 B는 A에서 동적 IP를 가져옵니다 (dhcpclient 사용). – wind39