Как правильно задать переменную чтобы iptables читал список ip адресов ?
В конфиге есть строка
# Кого перенаправлять на SQUID
SQUID="/etc/sysconfig/network/squid"
################################
#Само правило
iptables -t nat -A PREROUTING -s $SQUID -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
В ответ ругань
./iptables
iptables v1.4.16.3: invalid mask `squid' specified
Try `iptables -h' or 'iptables --help' for more information.
В самом файле squid пробовал писать
192.168.10.3
и так
192.168.10.3/255.255.255.0
и так
192.168.10.3 255.255.255.0
Все равно в ответ
В ответ ругань
./iptables
iptables v1.4.16.3: invalid mask `squid' specified
Try `iptables -h' or 'iptables --help' for more information.
LinuxForum.Fans
Задание переменной при прозрачном прокси
Автор: leksstav
4 сообщений
870 просмотров
Для данной задачи используйте ipset.
Можно использовать построчное чтение из файла, например:
text
#!/bin/bash
cat file.txt | while read line
do
# Обрезать строку до символа #
l1=$(echo "$line" | grep -o '^[^#]*')
echo "$l1"
done
Вот еще решение:
text
# указываем путь к текстовому файлу, содержащему список ip,
# для которых все сайты открыты
goodip=( $(cat "/home/virtdiver/ipbd.txt") )
# Разрешаем аську избранным
i=0
for i in "${goodip[@]}"
do
$ip -A FORWARD -p tcp -d $i --sport 5190 -j ACCEPT
$ip -A FORWARD -p tcp -s $i --dport 5190 -j ACCEPT
done
facepalmcat file.txt | while read line do # Обрезать строку до символа # l1=$(echo "$line" | grep -o '^[^#]*') echo "$l1" done
text
sed 's/#.*//'Войдите или зарегистрируйтесь, чтобы ответить.