Собственно завтра планирую купить сетевую карту (Wi-Fi) и настроить раздачу интернета (давно хотел сделать это дома, к тому-же скоро тоже самое необходимо будет сделать приятелю в офисе). Собственно есть скрипт iptables который я писал для шлюза, но ориентировался он на раздачу через свич, но я в принципе думаю проблем особо не будет т.к. просто поменять имя интерфейса и всё. В общем вот сркипт:
#!/bin/bash
#####script config#####
IPT=/sbin/iptables
EC=/bin/echo
#####network config#####
LOCAL_IFACE=eth0
INET_IFACE=eth1
VPN_IFACE=ppp0
#####system config#####
$EC 1 > /proc/sys/net/ipv4/ip_forward
$EC 1 > /proc/sys/net/ipv4/tcp_syncookies
$EC 20000 > /proc/sys/net/ipv4/tcp_max_syn_backlog
$EC 30 > /proc/sys/net/ipv4/tcp_fin_timeout
$EC 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
$EC 10 > /proc/sys/net/ipv4/tcp_keepalive_intvl
$EC 20000 > /proc/sys/net/core/netdev_max_backlog
$EC 20000 > /proc/sys/net/core/somaxconn
$EC 30 > /proc/sys/net/ipv4/tcp_fin_timeout
#####rules#####
start_fw() {
#÷èñòèì âñ¸
$IPT -F
$IPT -t nat -F
$IPT -t filter -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t filter -X
$IPT -t mangle -X
#ïîëèòèêà ïî óìîë÷àíèþ
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
#ïî loopback ìîæíî âñ¸
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
#ñáðàñûâàåì âñ¸ ÷òî íå èäåíòèôèöèðîâàíî
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
#ïðîïóñêàòü ïàêåòû ñî ñòàòóñàìè ESTABLISHED è RELATED
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#VPN
$IPT -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -i $VPN_IFACE -j ACCEPT
$IPT -A OUTPUT -p TCP --dport 1723 -o $VPN_IFACE -j ACCEPT
$IPT -A OUTPUT -p ALL -o $VPN_IFACE -j ACCEPT
#ïî ëîêàëêå ìîæíî ôîðâàðäèòü êóäà óãîäíî
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $LOCL_IFACE -j ACCEPT
#ìàñêàðäèíã
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $VPN_IFACE -j MASQUERADE
#îòêðûòûå ïîðòû
$IPT -t filter -A INPUT -i $VPN_IFACE -p tcp -m tcp --dport 80 -j ACCEPT
}
case "$1" in
start )
echo "Starting firewall."
sleep 1
start_fw
sleep 1
echo "done"
;;
stop )
echo "Stoping firewall."
sleep 1
$IPT -F
$IPT -t nat -F
$IPT -t filter -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t filter -X
$IPT -t mangle -X
$IPT -P FORWARD ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACEPT
sleep 1
echo "done"
;;
restart )
echo "Restarting firewall."
sleep 1
$IPT -F
$IPT -t nat -F
$IPT -t filter -F
$IPT -t mangle -F
$IPT -X
$IPT -t nat -X
$IPT -t filter -X
$IPT -t mangle -X
sleep 1
start_fw
sleep 1
echo "done"
;;
save )
echo "Saving rules."
sleep 1
/sbin/iptables-save -c > /etc/iptables
sleep 1
echo "done"
;;
* )
echo "Usage: start|stop|restart|save"
;;
esac
exit 0
(на кодировку внимание не обращайте). Ну и собственно как я понимаю необходимо будет только поменять имя интерфейса на который масскардить и настроить саму сетевуху на раздачу? Ну потом уже прикрутить конкретно в interfaces ключи шифрования и т.д. В растолкуйте что да как, делаю впервые.