1 (01.01.2011 23:06:16 отредактировано AndreyMust19)

Помните тему http://linuxforum.ru/viewtopic.php?id=4831 ?
Пытаюсь сделать то же самое, но на Russian Fedora 14.

Есть 2 компьютера:
1) Linux Russian Fedora 14
2) Windows XP sp3
Интернет подключен к первому компьютеру (через сетевую карту eth0).
Через вторую сетевую карту (eth1) подключен компьютер [2].

Настройки этой сетевой карты на [1]:
IP: 192.168.0.1
Mask: 255.255.255.0

На [2] сетевая карта настроена так:
IP: 192.168.0.2
Mask: 255.255.255.0
Gateway: 192.168.0.1
DNS: 192.168.0.1

Также в /etc/sysctl.conf добавил:
net.ipv4.ip_forward = 1

А в /etc/rc.local:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Руководствовался следующей статьей: http://easylinux.ru/node/117

Результат - на [1] интернет есть, на [2] - нет. Ни по IP, ни по DNS-адресам.
Лампочки на всех сетевых картах горят и на [1] оба интерфейса включены.

Пробовал перезапускать сетевую службу:
# /etc/init.d/network restart
без изменений.

Вот вывод ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:50:8D:69:3A:70  
          inet addr:82.209.125.224  Bcast:82.209.125.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17576 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:23344894 (22.2 MiB)  TX bytes:1338281 (1.2 MiB)
          Interrupt:18 Base address:0x4000 

eth1      Link encap:Ethernet  HWaddr 00:E0:41:29:01:DD  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:105 errors:4 dropped:0 overruns:4 frame:0
          TX packets:143 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7776 (7.5 KiB)  TX bytes:18009 (17.5 KiB)
          Interrupt:18 Base address:0xa000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1800 (1.7 KiB)  TX bytes:1800 (1.7 KiB)

А вот - netstat -rn:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
82.209.125.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
0.0.0.0         82.209.125.1    0.0.0.0         UG        0 0          0 eth0

Вот почему 192.168.0.0, а не 192.168.0.1?

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

2 (02.01.2011 00:16:57 отредактировано AndreyMust19)

Кажется получилось:

system-config-firewall

Выбираем слева "Макскарад" и и ставим галочку "eth0".
Осталось всех перезагрузить и убедиться что настройки сохранились.

Алиллуйа! Работает!
Что-нибудь еще посоветуете?
Кстати, вместо DNS на [2] поставил те же DNS, что на [1].

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

3

В wiki вот что еще есть:
http://linuxforum.ru/help/дистрибутивы: … динга_дома

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

4

да, маску поставить 255.255.255.252

5 (09.01.2011 04:43:45 отредактировано AndreyMust19)

Установил Fedora на новый жесткий диск. Разница - только в окружении пользователя (KDE -> LXDE).
Запускаю

 Консоль:
system-config-firewall
а там в списке "Маскарад" только все интерфейсы eth+.

Как все-таки настроить передачу пакетов через [1] с помощью iptables? Вроде бы так:

 Консоль:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

должно работать, а не работает.
NetworkManager отключен, т. к. не запускается. Может быть я /etc/sysconfig/network-scripts/ неправильно настроил?
Вот они:

ifcfg-eth0

NAME=internet
DEVICE=eth0
ONBOOT=yes
IPADDR=82.209.125.224
NETMASK=255.255.255.0
NETWORK=82.209.125.0
BROADCAST=82.209.125.255
GATEWAY=82.209.125.1
DNS1=85.234.33.35
DNS2=85.234.32.23

ifcfg-eth1

DEVICE=eth1
NAME=gateway
ONBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NETWORK=192.168.0.0

И как отключить этот NetworkManager?

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

6

ntsysv и убираете отметку с NetworkManager... маршрутизация включена в /etc/sysctl.conf ?

7

Если у машины [1] внешний IP адрес постоянный то лучше использовать

 Консоль:

/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.1

И я всегда добавлял правило пересылки, иначе Инет раздаватся не будет:
 Консоль:

/sbin/iptables -A FORWARD -p tcp -s192.168.0.2 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s192.168.0.2 -j ACCEPT

Это без фильтрации, можно добавить фильтрацию по портам и/или протоколам.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

8 (10.01.2011 00:28:18 отредактировано AndreyMust19)

В общем, поставил я среду Gnome, там NetworkManager нормально работает. Настроил через него и

Система → Администратирование → Межсетевой экран

, так же, как писал ранее. Нет у меня времени возиться с неработающими вещами.
Vadimsky

/sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.0.1

Как это правило задать в программе Система → Администратирование → Межсетевой экран (system-config-firewall)?

http://linuxforum.ru/help/%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D1%8B:fedora:%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B

Рекомендуется к использованию:
«NetworkManager» - «Отключить», «Остановить».
«network» - «Включить», «Запустить».

У меня наоборот:

«NetworkManager» - «Включить», «Запустить».
«network» - «Отключить», «Остановить».

Это что-то меняет?

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

9

Это правило вводится из под рута с командной строки.
Для того, что бы каждый раз его, и другие правила, не вводить руками, можно написать простейший скрипт, типа:

 Консоль:

