LINUX.ORG.RU
ФорумAdmin

помогите пожалуйста разобраться с настройкой файрвола на eth1 и eth0


0

0

Народ, помогите разобраться с глюками route и iptables!

есть eth1 & eth0, eth0 смотрит на провайдера, eth1 смотрит в локальную сеть.

параметры eth0(провайдер выделил айпиадрес):

ip 193.234.36.162
netmask 255.255.255.240
gateway 193.234.32.66
DNS 193.234.36.161

параметры eth1:

ip 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.1
DNS 10.0.0.1

роутинг(все встало по дефолту):

[root@amur root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
193.234.36.160  0.0.0.0         255.255.255.240 U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         193.234.36.161  0.0.0.0         UG    0      0        0 eth0

ifconfig:

[root@amur root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:C0:26:AB:BB:1D
          inet addr:193.234.36.162  Bcast:193.234.36.175
Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:470 errors:0 dropped:0 overruns:0 frame:0
          TX packets:507 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:391767 (382.5 Kb)  TX bytes:86182 (84.1 Kb)
          Interrupt:10 Base address:0xdf00

eth1      Link encap:Ethernet  HWaddr 00:C0:26:AB:B3:0C
          inet addr:10.0.0.1  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1474 (1.4 Kb)  TX bytes:240 (240.0 b)
          Interrupt:11 Base address:0xfe00

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:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:140 (140.0 b)  TX bytes:140 (140.0 b)

Локальная сеть пингуется с сервера. Сервер пингуется из локальной сети по
адресам 10.0.0.1 и 193.234.36.162(и так-же грузится по адресу amur.mss.ru)
далее ввожу команду, которая позволяет роутить пакеты с eth1 между собой:

route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1 eth1

после этого

[root@amur root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
193.234.36.160  0.0.0.0         255.255.255.240 U     0      0        0 eth0
10.0.0.0        10.0.0.1        255.255.255.0   UG    0      0        0 eth1
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         193.234.36.161  0.0.0.0         UG    0      0        0 eth0

все пинги из локалкик серверуи наоборот идут.

далее скрипт(rc.firewall.txt из Ipitables Tutorial), которым настраиваю 
iptables(просто для автоматизации написал скрипт):

#!/usr/bin/perl

$INET_IP="193.234.36.162";
$INET_IFACE="eth0";

$LAN_IP="10.0.0.1";
$LAN_IP_RANGE="10.0.0.0/16";
$LAN_BCAST_ADRESS="10.0.0.255";
$LAN_IFACE="eth1";

$LO_IFACE="lo";
$LO_IP="127.0.0.1";

$IPTABLES="/sbin/iptables";
$test=qq~
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
echo "1">/proc/sys/net/ipv4/ip_forward
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N icmp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udpincoming_packets
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 5000 -j ACCEPT
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udpincoming_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -d $LAN_BCAST_ADRESS -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died:"
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died:"
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died:"
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP~;

do{qx[$_]; print "$_\n"} for split m!\n! => $test;

после этого с сервера в инет не идет ни один пинг(локака продолжает
пинговаться) и вообще ничего. Но из локалки становятся видными сайты, но
только по ip адресам!! т.е. www.rbc.ru - не зайдет, но есть написать
рбсишный ip, то зайдет. Причем из локалки с виндузятнической машины нельзя
зайти ни на один внешний адрес(т.е. не работает ssh наружу, http работает а
sshh нет). И к тому-же сам изменился 

[root@amur root]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
193.234.36.160  0.0.0.0         255.255.255.240 U     0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         193.234.36.161  0.0.0.0         UG    0      0        0 eth0

хотелось бы чтобы народ по ftp лазил из локалки и мог снимать и читать почту
откуда угодно. Не говоря уже о том, что я не шарю виден ли извне из 
интернета сайт сервера и принимается ли из интернета почта... 

где я неправ, в настройках локальной сети? или в настройках iptables? Ведь
до введения команд в iptables с сервака была спокойно видна сеть и можно
было снимать почту... Что делать?

Спасибо!
anonymous

Да....... Я еле дочитал.

Для начала убери iptables, и пока не настроишь routing не включай его.

Никаких команд типа route add -net 10.0.0.0 netmask 255.255.255.0 gw 10.0.0.1 eth1 на сервере вводить не надо. Этой командой ты говоришь серверу, что пакеты в сеть 10.0.0.0 надо посылать через eth1 и 10.0.0.1. Но он и так это знает. Это же его интерфейс, и он находится непосредственно в этой сети.

И то что есть:

193.234.36.160 0.0.0.0 255.255.255.240 U 0 0 0 eth0 10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 193.234.36.161 0.0.0.0 UG 0 0 0 eth0

трогать не надо.

На сервере надо разрешить проходить пакетам между интерфейсами. Для этого в /proc/sys/net/ipv4/ip_forward надо записать 1. Либо, найти файлик /etc/sysctrl.conf и по аналогии добавить там строчку, чтобы сдкелать тоже самое более лучшим (на мой взгляд) методом.

А gateway по умолчанию 10.0.0.1 надо прописывать на машинах твоей внутренней сети.

Если я ничего не забыл, и правильно тебя понял, то должно заработать.

Потом будешь разбираться с iptables.

Octopus
()

ну я записал в файл /etc/sysctl.conf единичку 

# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) for
# more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 1 #вот тута

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 1

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# TCP Explict Congestion Notification
#net.ipv4.tcp_ecn = 0

# Recomended GRsecurity settings
# secure file ops
kernel.grsecurity.fifo_restrictions = 1
kernel.grsecurity.linking_restrictions = 1
# audit some operations
kernel.grsecurity.audit_mount=1
kernel.grsecurity.signal_logging=1
#kernel.grsecurity.suid_logging=1
kernel.grsecurity.timechange_logging=1
kernel.grsecurity.forkfail_logging=1
# usefull coredump naming
kernel.grsecurity.coredump = 1
# lock all security options
#kernel.grsecurity.grsec_lock = 1

а оно мне все равно маршрутизацию запрещает, причем только после второго ввода команды service network restart, причем потом сколько не вводи - все так-же запрещает... :((

[root@amur root]# service network restart
Деактивируется интерфейс eth0:                             [  ОК  ]
Деактивируется интерфейс eth1:                             [  ОК  ]
Деактивируется интерфейс-петля:                            [  ОК  ]
Запрещается маршрутизация пакетов IPv4:                    [  ОК  ]
Устанавливаются параметры сети:                            [  ОК  ]
Активируется интерфейс loopback:                           [  ОК  ]
Активируется интерфейс eth0:                               [  ОК  ]
Активируется интерфейс eth1:                               [  ОК  ]

если это то, что мне нужно было сделать, то вроде все работает

anonymous
()

простите что встреваю, но не пойму: ip 193.234.36.162 netmask 255.255.255.240 gateway 193.234.32.66 ^^^^^^^^^^ DNS 193.234.36.161 как вот с этим может чтото работать? айпишник интерфейса в одной сетке, гейт в другой или ты очепятался ?

anonymous
()

193.234.32.66 - да действительно это мой DNS, а 193.234.36.161 это gateway мне такие настройки дал провайдер, если не мудрить с локальной сеткой, то все работает и настраивается...

Где можно доку про route прочитать?? Net-3 HOWTO читал, но может я такой тупой... она мне написала, что запрещен форвардинг пакетов. asplinux7.3

anonymous
()

параметры eth0(провайдер выделил айпиадрес):

ip 193.234.36.162 netmask 255.255.255.240 DNS 193.234.32.66 gateway 193.234.36.161

действительно опечатался, гатевей в той-же подсетке стоит...

anonymous
()

Только это, маскарадинг включи. Не с локальными же ip тебе в инет лазить.

$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Octopus
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.