Жесткая настройка сети [message #12440] |
Sat, 28 April 2007 09:17 ![Go to next message Go to next message](/theme/ovz3/images/down.png) |
Shursander
Messages: 21 Registered: March 2007
|
Junior Member |
|
|
Почитал на http://www.opennet.ru/docs/RUS/virtuozzo/ достаточно путанный и скорее всего старый перевод
Возник вопрос:
как можно жестко настроить сетевые интерфейсы чтобы пользователи виртуальных машин не смогли их изменить (IP-адрес, Мак, Маску и прочее)?
Вроде придумали как делать...
При запуске ВМ используется скрипт vznet.conf
в нем вписываются настройки iptables разрешающие форвард...
/sbin/iptables -A FORWARD -i eth0 -o $VZHOSTIF -d $VETH_IP_ADDRESS -j ACCEPT
/sbin/iptables -A FORWARD -o eth0 -i $VZHOSTIF -s $VETH_IP_ADDRESS -j ACCEPT
Естесно если пользователь меняет адрес у него все перестает работать...
Но возникает следующий вопрос...
Как можно сказать что при запуске vzctl stop выполнятся еще какой то скрипт???
![http://www.korpuskula.ru/images/sh/sh-image.gif](http://www.korpuskula.ru/images/sh/sh-image.gif)
[Updated on: Sat, 28 April 2007 09:53] Report message to a moderator
|
|
|
|
Re: Жесткая настройка сети [message #12541 is a reply to message #12528] |
Wed, 02 May 2007 12:13 ![Go to previous message Go to previous message](/theme/ovz3/images/up.png) ![Go to next message Go to next message](/theme/ovz3/images/down.png) |
Shursander
Messages: 21 Registered: March 2007
|
Junior Member |
|
|
uname -a
Linux vm.local.net 2.6.18-ovz028stab027.1-smp #1 SMP Mon Apr 9 16:19:53 MSD 2007 x86_64 x86_64 x86_64 GNU/Linux
Где то в вики (openvz) читал что можно для настройки сети использовать vznet.conf с таким содержанием ...
#!/bin/bash
EXTERNAL_SCRIPT="/usr/sbin/vznetaddroute"
содержание vznetaddroute
#!/bin/sh
#
#
VZCONFDIR=/etc/vz
VZHOSTIF=$BASH_ARGV
VZNETCFG=$VZCONFDIR/conf/$VEID.conf
[ -f ${VZNETCFG} ] && source ${VZNETCFG}
if [[ -n "${VETH_IP_ADDRESS_LAN}" && $VZHOSTIF = "veth$VEID.0" ]]; then
echo "Adding interface $VZHOSTIF and route $VETH_IP_ADDRESS for VE$VEID to VE0"
/sbin/ifconfig $VZHOSTIF 0
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
/sbin/ip route add $VETH_IP_ADDRESS_LAN dev $VZHOSTIF
vzctl exec $VEID /sbin/ifconfig eth0 $VETH_IP_ADDRESS_LAN/19
vzctl exec $VEID /sbin/route add default gw 192.168.0.1
/sbin/iptables -A FORWARD -i eth0 -o $VZHOSTIF -d $VETH_IP_ADDRESS_LAN -j ACCEPT
/sbin/iptables -A FORWARD -o eth0 -i $VZHOSTIF -s $VETH_IP_ADDRESS_LAN -j ACCEPT
fi
if [[ -n "${VETH_IP_ADDRESS_WAN}" && $VZHOSTIF = "veth$VEID.1" ]]; then
echo "Adding interface $VZHOSTIF and route $VETH_IP_ADDRESS_WAN for VE$VEID to VE0"
/sbin/ifconfig $VZHOSTIF 0
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/proxy_arp
echo 1 > /proc/sys/net/ipv4/conf/$VZHOSTIF/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth0/forwarding
echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
/sbin/ip route add $VETH_IP_ADDRESS_WAN dev $VZHOSTIF
vzctl exec $VEID /sbin/ifconfig eth1 $VETH_IP_ADDRESS_WAN/28
vzctl exec $VEID /sbin/route del default
vzctl exec $VEID /sbin/route add default gw 10.10.10.1
/sbin/iptables -A FORWARD -i eth1 -o $VZHOSTIF -d $VETH_IP_ADDRESS_WAN -j ACCEPT
/sbin/iptables -A FORWARD -o eth1 -i $VZHOSTIF -s $VETH_IP_ADDRESS_WAN -j ACCEPT
fi
Вроде все нормально...
И добавил в vps-stop
#!/bin/bash
# Copyright (C) 2000-2007 SWsoft. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#
# This script does clean up after VE shutdown
#
# Parameters are passed in environment variables.
# Required parameters:
# VEID - VE id
# IP_ADDR - VE IP address(es) divided by spaces
. /usr/lib64/vzctl/scripts/vps-functions
# get list of network devices for vzarp
vzgetnetdev
# Add here
vzcheckvar VEID
VZCONFDIR=/etc/vz
VZNETCFG=$VZCONFDIR/conf/$VEID.conf
[ -f ${VZNETCFG} ] && source ${VZNETCFG}
if [ -n "${VETH_IP_ADDRESS_LAN}" ]; then
echo "Remove route $VETH_IP_ADDRESS for VE$VEID"
/sbin/iptables -D FORWARD -i eth0 -o veth$VEID.0 -d $VETH_IP_ADDRESS_LAN -j ACCEPT
/sbin/iptables -D FORWARD -o eth0 -i veth$VEID.0 -s $VETH_IP_ADDRESS_LAN -j ACCEPT
fi
if [ -n "${VETH_IP_ADDRESS_WAN}" ]; then
echo "Remove route $VETH_IP_ADDRESS_WAN for VE$VEID"
/sbin/iptables -D FORWARD -i eth1 -o veth$VEID.1 -d $VETH_IP_ADDRESS_WAN -j ACCEPT
/sbin/iptables -D FORWARD -o eth1 -i veth$VEID.1 -s $VETH_IP_ADDRESS_WAN -j ACCEPT
fi
# End Add
for IP in $IP_ADDR; do
vzdelrouting $IP
vzarp del $IP
done
exit 0
# end of script
Все это отрабатывает на ура...
Но вот очередной вопрос может это конечно глюк может мои кривые руки...
Но при запуске iptables на хост машине (VE102) почему то из файла берутся не все строки... т.е. 10 строк отрабатывается нормально а с 11 начинаются проблемы....
При попытке добавить (11 строка в файле)
iptables -A INPUT -s 192.168.1.15 -p tcp --dport ftp -j ACCEPT
пишет
iptables: Unknown error 18446744073709551615
Хотя такую строку отработал нормально (10 строка)...
iptables -A INPUT -s 192.168.5.14 -p tcp --dport ftp -j ACCEPT
Последний вопрос снимается ))) чтение документации помогает в понимании ))) NUMIPTENT=Значение, насколько я понял как раз за это и отвечает... =)
![http://www.korpuskula.ru/images/sh/sh-image.gif](http://www.korpuskula.ru/images/sh/sh-image.gif)
[Updated on: Wed, 02 May 2007 12:39] Report message to a moderator
|
|
|
|