0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 8
|
|
1 | |
Создать правила iptables для шлюза24.11.2015, 21:33. Показов 1100. Ответов 1
Метки нет (Все метки)
Господа и дамы. Не пинайте.
Решил таки уйти от "пиратского" софта.Да и научиться новому. Решил сделать полноценный шлюз на debian. Встала огромная проблема с iptables. Штрудирование мануалов пока не дает результатов, везде по разному пишут, четкую информацию пока найти не смог. Кто обладает ссылкой на доступный, изложенный на более менее понятном языке учебник буду очень рад. К проблеме: по мануалом смог накропать приблизительную таблицу iptsbles. Вот она: Кликните здесь для просмотра всего текста
#!/bin/bash # Тут в принципе может и не надо этого всего но не помеха # вдруг какой модуль не подгружен или форвардинг не включен echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/ip_dynaddr modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp # Объявление переменных export IPT="iptables" # Интерфейс который смотрит в интернет export WAN=ppp0 # Локальная сеть export LAN=eth0 export LAN_IP_RANGE=7.0.0.0/24 # Очистка всех цепочек iptables $IPT -F $IPT -F -t nat $IPT -F -t mangle $IPT -X $IPT -t nat -X $IPT -t mangle -X # Закрываем изначально ВСЁ (т.е. изначально все что не разрешено - запрещено): $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP # разрешаем локальный траффик для loopback и внутренней сети $IPT -A INPUT -i lo -j ACCEPT $IPT -A INPUT -i $LAN -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT $IPT -A OUTPUT -o $LAN -j ACCEPT # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении. # Пропускать все уже инициированные соединения, а также дочерние от них $IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT # Пропускать новые, а так же уже инициированные и их дочерние соединения $IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Разрешить форвардинг для новых, а так же уже инициированных # и их дочерних соединений $IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # Включаем фрагментацию пакетов. Необходимо из за разных значений MTU $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Отбрасывать все пакеты, которые не могут быть идентифицированы # и поэтому не могут иметь определенного статуса. $IPT -A INPUT -m state --state INVALID -j DROP $IPT -A FORWARD -m state --state INVALID -j DROP # Приводит к связыванию системных ресурсов, так что реальный # обмен данными становится не возможным. $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP # Разрешаем доступ из внутренней сети наружу $IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT # Запрещаем доступ снаружи во внутреннюю сеть $IPT -A FORWARD -i $WAN -o $LAN -j REJECT # Маскарадинг $IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE # Открываем ISMP $IPT -A INPUT -p icmp -j ACCEPT $IPT -A OUTPUT -p icmp -j ACCEPT # Открываем RDP #$IPT -A INPUT -i $WAN -p tcp --dport 3389 -j ACCEPT #$IPT -A PREROUTING -t nat -d $WAN -p tcp --dport 3389 -j DNAT --to-destination 7.0.0.2:3389 #$IPT -A OUTPUT -o $LAN -p tcp --sport 3389 -j ACCEPT #$IPT -A FORWARD -i $WAN -d 7.0.0.2 -p tcp --dport 3389 -j ACCEPT # Открываем порт для ssh $IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT # Вывод информации о состоянии таблиц. route -n $IPT -L $IPT -L -v -n $IPT -L -v -n -t nat С горем пополам читаю два дня все те же горы мануалов смог таки включить ответ по ISMP. Пытаюсь открыть порт и пробросить его на локальный сервер, и никак. Попробовал сначала просто открыть порт, по аналогии с 22, по другим инструкциям, писал сам все без успешно. Хочется понять принцип... по этому прошу не пинать ногами,не писать "вот это вставь и будет счастье" а постараться объяснить, что делаю не так. Пытаюсь научиться и понять а не просто сделать "продукт". Какие ошибки допустил, в общем интересно ВСЕ! особенно новые знания.
0
|
24.11.2015, 21:33 | |
Ответы с готовыми решениями:
1
исключение из правила iptables Правила iptables правила iptables Правила iptables на машрутизаторе |
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|
25.11.2015, 14:30 | 2 |
У вас неплохая для перевого раза таблица получилась, написанная в хорошем стиле и даже с комментариями, так что чтение мануалов релультаты даёт. Я бы посоветовал для начала оставить меньшее количество правил, добавляя по необходимости.
Неплохая статья об ИПтаблес есть на Опеннете. Курячий в своём курсе по Линуксу (есть на Интуите) тоже целую главу этому посвящает. Попробую показать недочёты на примере цепочки форвардинга из таблицы filter. Первым правилом вы практически полностью открыли форвардинг, пакеты покидают цепочку, не доходя до других правил. Кроме того третьим (в этом примере) правилом вы закрыли доступ снаружи во внутренню сеть. Пакеты отбрасываются и до четверного правила не доходят. В общем: DROP - пакеты немедленно отбрасываются REJECT - отбрасываются, посылая уведомление по icmp. ACCEPT - успешно покидают данную цепочку и становятся в очередь в следующую. Распечатайте схему последовательности прохождения пакетами цепочек и держите на рабочем месте. Я встречал несколько очень наглядных рисунков. Их легко найти через поиск. Пакеты icmp я бы посоветовал пропускать все. Пробросом порта называют перенаправление пакета на другой адрес в цепочке prerouting таблицы NAT. У вас я не заметил такого правила. Может, плохо смотрел.
0
|
25.11.2015, 14:30 | |
25.11.2015, 14:30 | |
Помогаю со студенческими работами здесь
2
Странные правила в IPTABLES Centos 6.7 - IPTables не грузит правила Не работают IPTABLES правила на моем шлюзе Как дать права обычному пользователю, чтобы он смог добавлять правила в iptables? Iptables, правила, перенаправляющие на интерфейс eth1 все пакеты, приходящие на интерфейс eth0 Ремонт Прежде, чем начать новую тему... (это ПРАВИЛА, читать ВСЕМ!), Правила для всех участников форума!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |