КАК ЭТО СДЕЛАТЬ ????
Нужно разрешить проходить пакетам уже установленных соединений:
iptables -A FORWAD -m state --state ESTABLISHED,RELATED -j ACCEPT
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Администрирование и настройка сетей → iptables
КАК ЭТО СДЕЛАТЬ ????
Нужно разрешить проходить пакетам уже установленных соединений:
iptables -A FORWAD -m state --state ESTABLISHED,RELATED -j ACCEPT
Добрый вечер!
Схема:
Интернет --- IPtables --- Apache
IPtables установлен на сервер, сетевые интерфейсы которого настроены в бридж.
Нужно на сервере с IPtables собирать в файл IP адреса хостов:
1) которые попытались установить N соединений с веб сервером (послали N пакетов с установленным syn)
2) которые послали M GET запросов на веб сервер
Какие есть варианты?
вот что уменя:
вот мои правила...
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#
#eth1=INET
#eth0=LAN
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t filter -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#Пробросс 80 порта с LAN на 3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#По умолчанию запрещаем весь транзит
iptables -P FORWARD DROP
iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#Разрешить уже установленое соединение
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#Режим SYN Флуд
iptables -A FORWARD -p tcp --syn -m connlimit --connlimit-above 10 -j REJECT
################################################################################
#iptables -A INPUT -s ip -m mac --mac-source 00:00:000:00:00:00 -j ACCEPT
#
##############################################################################
#Разрешаем себе пинг наружу - нас же не пропингуешь- пакеты отбрасываются
iptables -A INPUT -p icmp -m icmp -i eth1 --icmp-type echo-reply -j ACCEPT
iptables -A FORWARD -p icmp -m icmp -o eth1 --icmp-type echo-request -j ACCEPT
#Открываем порт для DNS
iptables -A INPUT -i eth0 -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
#Открываем порты для почты
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
#ICQ/Miranda
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 5190 -j ACCEPT
#Разрешить DNAT Трафик
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
exit 0
iptables -A INPUT -s ip -m mac --mac-source 00:00:00:00:00:00 -j ACCEPT
когда я прописываю это я могу пропинговать роутер.
но как только я убераю это правело пинг пропадает но порты 5190.3389.25.110 работают
как сделать так что бы порты работали только у это го мак адресса Cool или у диапазона мак адресов...
как закрыть ICQ отдельному пользователю.....
Привет! всем...... разобрался я с портами.......
может кто подскажет как можно мониторить с помощью iptables сеть.?? т.е я хочу сказать как можно глянуть кто забивает канал....?
или может кто знает как по IP в локалке просмотреть открытые порты.....т.е 192.169.1.3. вот и мне нужно знать какие порты он использует...
может кто подскажет как можно мониторить с помощью iptables сеть.?? т.е я хочу сказать как можно глянуть кто забивает канал....?
iptraf
или может кто знает как по IP в локалке просмотреть открытые порты.....т.е 192.169.1.3. вот и мне нужно знать какие порты он использует...
nmap
Спасибо !!! smile но я использую уже netstat -an |grep 192.168.1.3
работает на ура......
iegrec, iptraf покажет детально все :-)
tcpdump -i eth0 -tttt host 10.0.0.111 самый подробный вывод....
но вот я немогу понять как можно узнать соеденение сделал 10.0.0.111 хост или нет....
Нужно поднять элементарный нат.
делаю так:
gw0:~# cat iptables.sh
#! /bin/sh
# Firewall rules.
#
# Assumptions:
# eth0: connected to ISP
# eth1: connected to LAN
# ISP’s gw: 44.219.1.114
# Flush all rules.
iptables -v -F
iptables -v -t nat -F
iptables -v -t mangle -F
iptables -v -X
# Set up NAT.
iptables -v -t nat -A POSTROUTING -s 172.23.23.0/24 -j SNAT --to-source 109.207.174.16
# Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
В итоге, по tcpdump видно что отправитель из внутренней сети отправляет пакет, на gw0 пакет натится, gw0 получает ответ, однако по какой-то причине ответ в во внутреннюю сеть отправителю gw0 не пересылает. Все остатки головы сломал об этот нат, на соседней виртуалке, откуда была склонирована эта точно такие же условия, только адрес другой, и все работает.
В чем может быть проблема тут?
Внесу свои 5 копеек в общее дело. На какой форум не зайду - везде вопросы про нат. Ссылочка на мой скромный блог, где я написал статью "Настройка NAT в Ubuntu"... Надеюсь кому нибудь поможет. Статья из разряда "для самых маленьких", запланировал небольшой цикл статей по созданию домашней сети используя сервер на линуксе, а то куча знакомых задают вопросы постоянно на эту тему.
Подскажите, как на определенном интерфейсе запретить коннект ко всем портам?
Сам додумался до:
Внесу свои 5 копеек в общее дело.
Not found!
Sorry, this page does not exist.
hexkey пишет:Внесу свои 5 копеек в общее дело.
Not found!
Sorry, this page does not exist.
Прошу прощения, немного сайт подрихтовал... Заменил на рабочую ссылку.
tcpdump -i eth0 -tttt host 10.0.0.111 самый подробный вывод....
но вот я немогу понять как можно узнать соеденение сделал 10.0.0.111 хост или нет....
смотри по портам, есть серверый порт (порт который предоставляется демоном. например апач - 80) и клиентский порт.
Подскажите, как на определенном интерфейсе запретить коннект ко всем портам?
iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j DROP
А потом открывай нужные порты
помогите разобраться.
есть "сервер" на ubuntu server 10.10.
eth0 - LAN - 192.168.1.1/24
eth1 - 192.168.0.1/24 (через eth1 подымается INET - ppp0 )
Создал я скрипт /etc/nat с правилами iptables:
#!/bin/sh
sysctl -w net.ipv4.ip_forward="1"
# Сбросить правила и удалить цепочки.
# iptables -F
# iptables -X
# Политики по умолчанию.
# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT DROP
# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -d 192.168.0.0/24 -j MASQUERADE
#Разрешаем серверу отвечать компьютерам в сети
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT
#Разрешаем серверу пропускать пакеты из сети в интернет и обратно(только для установленных соединений)
iptables -A FORWARD -i eth0 -o ppp0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
дал права на исполнение :
sudo chmod +x /etc/nat
дописал в конец /etc/network/interfaces post-up /etc/nat
и вуаля, инет работает, все отлично.
НО,
стоит мне РАСКОМЕНТИРОВАТЬ
# Сбросить правила и удалить цепочки.
# iptables -F
# iptables -X
# Политики по умолчанию.
# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT DROP
т.е. файл etc/nat превращается в
#!/bin/sh
sysctl -w net.ipv4.ip_forward="1"
# Сбросить правила и удалить цепочки.
iptables -F
iptables -X
# Политики по умолчанию.
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT DROP
# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -d 192.168.0.0/24 -j MASQUERADE
#Разрешаем серверу отвечать компьютерам в сети
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT
#Разрешаем серверу пропускать пакеты из сети в интернет и обратно(только для установленных соединений)
iptables -A FORWARD -i eth0 -o ppp0 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
как интернет пропадает на всех пк сети, в том числе и на сервере.
где подвох???????
P.S. на пк в сети загадочным образом продолжают работать SKYPE, STEAM, гаджеты. oO
перед тем как всё закрывать откройте нужный порты
По умолчанию всё запрещаешь.
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT DROP
например выглядит так.
# Разрешаем ssh серверу
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 22 -j ACCEPT
можно плиз для этой конф. написать какие порты используются? :rolleyes:
а то я не могу вчехлить. ТТ.
Знаю что SSH у меня висит на 1989 порту
и
Deluge на 8112....
так:
iptables -A INPUT -i eth1 -p tcp --dport 1989, 8112 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 1989, 8112 -j ACCEPT
?
а чтобы просто был инет на машинах в сети, какие порты писать?
так:
#!/bin/sh
sysctl -w net.ipv4.ip_forward="1"
# Сбросить правила и удалить цепочки.
iptables -F
iptables -X
# Политики по умолчанию.
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT DROP# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP# Включаем NAT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 --sport 1024:65535 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.0.0/24 --dport 1024:65535 -j MASQUERADE#Разрешаем серверу отвечать компьютерам в сети
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.1.0/24 -j ACCEPT#Разрешаем серверу пропускать пакеты из сети в интернет и обратно(только для установленных соединений)
iptables -A FORWARD -i eth0 -o ppp0 -s 192.168.1.0/24 -d 0.0.0.0/0 --sport 1024:65535 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
?
Здравствуйте.
Подскажите, как UDP пакеты, приходящие на локальный порт 4444 "рутить" на локальную же машину 5061 порт?
IP адрес по которому прога на 5061 порту ловит - 127.0.0.1 или же 192.168.1.99, не важно на какой именно.
Пробовал
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 4444 -j REDIRECT --to-port 5061
а также
iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 4444 -j REDIRECT --to-port 5061
а также
iptables -t nat -A PREROUTING -i lo -p udp --dport 4444 -j REDIRECT --to-port 5061
а также
iptables -t nat -A PREROUTING -p udp --dport 4444 -j REDIRECT --to-port 5061
никакой реакции. Может после ввода команд надо как то закоммитить? Или не в ту сторону рою? Заранее спасибо
Оказалось что REDIRECT надо сменить на DNAT Теперь команда такая:
iptables -t nat -A PREROUTING -p udp --dport 4444 -j DNAT --to-destination 192.168.1.99:5061
root@debian:/home/quux/projects/servudp# iptables -t nat -L
Chain PREROUTING (policy ACCEPT) target prot opt source destination
DNAT udp -- anywhere anywhere udp dpt:4444 to:127.0.0.1:5061
DNAT udp -- anywhere anywhere udp dpt:4444 to:192.168.1.99:5061
Chain POSTROUTING (policy ACCEPT) target prot opt source destination
Chain OUTPUT (policy ACCEPT) target prot opt source destination
Также исправил net.ipv4.ip_forward=0 на единицу и sysctl -p Теперь
root@debian:/home/quux/projects/servudp# sysctl -a | grep ip_forward
error: "Invalid argument" reading key "fs.binfmt_misc.register"
error: permission denied on key 'net.ipv4.route.flush'
net.ipv4.ip_forward = 1
error: permission denied on key 'net.ipv6.route.flush'
root@debian:/home/quux/projects/servudp#
Работает.
Оказывается, надо было обратиться извне, локально работать не хочет...
Оказывается, надо было обратиться извне, локально работать не хочет...
IP адрес по которому прога на 5061 порту ловит - 127.0.0.1 или же 192.168.1.99, не важно на какой именно.
важно. пробросте ещё и 127/8 и заработает локально
Нужно чтобы маскировался ip и его mac.
iptables -A POSTROUTING -t nat -s 192.168.1.2 -m mac --mac-source 00:11:22:33:44:55 -j SNAT --to-source 10.10.10.10
Отвечает - iptables: Invalid argument
Скажите , где я ошибся?
В таком виде всё работает.
iptables -A POSTROUTING -t nat -s 192.168.1.2 -j SNAT --to-source 10.10.10.10
Друзья, сделал iptables, может покритикуете?
#!/bin/bash
squid="192.168.11.3"
wan="eth0"
lan="eth1"
squidport="1488"
#Очищаем таблицы
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#Подгружаем необходимые модули
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
#Устанавливаем стандартную политику фильтрации
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
#Разрешаем все в localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#Разрешаем UDP, DNS и пассивный FTP
iptables -A INPUT -i $wan -m state --state ESTABLISHED,RELATED -j ACCEPT
# NAT/Masquerade
iptables --table nat --append POSTROUTING --out-interface $wan -j MASQUERADE
iptables --append FORWARD --in-interface $lan -j ACCEPT
#Разрешаем все для lan
iptables -A INPUT -i $lan -j ACCEPT
iptables -A OUTPUT -o $lan -j ACCEPT
# Отбрасываем все пакеты, которые не могут быть идентифицированы
# и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#Разрешаем пинговать узлы интернета
iptables -A FORWARD -i $wan -o $lan -p icmp -j ACCEPT
iptables -A FORWARD -i $lan -o $wan -p icmp -j ACCEPT
# Перенаправляем на SQUID
iptables -t nat -A PREROUTING -i $lan -p tcp --dport 80,8080 -j DNAT --to $squid:$squidport
iptables -t nat -A PREROUTING -i $wan -p tcp --dport 80,8080 -j REDIRECT --to-port $squidport
Закрываю/открываю порты и распределяю траффик в squid
Друзья, сделал iptables, может покритикуете?
smtp/pop3/pop3s/imap/imaps где? или вы почтой не пользуетесь? =)
mastahcookie пишет:Друзья, сделал iptables, может покритикуете?
smtp/pop3/pop3s/imap/imaps где? или вы почтой не пользуетесь? =)
а разве порты открываются не в squid? или в iptables тоже нужно открывать необходимые порты?
а разве порты открываются не в squid? или в iptables тоже нужно открывать необходимые порты?
в iptables необходимо открывать порты для почты, squid этого делать не умеет, squid предназначен лишь только для http трафика.
#Открываем порты для почты
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
#ICQ/Miranda
iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 5190 -j ACCEPT
примерно так =)
mastahcookie пишет:а разве порты открываются не в squid? или в iptables тоже нужно открывать необходимые порты?
в iptables необходимо открывать порты для почты, squid этого делать не умеет, squid предназначен лишь только для http трафика.
#Открываем порты для почты iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT #ICQ/Miranda iptables -A FORWARD -o eth1 -m state --state NEW -p tcp --dport 5190 -j ACCEPT
примерно так =)
а, понял спасибо
а, понял smile спасибо
если по ветки полазить то найдете более гибкое решение =) Так же могу в ЛС кинуть то что сейачс крутится на некоторых серверах =)
iptables -P OUTPUT ACCEPT
Всё же не есть гуд.
Разберитесь, с портами, которые испольуете, остальное закройте.
Точнее закройте по дефолту всё, а откройте только нужное. Вот так правильнее будет.
Linux Forum → Администрирование и настройка сетей → iptables
Форум работает на PunBB, при поддержке Informer Technologies, Inc