Перейти до

NAT


Рекомендованные сообщения

Банальный NAT:

/etc/rc.d/rc.firewall

#Закрываем все нафиг

iptables -P INPUT DROP

iptables -P FORWARD DROP

#Открываем кусочек

iptables -A INPUT -i eth1 -s 192.168.1.0/24 -j ACCEPT

#eth0 - внешний инерфейс, он имеет айпи 10.0.5.210

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to-source 10.0.5.210

 

Что должен содержать файл /etc/stargazer/OnConnect кроме двух строк

iptables -A FORWRD -i eth1 -s $clientip -j ACCEPT

iptables -A FORWRD -d $clientip -j ACCEPT

для того, чтобы работал NAT?

 

Если нужны еще какие-то строки для iptables - скажите плиз какие именно.

По-мойму, не хватает чего-то типа ip=$clientip и подобной хренотени.

Ссылка на сообщение
Поделиться на других сайтах

Привожу пример своих

firewall

#!/bin/bash

#external ip

ip1="x.x.x.x"

 

 

#internal ip

ip2="x.x.x.x"

 

echo "1" > /proc/sys/net/ipv4/ip_forward

/sbin/modprobe ip_conntrack_ftp

/sbin/modprobe ip_nat_ftp

#

iptables -t filter -F

iptables -t filter -X

 

iptables -t nat -F

iptables -t nat -X

 

iptables -t filter -P INPUT DROP

iptables -t filter -P FORWARD DROP

iptables -t filter -P OUTPUT DROP

 

iptables -t filter -A INPUT -i $EXT_IFACE -d $ip1 -j ACCEPT

iptables -t filter -A INPUT -i $EXT_IFACE -d $ip2 -j ACCEPT

iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

iptables -t filter -A OUTPUT -s $ip1 -j ACCEPT

iptables -t filter -A OUTPUT -s $ip2 -j ACCEPT

 

#lo

iptables -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

iptables -t filter -A OUTPUT -s 127.0.0.1 -j ACCEPT

#r1

iptables -t filter -A INPUT -d $ip1 -j ACCEPT

iptables -t filter -A OUTPUT -s $ip1 -j ACCEPT

#r2

iptables -t filter -A INPUT -d $ip2 -j ACCEPT

iptables -t filter -A OUTPUT -s $ip2 -j ACCEPT

 

#DNS

#iptables -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p tcp --dport 53 -j ACCEPT

#iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT

 

#iptables -t filter -A INPUT -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --sport 53 -j ACCEPT

iptables -t filter -A FORWARD -p udp --dport 53 -j ACCEPT

#iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT

 

#authorizer

iptables -t filter -A INPUT -p udp -s 0.0.0.0/0 --sport 5555 -d $servip1 --dport 5555 -j REJECT

iptables -t filter -A OUTPUT -p udp -d 0.0.0.0/0 --dport 5555 -s $servip1 --sport 5555 -j REJECT

iptables -t filter -A INPUT -p udp -s 0.0.0.0/0 --sport 5555 -d $servip2 --dport 5555 -j ACCEPT

iptables -t filter -A OUTPUT -p udp -d 0.0.0.0/0 --dport 5555 -s $servip2 --sport 5555 -j ACCEPT

 

#untruster ports

iptables -t filter -I INPUT -p tcp -d $ip2 --dport 5555 -j REJECT

iptables -t filter -I INPUT -p tcp -d $ip2 -s x.x.x.x --dport 5555 -j ACCEPT

 

OnConnect

#!/bin/sh

# Lnogin

 

LOGIN=$1

echo $2

IP=$2

CASH=$3

ID=$4

#echo "connect" >> /tmp/qqq

 

iptables -t filter -A INPUT -s $IP -j ACCEPT

iptables -t filter -A FORWARD -s $IP -j ACCEPT

iptables -t filter -A FORWARD -d $IP -j ACCEPT

iptables -t filter -A OUTPUT -d $IP -j ACCEPT

 

#echo "Connect login=$LOGIN ip=$IP cash=$CASH id=$ID" >> /tmp/connect

 

OnDisconnect

#!/bin/bash

LOGIN=$1

ip=$2

CASH=$3

ID=$4

#echo "disconnect" >> /tmp/test

 

iptables -t filter -D INPUT -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D INPUT -s $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D FORWARD -s $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -s $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D FORWARD -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D FORWARD -d $ip -j ACCEPT

done

 

##################################

 

iptables -t filter -D OUTPUT -d $ip -j ACCEPT

while [ $? -eq 0 ]

do

iptables -t filter -D OUTPUT -d $ip -j ACCEPT

done

 

#echo "Disconnect login=$LOGIN ip=$ip cash=$CASH id=$ID" >> /tmp/disconnect

 

POSTROUTING

#!/bin/bash

 

IPT=/sbin/iptables

IP="x.x.x.x"

LAN="192.168.x.x/24"

 

$IPT -A POSTROUTING -t nat -s $LAN -j SNAT --to-source $IP

 

Может где ошибся так что необессудьте.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо что отозвался, но это что-то злобное.

 

Народ, еще будут варианты? Я думал что мне сразу помогут в этом вопросе...все же используют этот файлик по идее...

Ссылка на сообщение
Поделиться на других сайтах

в /etc/sysctl.conf пропиши строку

net.ipv4.ip_forward=1

если прописано то в /etc/stargazer/OnConnect после строчек

iptables -A FORWRD -i eth1 -s $clientip -j ACCEPT

iptables -A FORWRD -d $clientip -j ACCEPT

пишеш

 

iptables -t nat -I POSTROUTING 1 -s $2 -j SNAT --to-source 10.0.5.210

 

в /etc/stargazer/OnDisonnect

 

iptables -t nat -D POSTROUTING 1 -s $2 -j SNAT --to-source 10.0.5.210

 

все должно быть ОК

Ссылка на сообщение
Поделиться на других сайтах
  • 4 weeks later...
в /etc/sysctl.conf пропиши строку

net.ipv4.ip_forward=1

если прописано то в /etc/stargazer/OnConnect после строчек

iptables -A FORWRD -i eth1 -s $clientip -j ACCEPT

iptables -A FORWRD -d $clientip -j ACCEPT

пишеш

 

iptables -t nat -I POSTROUTING 1 -s $2 -j SNAT --to-source 10.0.5.210

 

в /etc/stargazer/OnDisonnect

 

iptables -t nat -D POSTROUTING 1 -s $2 -j SNAT --to-source 10.0.5.210

 

все должно быть ОК

Эти скрипты могут пропускать трафик для незаконченных сессий.

Надо чтобы политика по умолчанию в DROP была для FORWARD.

 

Если просто, то надо, чтобы в

Firewall:

 

/sbin/iptables -F; iptables -t nat -F; iptables -t mangle -F

/sbin/iptables -t filter -P FORWARD DROP

 

Включаем форвардинг и маскарадинг в:

OnConnect

 

iptables -t filter -A FORWARD -s $2 -j ACCEPT

iptables -t filter -A FORWARD -d $2 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -s $2 -j MASQUERADE

 

И выключаем в:

OnDisconnect

 

iptables -t filter -D FORWARD -s $2 -j ACCEPT

iptables -t filter -D FORWARD -d $2 -j ACCEPT

iptables -t nat -D POSTROUTING -o eth1 -s $2 -j MASQUERADE

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...