Garik 51 Опубликовано: 2005-01-15 17:48:12 Share Опубликовано: 2005-01-15 17:48:12 Народ! Подскажите, пожалуйста, как настроить iptables и скрипт OnConnect, чтобы пускать юзеров _только_ по опрделенным портам в инет. Айпи статический. к примеру, нужны 25,110,5190. все остальные необходимо запретить... подкиньте примеры пожалуйста по правилам которые предлогаются в руководстве натятся все порты... Подскажите, пожалуйста, как граммотно пускать eDonkey/eMule в инет для получения HighID. Я делаю так: $IPT -t nat -A PREROUTING --dst $ext_ip -p tcp --dport 4661 -j DNAT --to-destination 192.168.1.101 $IPT -t nat -A POSTROUTING --dst 192.168.1.101 -p tcp --dport 4661 -j SNAT --to-source $int_ip $IPT -t nat -A PREROUTING --dst $ext_ip -p udp --dport 4661 -j DNAT --to-destination 192.168.1.101 $IPT -t nat -A POSTROUTING --dst 192.168.1.101 -p udp --dport 4661 -j SNAT --to-source $int_ip $IPT -t nat -A PREROUTING --dst $ext_ip -p tcp --dport 4672 -j DNAT --to-destination 192.168.1.101 $IPT -t nat -A POSTROUTING --dst 192.168.1.101 -p tcp --dport 4672 -j SNAT --to-source $int_ip Заранее спасибо! Ссылка на сообщение Поделиться на других сайтах
Genius 0 Опубліковано: 2005-01-21 22:50:53 Share Опубліковано: 2005-01-21 22:50:53 Чтобы натить определенные порта напиши правила с ключом --dport где пропиши нужные порты. Насчет edk это довольно сложно, необходимо чтобы вовнутрь к клиенту проходил коннект по порту 4662 (по умолчанию), для этого надо использовать комбинацию DNAT+SNAT, если ты хочешь чтобы это делалось для всех клиентов, заведи на каждого из них по порту и делай НАТ для них на соответствующих клиентов, при этом клиентам надо поменять установленный по умолчанию порт 4662 на тот который ты для них натишь. При этом все работает. Надеюсь получилось не слишком запутанным... Удачи в настройке! Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-22 09:41:01 Автор Share Опубліковано: 2005-01-22 09:41:01 а в каких именно цепочках нужно прописать --dport Чтобы натить определенные порты? PREROUTING? POSTROUTING? FORWARD? Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2005-01-22 10:38:15 Share Опубліковано: 2005-01-22 10:38:15 там где -j MASQUERADE Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-22 11:03:15 Автор Share Опубліковано: 2005-01-22 11:03:15 у меня нет MASQUERADE. используется именно НАТ вот кусочек моего ОнКоннекта: #transparent squid iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 #puskaem na port squida iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPT #sobstvenno NAT iptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source "реальный айпи" iptables -t filter -A FORWARD -i eth0 -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT #logging echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH $TARIFF " >> /var/stargazer/users/$LOGIN/connect.log скажем мне необходимо НАТ-ить только 25,110,21,6669,6667,5190 порты как и куда их следует прописывать? Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2005-01-22 11:38:41 Share Опубліковано: 2005-01-22 11:38:41 У меня вот так всё НАТится: $IPTABLES -A POSTROUTING -t nat -j MASQUERADE -o eth0 мабуть тебе можно модифицировать так: $IPTABLES -t nat -A POSTROUTING -p tcp -s $IP_client --dport 25 -j MASQUERADE -o eth0 Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-24 01:53:30 Автор Share Опубліковано: 2005-01-24 01:53:30 В этом сценарие я использую SNAT вместо MASQUERADE по ряду причин. Первая -- предполагается, что этот сценарий должен работать на сетевом узле, который имеет постоянный IP адрес. Следующая состоит в том, что SNAT работает быстрее и более эффективно. Конечно, если вы не имеете постоянного IP адреса, то вы должны использовать действие MASQUERADE, которое предоставляет более простой способ трансляции адресов, поскольку оно автоматически определяет IP адрес, присвоенный заданному интерфейсу. Однако, по сравнению с SNAT это действие требует несколько больших вычислительных ресурсов... Источник:http://iptables-tutorial.frozentux.net Руководство по iptables (Iptables Tutorial 1.1.19) iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPTiptables -t nat -A POSTROUTING -p tcp -s $IP -m multiport --dport 5190 -j SNAT --to-source "реальный айпи" iptables -t nat -A POSTROUTING -p udp -s $IP -m multiport --dport 27020,27015 -j SNAT --to-source "реальный айпи" iptables -t filter -A FORWARD -i eth0 -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT попробовал такой вариант... все равно не то... почта работает...хотя не должна по идее неужели все дают своим юзверям полный доступ....по всем портам... или жалко правилами поделиться? Ссылка на сообщение Поделиться на других сайтах
Den_LocalNet 1 474 Опубліковано: 2005-01-24 07:42:38 Share Опубліковано: 2005-01-24 07:42:38 А чего бы не довать? Это бредово открывать птом для каждого разнае порты.....одному надо ася, другому skype, а третий дето в инете надыбал забитый интернет пейджер, а кому-то почту надо забрать на каких-то левых портах.......... Что потом постоянно открывать....... А не геморо будет? Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-24 10:24:27 Автор Share Опубліковано: 2005-01-24 10:24:27 удобно ограничить порты бывает когда: 1.Необходимо шейпить траффик по определенным портам(а 3128 к примеру не шейпить, пускать через делей пулс, чтобы кэш отдавался на полной скорости, а все остальное шейпить cbq). 2.Необходимо предоставить несколько более ограниченный доступ ряду пользователей, которые в силу неопытности могут пострадать от обновлений винды, софта, сетевых червей и пр. 3.Когда пользователь редиска можно лего диффиренцировать кому какой скрипт выполнять при подключении. я сделал проверку поля Userdata0(свойства клиента) на то какой скрипт следует использовать. #!/bin/bashLOGIN=$1 IP=$2 CASH=$3 ID=$4 TEST="Userdata0=Test" TARIFF=`grep Userdata0= /var/stargazer/users/$LOGIN/conf` if [ "$TARIFF" = "$TEST" ]; then echo "Test!!!" >> /var/stargazer/users/$LOGIN/connect.log iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPT iptables -t nat -A POSTROUTING -p udp -s $IP -m multiport --dport 27020,5190 -j SNAT --to-source "реальный айпи" iptables -t filter -A FORWARD -i eth0 -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH $TARIFF " >> /var/stargazer/users/$LOGIN/connect.log else echo "DSL" >> /var/stargazer/users/$LOGIN/connect.log iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p tcp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 iptables -t nat -A PREROUTING -s $2 -d ! 192.168.1.1 -p udp -m multiport --dport 8082,8083,8091,8100,8101,8102,8103,8080,8888,777 -j REDIRECT --to-port 3128 iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPT iptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source "реальный айпи" iptables -t filter -A FORWARD -i eth0 -s $IP -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH $TARIFF " >> /var/stargazer/users/$LOGIN/connect.log fi Ссылка на сообщение Поделиться на других сайтах
Slava 1 Опубліковано: 2005-01-24 10:34:29 Share Опубліковано: 2005-01-24 10:34:29 сделай по умолчанию политики в DROP вот так: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP а потом разрешай те порты, которые тебе нужно Ссылка на сообщение Поделиться на других сайтах
Гость Tim Опубліковано: 2005-01-24 14:50:12 Share Опубліковано: 2005-01-24 14:50:12 Для получения HighID тебе нужно порт пробросить в внутреннюю сеть один порт один пользователь в внутренней сети решение пробрасывать разные порты соответственно на клиенте поставить нужный порт Ссылка на сообщение Поделиться на других сайтах
Гость Guest Опубліковано: 2005-01-24 15:35:43 Share Опубліковано: 2005-01-24 15:35:43 А почему бы не натить всё, а в ФОРВАРДЕ открывать только нужные порты? Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-25 02:13:53 Автор Share Опубліковано: 2005-01-25 02:13:53 сделай по умолчанию политики в DROPвот так: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP а потом разрешай те порты, которые тебе нужно у меня стоит политика Drop по умолчанию.... вопрос в том и заключается, как корректно разрешить только необходимые порты юзерам. пробую разные варианты...болт вот последний, теперь с форвардом..... не работает iptables -t filter -A INPUT -p tcp -s $IP --dport 3128 -j ACCEPTiptables -t nat -A POSTROUTING -s $IP -j SNAT --to-source "real ip" iptables -t filter -A FORWARD -i eth0 -s $IP -d ! 192.168.1.1 -p tcp -m multiport -dport 25,110,5190 -j ACCEPT iptables -t filter -A FORWARD -d $IP -j ACCEPT прошу именно ЖИВОЙ, рабочий пример....не теорию..... помогите, плз. Ссылка на сообщение Поделиться на других сайтах
Гость Guest Опубліковано: 2005-01-25 08:21:13 Share Опубліковано: 2005-01-25 08:21:13 iptables -t filter -A FORWARD -i eth0 -s $IP -d ! 192.168.1.1 -p tcp -m multiport -dport 25,110,5190 -j ACCEPT это ты сам придумал? Ссылка на сообщение Поделиться на других сайтах
Garik 51 Опубліковано: 2005-01-25 18:39:28 Автор Share Опубліковано: 2005-01-25 18:39:28 да :tongue: но ведь не работает :bue: потому и прошу рабочий пример... такое впечатление, что либо никто не знает.... либо я сильно простой вопрос задал... Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас