61

iegrec пишет:

КАК ЭТО СДЕЛАТЬ ????

Нужно разрешить проходить пакетам уже установленных соединений:

iptables -A FORWAD -m state --state ESTABLISHED,RELATED -j ACCEPT

62

Добрый вечер!

Схема:
Интернет --- IPtables --- Apache

IPtables установлен на сервер, сетевые интерфейсы которого настроены в бридж.

Нужно на сервере с IPtables собирать в файл IP адреса хостов:
1) которые попытались установить N соединений с веб сервером (послали N пакетов с установленным syn)
2) которые послали M GET запросов на веб сервер

Какие есть варианты?

63

вот что уменя:

вот мои правила...

#!/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 отдельному пользователю.....

64

Привет! всем...... разобрался я с портами.......
может кто подскажет как можно мониторить с помощью iptables сеть.?? т.е я хочу сказать как можно глянуть кто забивает канал....?

или может кто знает как по IP в локалке просмотреть открытые порты.....т.е 192.169.1.3. вот и мне нужно знать какие порты он использует...

65

iegrec пишет:

может кто подскажет как можно мониторить с помощью iptables сеть.?? т.е я хочу сказать как можно глянуть кто забивает канал....?

iptraf

iegrec пишет:

или может кто знает как по IP в локалке просмотреть открытые порты.....т.е 192.169.1.3. вот и мне нужно знать какие порты он использует...

nmap

It is good day to die ...
MS Windows 10
Заметки о главном...

66

Спасибо !!! smile но я использую уже netstat -an |grep 192.168.1.3

работает на ура......

67

iegrec, iptraf  покажет детально все :-)

It is good day to die ...
MS Windows 10
Заметки о главном...

68

tcpdump -i eth0 -tttt host 10.0.0.111 самый подробный вывод....

но вот я немогу понять как можно узнать соеденение сделал 10.0.0.111 хост или нет....

69

Нужно поднять элементарный нат.
делаю так:

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 не пересылает. Все остатки головы сломал об этот нат, на соседней виртуалке, откуда была склонирована эта точно такие же условия, только адрес другой, и все работает.
В чем может быть проблема тут?

70 (15.10.2010 19:35:11 отредактировано hexkey)

Внесу свои 5 копеек в общее дело. На какой форум не зайду - везде вопросы про нат. ab Ссылочка на мой скромный блог, где я написал статью "Настройка NAT в Ubuntu"... Надеюсь кому нибудь поможет. Статья из разряда "для самых маленьких", запланировал небольшой цикл статей по созданию домашней сети используя сервер на линуксе, а то куча знакомых задают вопросы постоянно на эту тему.

71 (12.10.2010 01:18:19 отредактировано segods)

Подскажите, как на определенном интерфейсе запретить коннект ко всем портам?

Сам додумался до:

 Консоль:
iptables -I OUTPUT 1 -o tun1 -j DROP

или
 Консоль:
iptables -I INPUT 1 -i tun1 -j DROP

Но тогда весь сетевой обмен встанет, а на этом интерфейсе работает nat.
не хочу что бы из тунеля был доступ к программам листящимся на всех интерфейсах роутера....

72

hexkey пишет:

Внесу свои 5 копеек в общее дело.

Not found!

Sorry, this page does not exist.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

73

drBatty пишет:
hexkey пишет:

Внесу свои 5 копеек в общее дело.

Not found!

Sorry, this page does not exist.

Прошу прощения, немного сайт подрихтовал... Заменил на рабочую ссылку.

74

iegrec пишет:

tcpdump -i eth0 -tttt host 10.0.0.111 самый подробный вывод....

но вот я немогу понять как можно узнать соеденение сделал 10.0.0.111 хост или нет....

смотри по портам, есть серверый порт (порт который предоставляется демоном. например апач - 80) и клиентский порт.

75 (24.10.2010 20:12:31 отредактировано Kettler)

segods пишет:

Подскажите, как на определенном интерфейсе запретить коннект ко всем портам?

iptables -A INPUT -i eth0 -j DROP
iptables -A OUTPUT -o eth0 -j DROP

А потом открывай нужные порты

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

76

помогите разобраться.
есть "сервер" на 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

Пусть будет как мы хотим, ибо мы не хотим ничего плохого (с) kazantipa.net

77

перед тем как всё закрывать откройте нужный порты
По умолчанию всё запрещаешь.
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

Ищу дополнительный заработок (удалёнка).
Пьянка без секса – признак алкоголизма.

78

можно плиз для этой конф. написать какие порты используются? :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

?

Пусть будет как мы хотим, ибо мы не хотим ничего плохого (с) kazantipa.net

79 (19.01.2011 08:22:14 отредактировано quux)

Здравствуйте.

Подскажите, как 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

никакой реакции. Может после ввода команд надо как то закоммитить? Или не в ту сторону рою? Заранее спасибо

cli
jmp $-3

80

Оказалось что 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#

cli
jmp $-3

81

Работает.
Оказывается, надо было обратиться извне, локально работать не хочет...

cli
jmp $-3

82

quux пишет:

Оказывается, надо было обратиться извне, локально работать не хочет...

quux пишет:

IP адрес по которому прога на 5061 порту ловит - 127.0.0.1 или же 192.168.1.99, не важно на какой именно.

важно.  пробросте ещё и 127/8 и заработает локально

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

83

Нужно чтобы маскировался 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
I like Linux

84 (17.03.2011 16:43:04 отредактировано mastahcookie)

Друзья, сделал 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

85

mastahcookie пишет:

Друзья, сделал iptables, может покритикуете?

smtp/pop3/pop3s/imap/imaps где? или вы почтой не пользуетесь? =)

It is good day to die ...
MS Windows 10
Заметки о главном...

86

i2ks пишет:
mastahcookie пишет:

Друзья, сделал iptables, может покритикуете?

smtp/pop3/pop3s/imap/imaps где? или вы почтой не пользуетесь? =)

а разве порты открываются не в squid? или в iptables тоже нужно открывать необходимые порты?

87

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

примерно так =)

It is good day to die ...
MS Windows 10
Заметки о главном...

88

i2ks пишет:
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

примерно так =)

а, понял ab спасибо

89 (17.03.2011 17:53:40 отредактировано i2ks)

mastahcookie пишет:

а, понял smile спасибо

если по ветки полазить то найдете более гибкое решение =) Так же могу в ЛС кинуть то что сейачс крутится на некоторых серверах =)

It is good day to die ...
MS Windows 10
Заметки о главном...

90

iptables -P OUTPUT ACCEPT

Всё же не есть гуд.
Разберитесь, с портами, которые испольуете, остальное закройте.
Точнее закройте по дефолту всё, а откройте только нужное. Вот так правильнее будет.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null