Помогите настроить маскарадинг
![](http://mediasubs.ru/author/avatar/2757493.png)
В общем небольшая сетка, учет трафика не нужен, прокси не нужен, нужен только
чистый NAT (если я правильно понимаю). Т.е. нужно что бы любой запрос с машины
в сети обрабатывался так, как будто эта машина напрямую подключена к провайдеру...
Ну и там запретить все подключения из вне, и разрешить все запросы из локалки
(ну чтобы всё работало начиная от http и заканчивая ssh)...
В общем перекопал много скриптов, что-то не работает ничего. За неимение ничего
другого пытаюсь всё это дело настроить на mdk10.0. Собственно iptables v1.2.9
и ipv4 стартуют сервисами.
Привожу пример скриптика который должен включать маскарадинг.
#!/bin/sh
FWVER=0.74
#Эта переменная от балды? Или имеет какое-то значение?
echo -e "\n\nLoading simple rc.firewall version $FWVER..\n"
# Это я так понимаю вывод номера версии, только вот чего? Того, что я пропишу
в FWVER=0.74?
#IPTABLES=/usr/sbin/iptables
IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe
# Это переменным присваиваются пути к командам? В общем iptables, depmod, modprobe
там присутствуют.
EXTIF="ppp0"
INTIF="eth0"
echo " External Interface: $EXTIF"
echo " Internal Interface: $INTIF"
# Здесь я прописываю внутренний и внешний интерфейсы.
echo -en " loading modules: "
echo " - Verifying that all kernel modules are ok"
$DEPMOD -A
# Это проверяет какие-то модули ядра побыстрому? Это я так думаю, но ошибок не
выдаёт.
echo "----------------------------------------------------------------------"
# Дальше я подгружаю модульно к ядру следующие сервисы
echo -en "ip_tables, "
$MODPROBE ip_tables
echo -en "ip_conntrack, "
$MODPROBE ip_conntrack
echo -en "ip_conntrack_ftp, "
$MODPROBE ip_conntrack_ftp
echo -en "ip_conntrack_irc, "
$MODPROBE ip_conntrack_irc
echo -en "iptable_nat, "
$MODPROBE iptable_nat
echo -en "ip_nat_ftp, "
$MODPROBE ip_nat_ftp
echo -e "ip_nat_irc"
$MODPROBE ip_nat_irc
echo "----------------------------------------------------------------------"
# Только я не понимаю, зачем подключать ftp и irc. Разве не достаточно ip_tables
iptable_nat ip_conntrack? И чего их аж три? Кстати, а smpt и socks будут работать
или для них тоже нужно что-то подключать к ядру?
echo -e " Done loading modules.\n"
echo " Enabling forwarding.."
echo "1" > /proc/sys/net/ipv4/ip_forward
# Собственно включаю перенаправление. Или нет?
echo " Enabling DynamicAddr.."
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
#Это для диалапа. ?
# Enable simple IP forwarding and Masquerading
#
# NOTE: In IPTABLES speak, IP Masquerading is a form of SourceNAT or SNAT.
#
# NOTE #2: The following is an example for an internal LAN address in the
# 192.168.0.x network with a 255.255.255.0 or a "24" bit subnet mask
# connecting to the Internet on external interface "eth0". This
# example will MASQ internal traffic out to the Internet but not
# allow non-initiated traffic into your internal network.
#
#
# ** Please change the above network numbers, subnet mask, and your
# *** Internet connection interface name to match your setup
#
#Clearing any previous configuration
#
# Unless specified, the defaults for INPUT and OUTPUT is ACCEPT
# The default for FORWARD is DROP (REJECT is not a valid policy)
#
echo " Clearing any existing rules and setting default policy.."
# А дальше я только могу догадываться. :( поправте если я неправ.
$IPTABLES -P INPUT ACCEPT
# устанавливаю правило на прием входящих запросов из локалки
$IPTABLES -F INPUT
# И сразу же сбрасываю все правила на прием входящих запросов ???
$IPTABLES -P OUTPUT ACCEPT
# устанавливаю правило на прием ответов из интернета на запросы из локалки
$IPTABLES -F OUTPUT
# И сразу же сбрасываю все правила на прием ответов ???
$IPTABLES -P FORWARD DROP
# не понял зачем это
$IPTABLES -F FORWARD
# не понял зачем это
$IPTABLES -t nat -F
#включаю маскарадинг, только зачем здесь -F?
echo " FWD: Allow all connections OUT and only existing and related ones IN"
$IPTABLES -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED
-j ACCEPT
# Это наверное разрешаю перенаправление. С внешнего интерфейса на внутренний
согласно каких-то правил. То что после -m непонял, кроме -j ACCEPT которое указывет,
что это всё хозяйство разрешено.
$IPTABLES -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
# Это разрешает все запросы из локалки
$IPTABLES -A FORWARD -j LOG
# Включает лог, только вот куда он это всё пишет я так и не нашёл... Может кто
знает.
echo " Enabling SNAT (MASQUERADE) functionality on $EXTIF"
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
# Я так понимаю, что это для того, чтобы использовать внешний интерфейс только
для маскарадинга и запретить подключения из вне?
echo -e "\nrc.firewall-2.4 v$FWVER done.\n"
# просто информирует, что скрипт завершён.
Клиенты все win2k. У них в браузере указываю прямое соединение, а во вкладке
сетевого окружения указываю основной шлюз 10.0.0.200 (такой вот сервер). Кстати
все машины с адресами 10.0.0. (кстати вся подсеть указывается как 10.0.0.0/24
? И чем это отличается от 10.0.0.0/8 ?)
Или я просто не правильно клиента настроил? Или может быть неработает потому,
что у меня не 192.168.0.x сеть?
Заранее благодарен за ответы.
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 12990; Возраст листа: 466; Участников: 1278
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/256371
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
Hello Ignatiy,
Wednesday, November 3, 2004, 4:57:13 PM, you wrote:
http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html
Тут ответы на все твои вопросы, все разложено по полочкам.
Кстати с готовыми скриптами настройки таблиц под разные нужды.
(подправлять конечно всеравно прийдется, но минимум).