Здравствуйте!
Сразу хотелось бы попросить прощения у администрации форума за то, что дублирую свой пост созданием новой темы, но очень нужна помощь, т.к. вот уже скоро неделя пройдет в попытках раздать инет в локалку (debian с закрытыми глазами уже устанавливаю).
Я просто скопирую свой ранее созданный пост в этот раздел (не доглядел куда написать).
На сервере установлен Debian Squeeze, больше ничего не устанавливал, т.к. она будет предназначена только для игровых серверов (возможно стоит еще что-либо до установить к дистрибутиву? Подскажите).
Имеем два сетевых интерфейса: eth0 (смотрит в инет) и eth1 (смотрит в локальную сеть). В локальной сети 16 машин (IP 192.168.0.2, 192.168.0.101 - 192.168.0.115) с ОС Windows XP Pro.
eth0 - статический IP (выделенная линия от провайдера, без модема).
eth1 - назначаю address 192.168.0.1, netmask 255.255.255.0, broadcast 192.168.0.255 и network 192.168.0.0.
Все машины в локальной сети соединены через свич и имеют статические IP (это необходимо для работы некоторых программ).
Я перепробовал достаточное количество мануалов по настройке инета через iptables и максимум, что у меня получилось - это добиться работоспособности ICQ и то до перезагрузки сервера. Все машины локальной сети пингуются, SSH работает, а дальше все.
Заранее благодарен.
Помогите раздать инет в сети
Что делали, выложыте свои действия в командах консоли. Тогда поможем.
Попробуй здесь пошукать http://forum.ubuntu.ru/index.php?topic=107492.0
echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.conf; sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -j MASQUERADE
iptables -t mangle -A FORWARD -p tcp -m tcp --tcp-flags RST,SYN SYN -j TCPMSS --clamp-mss-to-pmtu
iptables-save >/etc/iptables.conf
Вот по этому пробовал (уже тут на форуме порекомендовали).
Пробовал так же по этому мануалу.
Ввожу в консоли
ifconfig eth1 192.168.0.1 netmask 255.255.255.0
ifconfig eth1 up
Редактирую: /etc/sysctl.conf, убираю коммент net.ipv4.ip_forward=1
Выполняю: sysctl -w net.ipv4.ip_forward="1"
Ввожу следующее правило: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
В rc.local добавляю: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
И многие другие.
Попробуй всё это там http://forum.ubuntu.ru/index.php?topic=107492.0 корректно сформулировать
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe virtio_net
export IPT="/sbin/iptables "
export P_PLAN=eth0
export Z_PLAN=eth1
export Z_COMP=192.168.0.0/24
# flush all the rules in the filter and nat tables.
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
# erase all chains that's not default in filter and nat table.
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Let's go
# Закрываем изначально ВСЁ:
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# ********************************************************************************* #
# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $Z_PLAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $Z_PLAN -j ACCEPT
# ********************************************************************************* #
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $P_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $Z_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $P_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $Z_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# ********************************************************************************* #
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $Z_PLAN -o $P_PLAN -j ACCEPT
# Разрешаем обмен между сетями
$IPT -A FORWARD -i $Z_PLAN -o $V_PLAN -j ACCEPT
# ********************************************************************************* #
# Маскарадинг
$IPT -t nat -A POSTROUTING -o $P_PLAN -s $Z_COMP -j MASQUERADE
$IPT -L -n -t nat
Это сокращенный рабочий конфиг, во время отладки вот это:
# Закрываем изначально ВСЁ:
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
меняешь DROP на ACCEPT
Последняя строка $IPT -L -n -t nat - для того чтобы после исполнения скрипта виде что вышло.
ы. А вообще разговор про iptables надо начинать с вывода команд ifconfig и iptables -Lvn
Попробуй всё это там http://forum.ubuntu.ru/index.php?topic=107492.0 корректно сформулировать
Я честно говоря не понимаю к чему это было сказано и возможно следовало бы оставить Ваше высказывание без внимания, но "туда" мне посоветовали сходить с этого форума, как вариант, который у некоторых работает на Debian. А что касается корректных формулировок, то я, пока еще, не специалист в этой области и попытался объяснить как смог. Со временем научусь и вопросы мои будут корректными.
newzenon, благодарю. Завтра доберусь до сервера и попробую.
И у меня к Вам вопрос по поводу этого скрипта (лучше спросить, чем думать как с ним обращаться).
Этот конфиг набирается как команды поочередно или сохраняется как iptables.conf (я смотрел на подобные конфиги, но не понял как его применять).
Нет. Сохраните его как файл с названием firewall.sh и права ему
[console]chmod +x firewall.sh[/console]
и тогда в консоли
[console]/path/to/file/firewall.sh[/console]
Название файлу даёте которые захочете.
Спасибо.
Мне еще следовало написать о том, что после того, как я прописываю IP и netmask для eth1, а потом перезагружаю сетевые интерфесы /etc/init.d/networking restart, то eth0 не поднимется. Приходится поднимать его отдельно ifup eth0.
После ребута (все сетевые интерфейсы подняты до ребута) - все сетевые интерфейсы подняты.
Это нормально?
ERT, содержимое файла /etc/network/interfaces в студию, и как я говорил вывод ifconfig и ifconfig -a (первый покажет поднятые интерфейсы, второй все существующие)
ы. Файл советую поместить в /etc. Права на файл можно и не выставлять запускать только:
$ sh /etc/firewall.sh
и конечно с привилегиями суперпользователя.
ERT, почитайте про bash скрипты и iptables хотя бы основы, а то с сервером Дебиан и статическим IP вы проблем огребёте, потому как будете светится в интернет всем содержимым.
И вот эту строку не надо - она у меня для виртуалок:
modprobe virtio_net
Сохранил конфиг firewall.sh, закинул в etc и запускаю sh /etc/firewall.sh. Как понимаю, ему много чего не хватает.
Показать

