LINUX.ORG.RU
ФорумAdmin

NAT для списка адресов


0

0

Сейчас у меня в сетке инет с модема ppp0 раздается так:

iptables -A FORWARD -s 10.255.255.0/24 -j ACCEPT
iptables -A FORWARD -d 10.255.255.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -s 10.255.255.0/24 -j MASQUERADE

т.е. для всего диапазона адресов с 10.255.255.0 до 10.255.255.255.
Юзеры задолбали, хочу сделать, чтобы инет был доступен только определенному списку машин. Как лучше это сделать? Очень желательно, чтобы список допущенных к инету машин читался из отдельного текстовика.

anonymous

Заводите отдельную цепочку, а лучше две, и в нее отправляет все из FORWARD.

# iptables -N To_Local
# iptables -N From_Local
# iptables -A FORWARD -s 10.255.255.0/24 -j From_Local
# iptables -A FORWARD -d 10.255.255.0/24 -j To_Local

Цепочку формирует скриптом, который и читает все из файла:

#!/bin/bash
for ch in To_Local From_Local ; do
iptables -F $ch
iptables -A $ch -m state --state ESTABLISHED -j ACCEPT
done
cat /etc/good_hosts | while read ip ; do
iptables -A To_Local -d $ip -j ACCEPT
iptables -A From_Local -s $ip -j ACCEPT
done
for ch in To_Local From_Local ; do
iptables -A $ch -j DROP
done


# cat /etc/good_hosts
10.255.255.15
10.225.255.20

P.S. Ну и скрипт вызывать при старте системы, и после изменения файла...

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