Планировалось, что будут комментарии по поводу правильности (или неправильности) написанного правила проброса порта. В той теме писать не стал, ибо оффтопик это там.
Что делать с постом? ;-) Вам решать. Нарушил -- сносите.
Что с этим постом сделать? Т.е. он полезный конечно.
Планировалось, что будут комментарии по поводу правильности (или неправильности) написанного правила проброса порта. В той теме писать не стал, ибо оффтопик это там.
Что делать с постом? ;-) Вам решать. Нарушил -- сносите.
хочу настроить post-firewall так, чтобы максимально закрыть и на вход и на выход, т.е. чтобы я сам приоткрывал нужные порты. пробовал различные варианты iptables, в итоге что то случилось с портфорвардингом. раньше по 2222 делался форвард на 21-й порт моей домашней машины. теперь этого не работает. с rdp, видимо, та же проблема случилось.
может, это потому что я пробовал использовать вначале файла правило iptables -F. т.е. может я сбросил какие то важные настройки файервола, которые post-firewall не восстанавливаются? хотя это, сомнительно, конечно. вот пример часть моего post-firewall с некоторыми комментариями:
начало файла теперь стандартное:
дальше идут правила (привел не все, т.к. все писать нету смысла)Code:#!/bin/sh ## FIREWALL ## set default policy iptables -P INPUT DROP
(на десктопе стоит serv-u. раньше (до iptables -F) заходилось ок, теперь на него просто не заходит. т.е. нету даже подключения, иконка серв-ю не становится синей)
(последняя строка для того, чтобы веб сервер работал на 80-м порту извне)Code:## allow FTP from WAN to my desktop computer iptables -I INPUT -p tcp -d $MY_INET_IP --dport 2222 -j ACCEPT iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 2222 -j DNAT --to-destination 192.168.1.10:21
(делаю RDP, но, такое ощущение, что просто не редиректит)Code:## allow HTTP-server from WAN iptables -I INPUT -p tcp -d $MY_INET_IP --dport 80 -j ACCEPT iptables -I INPUT -p tcp -d $MY_INET_IP --dport 8081 -j ACCEPT iptables -t nat -A PREROUTING -i "$1" -p tcp --dport 80 -j REDIRECT --to-port 8081
по последнему: ppp0 = "$1" ?Code:## allow RDP at my desktop at port 3389 iptables -I INPUT -p tcp -d $MY_INET_IP --dport 3389 -j ACCEPT iptables -t nat -A PREROUTING -i "$1" -p tcp -d $MY_INET_IP --dport 3389 -j DNAT --to-destination 192.168.1.10:3389 ## allow TORRENT on ports 56881:56889, 65534 iptables -I INPUT -i ppp0 -p tcp --syn --dport 56881:56889 -j ACCEPT iptables -I INPUT -i ppp0 -p tcp --syn --dport 65534 -j ACCEPT
(для борьбы провайдера с роутерами в сети)
на эти строки противодействия борьбе с роутерами, при запуске post-firewall выдаются ошибки:Code:## for anti-router check of MAN provider iptables -t mangle -F iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$1 -j TTL --ttl-set 128 iptables -t mangle -I FORWARD -m ttl --ttl 1 -i \$1 -j TTL --ttl-set 2 iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$(nvram get wan_ifname) -j TTL --ttl-set 128 iptables -t mangle -I FORWARD -m ttl --ttl 1 -i \$(nvram get wan_ifname) -j TTL --ttl-set 2
Warning: wierd character in interface `$1' (No aliases, :, ! or *).
Warning: wierd character in interface `$1' (No aliases, :, ! or *).
./post-firewall: ./post-firewall: 45: Syntax error: "(" unexpected
строка 45 - это строка:ну и окончание post-firewall тоже вполне стандартное:Code:iptables -t mangle -I FORWARD -m ttl --ttl 127 -o \$(nvram get wan_ifname) -j TTL --ttl-set 128
если можно, подскажите, в чем может быть проблема?Code:iptables -A OUTPUT -s $MY_INET_IP/255.255.255.255 -o vlan1 -j ACCEPT iptables -A OUTPUT -o vlan1 -j DROP
так же есть еще вопрос, об обеспечении работы ftp в пассивном режиме при введении правил для OUTGOING траффика.
заработают ли правила:
или нужно еще какой то дополнительный модуль определения состояния ftp-пакетов ставить? слышал про какой то ftp_conntrack...Code:$i – Интернет, т.е. any comp $j - ftp сервер $iptables -A FORWARD -p tcp -s $i --sport 1024:65535 -d $j --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT $iptables -A FORWARD -p tcp -s $j --sport 21 -d $i --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT $iptables -A FORWARD -p tcp -s $i --sport 1024:65535 -d $j --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT $iptables -A FORWARD -p tcp -s $j --sport 1024:65535 -d $i --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
заранее спасибо
- iptables -F имхо плохая идея.
- Для проброса портов ненужно ничего добавлять в таблицу INPUT (iptables -I INPUT). Достаточно добавить правило в PREROUTING.
- Для защиты от борьбы провайдера с роутерами в сети:
- В post-boot добавить
Code:#!/bin/sh insmod ipt_ttl insmod ipt_TTL- В post-firewall добавить
Code:#!/bin/sh iptables -t mangle -I PREROUTING -i vlan1 -j TTL --ttl-inc 1- ftp_conntrack называется ip_conntrack_ftp. Он по дефолту должен быть загружен. Посик по форуму может дать дополнительную информацию по этому модулю.
- iptables -L -nv -t nat && iptables -L -vn в студию
большое спасибо за ответ!
1. почему плохая? т.е. моя мысль о том, что я удалил -F какие то нужные правила не лишена основания?
2. я на инпут просто разрешаю нужные порты, потому что по умолчанию все дропятся.
3. спасибо за совет. это подойдет для внешнего ip с подключением к инету по vpn? домой доберусь - попробую...
5. там получилось много текста, поэтому в приложенном файле результат выполнения команды. $MY_INET_IP соответственно ой внешний ip.
Помогите записать в post-boot строку route add -host 193.125.142.226 gw 172.16.0.1 vlan1
Я прочитал на форуме что эту строку надо записывать с помощью telnet на роутер
я нажимаю кнопку пуск-выполнить: telnet 192.168.1.1
появляется черное окно и происходит запрос на login и пароль, я их ввёл.
появляется строка: root$:
а дальше какие набивать команды чтобы
строка route add -host 193.125.142.226 gw 172.16.0.1 vlan1 оказалась в файле post-boot
если можно поподробней, а то у меня не получается.
Заранее благодарен.
Проверить, существует ли post-bootЕсли нет, то нужно его создатьCode:ls -l /usr/local/sbin выйдет что-то типа -rwxr-xr-x 1 admin root 1475 Jun 24 20:45 post-boot -rwxr-xr-x 1 admin root 2108 Jun 15 08:52 post-firewallа дальше дописывать туда все, что нужноCode:echo "#!/bin/sh" > /usr/local/sbin/post-boot chmod +x /usr/local/sbin/post-bootИ после этого не забыть сделатьCode:echo "вот тут то, что нужно записать" >> /usr/local/sbin/post-bootПосмотреть содержимое файлаCode:flashfs save && flashfs commit && flashfs enableCode:cat /usr/local/sbin/post-boot
Last edited by KRandall; 31-07-2007 at 08:38.
WL-500gP(v1, 64mb) (1.9.2.7-d-r2624 by Oleg) + 3 x USB HDD
Работают: analog, syslog-ng, cron, samba 3, RTorrent+RuTorrent, lighttpd, vsftpd+, настроена сеть и сетевая печать
Что то у меня снова не получается
Когда я набираю строку root ]$: ls -l /usr/local/sbin и нажимаю enter
появляется такая строка root ]$
если я набираю echo "#!/bin/sh" >> /usr/local/sbin/post-boot
он отвечает -sh: cannot create /usr/local/sbin/post-boot: directory nonexistent
что я делаю не правильно? помогите
нужно сначала сделать mkdir -p /usr/local/sbin
А почему нельзя прописать этот маршрут через веб-интерфейс??
Mam(O)n
Спасибо.Все записалось.Только после команды cat /usr/local/sbin/post-boot у меня оказалось что я их прописал 2 раза
Как удалить одну строку из post-boot?
Я пытаюсь это сделать для того чтобы скачивать информацию с локальных адресов сети без ограничения скорости, а у меня локалка работает на той же скорости что и интернет.
На этом сайте я нашел такие настройки:
Долгопрудный, Физтех Телеком (telecom.mipt.ru)
Роутер: ASUS WL-500gP
Прошивка: 1.9.2.7-7f-pre4
Тип соединения: Static IP + PPTP
IP: 172.16.11.3
Netmask: 255.255.0.0
Default GW: сознательно не указан
DNS1: 193.125.143.173
DNS2: 192.188.189.3
Additional pppd options: nomppe nomppc
Heart-Beat Server: vpdn.mipt.ru
Static routes:
81.5.64.0 255.255.192.0 172.16.0.1 1 MAN
192.188.189.0 255.255.255.0 172.16.0.1 1 MAN
194.85.80.0 255.255.252.0 172.16.0.1 1 MAN
193.168.0.0 255.255.0.0 172.16.0.1 1 MAN
10.0.0.0 255.0.0.0 172.16.0.1 1 MAN
193.125.143.0 255.255.255.0 172.16.0.1 1 MAN
193.125.142.0 255.255.255.0 172.16.0.1 1 MAN
81.5.95.0 255.255.255.0 172.16.0.1 1 MAN
Но работать все начинает только после добавления "вручную" или из post-boot статического роута на Heart-Beat Server:
route add -host 193.125.142.226 gw 172.16.0.1 vlan1
Если не установлен текстовый редактор то проще заново создать файл:
После всех правок незабывай сохранять во флеш (flashfs и т.д.)Code:echo -e "#!/bin/sh\n route add -host 193.125.142.226 gw 172.16.0.1 vlan1" > /usr/local/sbin/post-boot
И еще, если мне неизменяет память, таблицы маршрутизации так же как и таблицы iptables обнуляются в дефолт после каждого поднятия/разрыва VPN. Так что лучше это в /usr/local/sbin/post-firewall добавить.
Странно все это. Ведь этот маршрут уже прописан в веб морде, ведь это так?
Может у тебя не стоит в веб морде IP Config => Route => Enable static routes? в положении YES?
После перезагрузки не запускается файл /usr/local/sbin/post-boot. Приходится влезать в него и запускать вручную. ЧТо можно сделать для автоматического запуска сего файла после загрузки?
к сожалению нет. сам файл появляется, есть флаг запускаемого, но автоматом не запускается.
PS: Прошивка от Олега 1.9.2.7-7g
Last edited by therox; 28-08-2007 at 19:17.