Вот мой /etc/network/interfaces
Показать

Вот ifconfig
Показать

Вот ifconfig -a
Показать

Из скрипта удали вот ети строки
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe virtio_net
export IPT="/sbin/iptables "
export P_PLAN=eth0
export Z_PLAN=eth1
export Z_COMP=192.168.0.0/24
# flush all the rules in the filter and nat tables.
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F
# erase all chains that's not default in filter and nat table.
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Let's go
# Закрываем изначально ВСЁ:
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
# ********************************************************************************* #
# разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $Z_PLAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $Z_PLAN -j ACCEPT
# ********************************************************************************* #
# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим
# признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $P_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -o $Z_PLAN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $P_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $Z_PLAN -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
# ********************************************************************************* #
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $Z_PLAN -o $P_PLAN -j ACCEPT
# Разрешаем обмен между сетями
$IPT -A FORWARD -i $Z_PLAN -o $V_PLAN -j ACCEPT
# ********************************************************************************* #
# Маскарадинг
$IPT -t nat -A POSTROUTING -o $P_PLAN -s $Z_COMP -j MASQUERADE
$IPT -L -n -t nat
И пройдись по такому пути /proc/sys/net/ipv4 в MC. И посмотри где ошыбка в пути. Ищи файл ip_forward
Из скрипта удали вот ети строки
И пройдись по такому пути /proc/sys/net/ipv4 в MC. И посмотри где ошыбка в пути. Ищи файл ip_forward
Удалил. Тут я понял. У меня не установлен ftp и т.д.
[console]root@evolution:~# sh /etc/firewall.sh
: bad variable name
[/console]
Файл ip_forward есть, но он пустой, а точнее в нем одно значение "0"
В /etc/network/interfaces поменяй allow-hotplug eth0 на auto eth0 - после eth0 будет автоматом подниматься,
и к интерфейсу eth1 в конце допиши на всякий:
network 192.168.0.0
broadcast 192.168.0.255
по аналогии с eth0.
Так а сам iptables стоит?
Сделай:
$ aptitude install iptables
И еще поставь dnsmasq - это чтобы потом у клиентов dns-server был шлюз твой - 192.168.0.1
$ aptitude install dnsmasq
ы. И вставляй в сообщения текст, а не картинки, в firewall.sh строки не удаляй, просто закоментируй (поставь перед строкой #) - потом разберешься нужно оно тебе или нет.
kisil, modprobe iptable_nat - вот на это уж точно ругаться не должно, значит либо что-то не установлено либо (ну это экзотика) где нибудь кирилица или еще какие символы затесались.
После того, как добавил к сетевому интерфейсу eth0, в конце, network и broadcast
Показать
Running /etc/init.d/networking restart is deprecated because it may not enable a
gain some interfaces ... (warning).
Reconfiguring network interfaces.../etc/network/interfaces:19: duplicate option
ifdown: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:19: duplicate option
ifup: couldn't read interfaces file "/etc/network/interfaces"
failed.[/console]
iptables я не устанавливал, но вот как прошла попытка установить
Показать
Ни одного пакета не будет установлено, обновлено или удалено.
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 0 B архивов. После распаковки 0 B будет занято.[/console]
dnsmasq установил.
После того, как добавил к сетевому интерфейсу eth0, в конце, network и broadcastПоказать
[console]root@evolution:~# /etc/init.d/networking restart
Running /etc/init.d/networking restart is deprecated because it may not enable a
gain some interfaces ... (warning).
Reconfiguring network interfaces.../etc/network/interfaces:19: duplicate option
ifdown: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:19: duplicate option
ifup: couldn't read interfaces file "/etc/network/interfaces"
failed.[/console]
Ну у тебя где-то дубликаты, внимательней.
iptables я не устанавливал, но вот как прошла попытка установить
Показать
[console]root@evolution:~# aptitude install iptables
Ни одного пакета не будет установлено, обновлено или удалено.
0 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 0 B архивов. После распаковки 0 B будет занято.[/console]dnsmasq установил.
"Ни одного пакета не будет установлено...." - значит на месте всё ок.
На чём остановились?
Вот пример:
# /etc/network/interfaces
# Файл описывает сетевые интерфейсы доступные в системе и способы активирования их.
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
network xxx.xxx.xxx.xxx
broadcast xxx.xxx.xxx.xxx
gateaway xxx.xxx.xxx.xxx
dns-nameservers xxx.xxx.xxx.xxx
auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
Ну у тебя где-то дубликаты, внимательней.
На чём остановились?
Не к тому интерфейсу дописал.
Снова запускаю sh /etc/firewall.sh (закомментировал строки)
[console]root@evolution:~# sh /etc/firewall.sh
: Directory nonexistentnnot create /proc/sys/net/ipv4/ip_forward
: bad variable name
[/console]
dnsmasq как-то надо настраивать?