|
Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Debian/Ubuntu - Народ. Помотиге разобраться с iptables |
|
|
Debian/Ubuntu - Народ. Помотиге разобраться с iptables
|
Новый участник Сообщения: 17 |
Профиль | Отправить PM | Цитировать Написал такой скрипт:
#!/bin/sh LAN="eth1" LANNET="10.10.1.0/24" LANIP="10.10.1.77" WAN="eth2" WANIP=X.X.X.X" IPTABLES="/sbin/iptables" $IPTABLES -F INPUT $IPTABLES -F FORWARD $IPTABLES -F OUTPUT $IPTABLES -t nat -F PREROUTING $IPTABLES -t nat -F PPOSTROUTING $IPTABLES -t mangle -F $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP #------------------------------------------------------------------------------ $IPTABLES -A INPUT -s $LANNET -p tcp -d $LANIP -m multiport --dport 22,80,403,443,3128,8080,8081 -j ACCEPT $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 403 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 2802 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 1578 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o $WAN -j SNAT --to-source $WANIP echo "1" > /proc/sys/net/ipv4/ip_forward При выполнении пишет: iptables: No chain/target/math by that name. Скрипт пробный и уже на этом шаге столкнулся с проблемой. От руки все нормально вводится и при iptables -L показываются таблицы с введенными правилами. Ос. Debian 4. Нужные модули ядра загружены. Понимаю, что ситуация простая, но я в Линуксе новичек. Помогите, если не сложно. |
|
Отправлено: 14:03, 06-08-2008 |
Слакофил Сообщения: 590
|
Профиль | Сайт | Отправить PM | Цитировать Цитата RFox:
|
|
------- Отправлено: 14:56, 06-08-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать При выполении данного скрипта на моей машине были выявлены следующие ошибки (заранее приношу извинения гуру данного сайта за то что буду говорить о мелочах, которые многим и так понятны. моя цель - найти и исправить ошибку):
1. Если просто скопировать этот скрипт из браузера в текстовый файл, а потом посмотреть в текстовом редакторе, то в каждой строке перед переносом строки стоит символ ^M - его нужно убрать. 2. Ошибка в том что у меня не было интерпретатора /bin/sh, но был /bin/bash 3. После первой строки #!/bin/bash должно быть 2 enter'а: #!/bin/bash (можно посмотреть в любом редакторе, к примеру Edit у Midnight Commander'а - там для этой строки будет чёрный фон) 4. В строке WANIP=X.X.X.X" не хватает открывающейся кавычки 5. Как уже было сказано выше в строке: $IPTABLES -t nat -F PPOSTROUTING опечатка: PPOSTROUTING Примечание: данный ответ (iptables: No chain/target/math by that name.) показывался до того как я поставил открывающуюся кавычку на своё место. Надеюсь это поможет |
Отправлено: 07:46, 07-08-2008 | #3 |
Слакофил Сообщения: 590
|
Профиль | Сайт | Отправить PM | Цитировать Да, кавычку не заметил
Цитата TimurNS:
Цитата TimurNS:
Использование редакторов с подсветкой синтаксиса является хорошим способом выявления таких ошибок, и я бы посоветовал Вам научиться использовать vim, т.к. в нем с этим намного лучше чем в mc. |
||
------- Отправлено: 11:16, 07-08-2008 | #4 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Спасибо всем. Действительно опечатку не заметил. Ну и пункт 3 из ответа TimurNS.
|
|
Отправлено: 11:33, 07-08-2008 | #5 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать 2BuGfiX:
Дело в том, что проверял на Kubuntu Gutsy. О том, что /bin/sh зачастую является ссылкой на /bin/bash знаю, но видимо в моём случае это не так. Ещё раз подчёркиваю, что целью моего исследования было не ещё раз разобраться к концепциях, используемых в OS Linux, а решить проблему со скриптом. Кроме того в самом начале было написано, но прошу не воспринимать всерьёз мелочи, которых буду касаться. Про vi и vim знаю - работал не раз. Какое-то время мне это даже нравилось. А вы, BuGfiX, собирали Linux из LFS? |
Отправлено: 12:38, 07-08-2008 | #6 |
Слакофил Сообщения: 590
|
Профиль | Сайт | Отправить PM | Цитировать Нет, не собирал, но в курсе что например, такие вещи как симлинки, существующие "из коробки" в большистве дистрибутивов , там могут отсутствовать. Думаю проблема решена, и если есть желание поговорить про LFS - охотно поговорю в другой теме :-)
|
------- Отправлено: 12:51, 07-08-2008 | #7 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Ответтьте здесь еще на один вопрс.
#!/bin/sh LAN="eth1" LANNET="10.10.1.0/24" LANIP="10.10.1.77" IPTABLES="/sbin/iptables" $IPTABLES -F INPUT $IPTABLES -F FORWARD $IPTABLES -F OUTPUT $IPTABLES -t nat -F PREROUTING $IPTABLES -t nat -F PPOSTROUTING $IPTABLES -t mangle -F $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP #------------------------------------------------------------------------------ $IPTABLES -A INPUT -s $LANNET -p tcp -d $LANIP --dport 22 -j ACCEPT Почему не соединяется по ssh? iptables -L выводит: Chain INPUT (policy DROP) target prot opt source destination ACCEPT tcp -- 10.10.1.0/24 10.10.1.1 tcp dpt:ssh Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy DROP) target prot opt source destination По логам идет обращение на 22 порт. |
Отправлено: 14:05, 07-08-2008 | #8 |
Слакофил Сообщения: 590
|
Профиль | Сайт | Отправить PM | Цитировать У Вас разрешены только входящие пакеты на 22-й порт, нужно разрешить еще и исходящие.
Нужно добавить правило в OUTPUT: $IPTABLES -A OUTPUT -s $LANIP -p tcp -d $LANNET --sport 22 -j ACCEPT либо $IPTABLES -A OUTPUT -s $LANIP -p tcp -d $LANNET -m state --state RELATED,ESTABLISHED -j ACCEPT |
------- Отправлено: 14:32, 07-08-2008 | #9 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Спасибо всем, кто помог.
Зацените первый вариант скрипта: #!/bin/sh WAN_IFACE="eth2" WAN_IP="x.x.x.x" LAN_IFACE="eth1" LAN_IP_RANGE="10.10.1.0/24" LAN_IP="10.10.1.77" LO_IFACE="lo" LO_IP="127.0.0.1" IPTABLES="/sbin/iptables" ################################################################################### $IPTABLES -F INPUT $IPTABLES -F FORWARD $IPTABLES -F OUTPUT $IPTABLES -t nat -F PREROUTING $IPTABLES -t nat -F POSTROUTING $IPTABLES -t mangle -F $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP #INPUT#################################### $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A INPUT -d $WAN_IP -p tcp --syn -j DROP $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $WAN_IP -j ACCEPT #DHCP------------------------- $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT #Rules for incoming packets from the internet $IPTABLES -A INPUT -p ALL -d $WAN_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPTables INPUT packet died: " ########FORWARD############################### $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT ######OUTPUT################################## $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $WAN_IP -j ACCEPT #------------------------------------------------------------------------------ $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 403 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 8081 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 2802 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A PREROUTING -p tcp --dport 1578 -j REDIRECT --to-ports 3128 $IPTABLES -t nat -A POSTROUTING -o $WAN_IFACE -j SNAT --to-source $WAN_IP echo "1" > /proc/sys/net/ipv4/ip_forward Комп используется как шлюз, прозрачный прокси (squid), dhcp сервер, dns сервер, apache (web- интерфейс SAMS). Хотелось бы закрыть не нужные порты из локалки и для форвардинга, но не знаю точно какие. Также не очень понятно с журналированием. Как правильно его сюда вписать? Есть несколько вопросов: |
Отправлено: 11:00, 02-09-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
IPTABLES!!! RULES, Разгавор о iptables | BuuG | Общий по Linux | 17 | 03-03-2006 16:00 | |
Народ помогите разобраться в asm'e! | novichek_new | Программирование и базы данных | 8 | 30-12-2005 18:55 | |
iptables | xamelion | Общий по Linux | 9 | 14-05-2004 18:42 | |
Помогите разобраться с iptables | frofis | Защита компьютерных систем | 1 | 20-04-2003 01:32 |
|