From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Alexandr Bezuglov To: community@altlinux.ru Subject: Re: [Comm] Internet Connection Sharing Date: Thu, 10 Jul 2003 20:05:16 +0300 User-Agent: KMail/1.5 References: <3F0BD667.9000302@feht.dgtu.donetsk.ua> In-Reply-To: <3F0BD667.9000302@feht.dgtu.donetsk.ua> MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200307102003.44077.bezu@paco.net> Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.2 Precedence: list Reply-To: community@altlinux.ru List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jul 2003 14:04:49 -0000 Archived-At: List-Archive: List-Post: В сообщении от 9 Июль 2003 11:46 Aleksander N. Gorohovski написал(a): > Доброго времени суток сообщество! > > Установил на машину Master2.2 и хотел настроить ее в качестве > шлюза. То ж самое, но хотелось вдобавок всё настраивать вручную, без гуёвой автоматизации и так, чтобы весь процесс не надо было держать в голове. В результате недели чтения книжек родился скрипт, после прогона которого под root машины в сетке видят Инет. Заодно настраивается firewall. Для чего дополнитеьно поставлен(ы) iptasbles. На сетевых компутерах указываю DNS провайдера. Лишние задержки, конечно... Работаем над собственным кэширующим DNS. Гнилыми помидорами просьба не закидывать :)), за дельные замечания буду признателен. #!/bin/bash #-- Загружаем модули отслеживания соединений insmod ip_conntrack #insmod ip_conntrack_ftp #-- Включаем проверку маршрутизации #-- Например, пакеты пришедшие с ppp0 и имеющие адрес внутренней сети, # отбрасываются for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done; # ----------- Всё вышеперечисленное можно загнать в /etc/sysconfig/network #-- Очистка старых таблиц (на случай повторного запуска скрипта) iptables -F iptables -X no_conns_ppp0 iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE #-- Запрет входящих соединений с ppp0 iptables -N no_conns_ppp0 #разрешаем входящие для уже существующих соединений с любого интерфейса iptables -A no_conns_ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT #разрешаем установление извне новых соединений для всех интерфейсов, кроме #ppp0 iptables -A no_conns_ppp0 -m state --state NEW -i ! ppp0 -j ACCEPT #фиксируем все пакеты с ppp0, не прошедшие предыдущие проверки... iptables -A no_conns_ppp0 -i ppp0 -m limit -j LOG --log-prefix / "NO_CONNS_PPP0: from ppp0:" #... а также все пакеты не с ppp0, не прошедшие предыдущие проверки... iptables -A no_conns_ppp0 -i ! ppp0 -m limit -j LOG --log-prefix / "NO_CONNS_PPP0: not ppp0:" #... и сбрасываем их. iptables -A no_conns_ppp0 -j DROP iptables -A INPUT -j no_conns_ppp0 iptables -A FORWARD -j no_conns_ppp0 # ------------ После однократного прогона этой части скрипта можно включить #iptables как сервис. Настройки сохраняются командой service iptables save #-- Включение форвардинга в ядре echo "1" > /proc/sys/net/ipv4/ip_forward # ----------- Навсегда это запускается командой FORWARD_IPV4=true (or yes) в #/etc/sysconfig/network всё. С уважением Александр.