#!/bin/bash
#
SERVER=192.168.0.1 # Gateway
#
SYSADMIN=192.168.0.2
#
ALL=192.168.0.0/16
LAN=192.168.0.1 # eth0
WAN1=хх.194.хх.12 # eth1
INET=eth1

#
#echo 1 > /proc/sys/net/ipv4/ip_forward
#
#=================================================================================
#
### Firewall Security rules for Bastion Proxy-server
#
## Flush all default
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
#
## Setup policy DROP for all
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A INPUT -i eth1 -j DROP
/sbin/iptables -A INPUT -i eth2 -j DROP
#
## loop=trusted.
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT
#
## Drop invalid pakets
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
#
## ESTABLISHED connection
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#
## NAT for all
#/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth1 -j REDIRECT --to-ports 3128
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.0.1
#
## Rules for users access to DNS servers
/sbin/iptables -A INPUT -i eth0 -p udp --dport 53 -s $ALL -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 53 -s $ALL -j ACCEPT
/sbin/iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
#
## Access for users to DHCP servers
/sbin/iptables -A INPUT -i eth0 -p udp --dport 67 -s $ALL -j ACCEPT
#
## Access to SQUID Proxy
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3128 -s $ALL -j ACCEPT
#
## Access to HAVP Proxy
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 8080 -s $ALL -j ACCEPT
#
## Remote SSH control for this machine
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -s $SYSADMIN -j ACCEPT
#
## Setup PING
/sbin/iptables -A OUTPUT -p icmp -m icmp -o eth0 --icmp-type echo-request -j ACCEPT
/sbin/iptables -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -m icmp -o eth1 --icmp-type echo-request -j ACCEPT
/sbin/iptables -A OUTPUT -p icmp -m icmp -o eth2 --icmp-type echo-request -j ACCEPT
#
## Setup Internet access for this machine all protocols
/sbin/iptables -A OUTPUT -o $INET -p tcp -m multiport --dport 20,21,22,25,80,110,143,443,993,2041,2042,5190,5222,8000,8080 -j ACCEPT
/sbin/iptables -A OUTPUT -o $INET -p udp -m multiport --dport 20,21,22,25,80,110,143,443,993,2041,2042,5190,5222,8000,8080 -j ACCEPT
#
/sbin/iptables -A FORWARD -p tcp -s $SYSADMIN -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s $SYSADMIN -j ACCEPT


Что то типа такого, но подчекну, что приведённый тут скрипт - всего лишь пример и его нужно подогнать под свои нужды: интерфейсы, адреса, правила.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

10

Нет уж, слишком сложно  smile . Оставлю так, как есть.
И правила, по-моему, хранятся в /etc/sysconfig/iptables, а не в скрипте должны задаваться. Один перезапуск службы - и все настройки потеряются.
Если понадобится настроить файерволл - создам отдельную тему.

В Linux вы имеете компьютер.
В Windows компьютер имеет вас!

11

Всё правильно, храняться они в /etc/sysconfig/iptables это когда уже всё настроено, а на монент разных експерименотов и посика нирваны задаются через скрипт.
Впрочем многие, после того как нирвану найдут, скрипт оставляют, просто прописывая его в автозагрузку.
Принципиальной разницы нету. Кому как ловчее и проще.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

12

Dir-300 - вот решение проблемы (1500 рублей), потом можно и еще подключить и еще и даже по вайфай.
извини как настроить сетку в линуксе не знаю, но Dir-300 тоже вариант (без подколов)

SimplyLinux 7

13

AAD пишет:

но Dir-300 тоже вариант (без подколов)

да. причём можно семёрочку поставить - тоже будет работать. Только у нас тема НЕ О ТОМ.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14

Здравствуйте.
Не так давно начал изучать и работать с линукс, есть смешанная сеть Windows/Linux, сейчас поднимаю пару серверов на Centos.
Пытаюсь запустить маскарадинг на будущем шлюзе (Centos) по статье http://easylinux.ru/node/117, делал все как описано, сталкиваюсь с такой проблемой:
в инет смотрит eth0
в локалку смотрит eth1
Инет раздается с дсл модема, работающего роутером.
До того, как поправлен файл /etc/sysctl.conf (net.ipv4.ip_forward=1)
и выполнено:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sysctl -w net.ipv4.ip_forward="1"

пинги на шлюзе во внешку идут, доступ в инет есть.
После  того как выполнены эти настройки и перезагружены сетевые интерфейсы, пинги на шлюзе не проходят, доступа в инет нет, видно что ответ приходит от eth1.
подскажите куда смотреть или где мог накосячить?

настройки интерфейсов напишу через пару часов.

15

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NETWORK=192.168.1.0
ONBOOT=yes

DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.12.6
NETMASK=255.255.255.0
ONBOOT=yes

dsl модем был настроен роутером
ip 192.168.1.1
dhcp отключен

какие данные еще нужны?

настройки, которые прописывает скрипт в сообщении выше (http://linuxforum.ru/viewtopic.php?pid=130764#p130764) обязательны?