Имеем Линукс на базе 2.2.х ядра. Через него ходят в сеть с локалки, masquerading сделан на ipchains соответственно. Возникла неоходимость пробросить в локалку мелкую подсетку из реального сегмента. Соответственно на интеррфейс 192.168.1.1 назначаем альяс и ждем чуда. Чудо, как всегда, задерживается... 8( Хорошо, идем до цепочки forward и разрешаем прием пакетов на данную реальную подсеть... Аналогично - маршрутизация отсутствует как класс... В какую сторону рыть?
>Имеем Линукс на базе 2.2.х ядра. Через него ходят в сеть с
>локалки, masquerading сделан на ipchains соответственно. Возникла неоходимость пробросить в локалку
>мелкую подсетку из реального сегмента. Соответственно на интеррфейс 192.168.1.1 назначаем альяс
>и ждем чуда. Чудо, как всегда, задерживается... 8( Хорошо, идем до
>цепочки forward и разрешаем прием пакетов на данную реальную подсеть... Аналогично
>- маршрутизация отсутствует как класс... В какую сторону рыть?я правда реально не пробовал, но думаю что так:
1. на внутреннем интерфейсе подними внеш ип из той области.
2. на локальных компах подними внеш ипы из той области, указав default gatway сам понимаешь какой ип.
3. ipchains, пока "выключи". организуй просто маршрутизатор (echo "1" > ... )
думаю, должно сработатьпотом, если получится работать локальным пользователям (у которых внеш ипы) ,"по-тихоньку" накатывай свой фиревол...
Camb
>я правда реально не пробовал, но думаю что так:
>1. на внутреннем интерфейсе подними внеш ип из той области.
>2. на локальных компах подними внеш ипы из той области, указав default
>gatway сам понимаешь какой ип.
>3. ipchains, пока "выключи". организуй просто маршрутизатор (echo "1" > ... )
>думаю, должно сработатьБудешь долго смеятся - делал и так... Толи лыжи не едут, то ли... :(
Mожет такой скрипт поможет?здесь нужно указать правильный путь к модулям.
......insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_ftp.o
......insmod /lib/.....
....
#####################################################
#!/bin/sh
# Starting up the firewall
echo
echo Stand by while starting up the firewall...
echo
# Starting IP forwarding
echo Starting IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# IP Forward mu? vorher aktiviert werden.
# Unter SuSE sollte der Befehl in der rc.config aktiviert werden.
# Bei Masquerading mu? zus?tzlich noch IP_DYNIP in der
# rc.config aktiviert sein.
echo Start RP filter for anti spoofing shield
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Anti Spoofing Schutz wird aktiviert.# Deleting all chains
echo Deleting all existing chains...
ipchains -F
# Alle existierenden Regeln werden gel?scht# Default policy
echo Setting up default policy...
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY
# Die Default Policy wird auf DENY gesetzt
# Somit haben Sie jetzt eine ultimative Firewall# Variables
echo Setting up all defined variables...
DEV_LNET=eth0
IP_LNET=192.168.0.1
DEV_INET=ppp0
LNET=192.168.0.0/24
GLOBAL=0.0.0.0/0
# Alle n?tigen Variabeln werden jetzt definiert# Loopback
echo Setting up loopback interface...
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
# Zugriff auf den Loopback Device# Intranet connections
echo Setting up intranet connections...
ipchains -A input -i eth0 -s $LNET -j ACCEPT
ipchains -A output -i eth0 -d $LNET -j ACCEPT
# Das maskierte Netz hat Zugriff auf das Netzwerk Device ETH0# Internet connections
echo Setting up internet syn connections...
ipchains -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
# Alles was aus dem LAN ?ber dem Port 1023 auf ETH0 ankommt
# und TCP verwendet wird akzeptiert und an die forward chain ?bergeben
ipchains -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
# Alles was aus dem LAN ?ber dem Port 1023 und TCP verwendet
# wird maskiert, an das IPPP0 weitergeleitet (geroutet)
# und somit an die output chain ?bergeben
ipchains -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
# Alles was von ?berall ($GLOBAL) ?ber das IPPP0 Device nach
# drau?en m?chte und TCP verwendet wird akzeptiert.
# Jetzt folgt nochmal genau das selbe nur mit dem UDP Protokoll.
# Dieses ist zum Beispiel notwendig f?r Nameserveranfragen.
ipchains -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
ipchains -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
ipchains -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT# Internet answers
echo Setting up internet ack connections...
ipchains -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
ipchains -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
# Diese beiden Regeln sind daf?r zust?ndig, da? aktives FTP funktioniert.
# Ich erlaube also einen Zugriff auf einen privilegierten Port (Ger?t PPP0).
# Allerdings kann niemand auf den Port eine Verbindung aufbauen da
# er daf?r den Kontrollport 21 braucht, der allerdings von au?en gesperrt ist.
ipchains -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
# Alles was ?ber dem Port 1023 mit dem Protokoll TCP auf dem IPPP0 Device
# ankommt wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.
ipchains -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
# Alles ?ber dem Port 1023 mit dem Protokoll TCP und dem LAN als
# Ziel wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.
ipchains -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
ipchains -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT# icmp-acc
echo Setting up icmp defined restrictions...
ipchains -N icmp-acc
# Benutzerdefinierte Chain wird erstellt.
ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
# ICMP Pakete (echo-reply, echo-request , destination-unreachable, source-quench
# time-exceeded, parameter-problem) werden akzeptiert.# icmp
echo Setting up icmp major restrictions...
ipchains -A input -p icmp -j icmp-acc
# Alle eingehenden Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.
ipchains -A forward -p icmp -j MASQ
# Alle Pakete die zwischen den Netzwerk Devices geroutet und maskiert.
ipchains -A output -p icmp -j icmp-acc
# Alle ausgehende Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.# Masquerading
echo Loading modules for masquerading...
# Module f?r Masquerading werden geladen
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_ftp.o
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_irc.o
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_quake.o
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_raudio.o
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_vdolive.o
insmod /lib/modules/2.2.16-SMP/ipv4/ip_masq_cuseeme.o
echo
echo Firewall active
echo
###################################################
ipchains не работает с алиасами(он должен это писать при попытке использовать алиас в правилах)
ipfw работал а ipchains точно нет.