Форум программистов, компьютерный форум, киберфорум
Debian, Kali Linux, Raspbian, Astra Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 8
1

Создать правила iptables для шлюза

24.11.2015, 21:33. Показов 1100. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа и дамы. Не пинайте.
Решил таки уйти от "пиратского" софта.Да и научиться новому.
Решил сделать полноценный шлюз на 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2015, 21:33
Ответы с готовыми решениями:

исключение из правила iptables
есть правило, отправляющее запросы из локальной сети по 80-му порту в squid: -A PREROUTING -s...

Правила iptables
Подскажите пожалуйста поставил на ubuntu desktop для использования локально squid, если в браузере...

правила iptables
Помогите разобраться с iptables в этом правиле в принципе все понятно, приходящие пакеты на ip...

Правила iptables на машрутизаторе
Здравствуйте. помогите мне с правилами на dd-wrt.- это машуртизатор ( на нем есть iptables) суть...

1
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
25.11.2015, 14:30 2
Цитата Сообщение от v-good Посмотреть сообщение
Штрудирование мануалов пока не дает результатов, везде по разному пишут, четкую информацию пока найти не смог. Кто обладает ссылкой на доступный, изложенный на более менее понятном языке учебник буду очень рад.
У вас неплохая для перевого раза таблица получилась, написанная в хорошем стиле и даже с комментариями, так что чтение мануалов релультаты даёт. Я бы посоветовал для начала оставить меньшее количество правил, добавляя по необходимости.
Неплохая статья об ИПтаблес есть на Опеннете. Курячий в своём курсе по Линуксу (есть на Интуите) тоже целую главу этому посвящает.
Попробую показать недочёты на примере цепочки форвардинга из таблицы filter.
Цитата Сообщение от v-good Посмотреть сообщение
# Разрешить форвардинг для новых, а так же уже инициированных
# и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT
# Открываем RDP
#$IPT -A FORWARD -i $WAN -d 7.0.0.2 -p tcp --dport 3389 -j ACCEPT
Первым правилом вы практически полностью открыли форвардинг, пакеты покидают цепочку, не доходя до других правил.
Кроме того третьим (в этом примере) правилом вы закрыли доступ снаружи во внутренню сеть. Пакеты отбрасываются и до четверного правила не доходят.
В общем: DROP - пакеты немедленно отбрасываются
REJECT - отбрасываются, посылая уведомление по icmp.
ACCEPT - успешно покидают данную цепочку и становятся в очередь в следующую.
Распечатайте схему последовательности прохождения пакетами цепочек и держите на рабочем месте. Я встречал несколько очень наглядных рисунков. Их легко найти через поиск.
Пакеты icmp я бы посоветовал пропускать все.
Цитата Сообщение от v-good Посмотреть сообщение
Пытаюсь открыть порт и пробросить его на локальный сервер, и никак.
Пробросом порта называют перенаправление пакета на другой адрес в цепочке prerouting таблицы NAT. У вас я не заметил такого правила. Может, плохо смотрел.
0
25.11.2015, 14:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2015, 14:30
Помогаю со студенческими работами здесь

Странные правила в IPTABLES
Добрый вечер! Подскажите пожалуйста что не так с iptables. После применения скрипта с конфигом...

Centos 6.7 - IPTables не грузит правила
IPTables ни с того ни с сего перестал грузить правила при загрузке сервера... Т.е. все порты...

Не работают IPTABLES правила на моем шлюзе
Не работают IPTABLES правила на моем шлюзе. Вот правила на моем фаерволе: #!/bin/bash ...

Как дать права обычному пользователю, чтобы он смог добавлять правила в iptables?
Добрый день, ребят подскажите как дать права обычному пользователю что бы он смог добавлять правила...

Iptables, правила, перенаправляющие на интерфейс eth1 все пакеты, приходящие на интерфейс eth0
Добрый день, подскажите, пожалуйста, как Iptables написать правила, перенаправляющие на интерфейс...

Ремонт Прежде, чем начать новую тему... (это ПРАВИЛА, читать ВСЕМ!), Правила для всех участников форума!!!
Назначение форума "********" или "куда это я попал?" Форум предназначен для мастеров,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru