LINUX.ORG.RU
ФорумAdmin

iptables - не все порты закрыты

 , ,


0

1

Приветствую!

Прошу помочь разобраться с простейшими правилами iptables. Документацию читал, многое понятно, но что-то идет не так.

дано: Ubuntu Server 12.04 LTS eth0 - смотрит в интернет eth1 - в локальную сеть

Раздавать интернет за локальную сеть не нужно.

Задача закрыть все порты на eth0 кроме 22, eth1 разрешить все.

Скрипт с правилами

#!/bin/sh

iptables -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -F
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 58022 -j ACCEPT
iptables -A INPUT -i eth0 -p all -j DROP
iptables -A INPUT -i eth1 -p all -j ACCEPT

Вывод iptables -L -v

Chain INPUT (policy ACCEPT 9188 packets, 6425K bytes)
 pkts bytes target     prot opt in     out     source               destination
   74  7965 ACCEPT     all  --  eth0   any     anywhere             anywhere             state RELATED,ESTABLISHED
    1    64 ACCEPT     tcp  --  eth0   any     anywhere             anywhere             tcp dpt:22
  169  9600 DROP       all  --  eth0   any     anywhere             anywhere
 2615  540K ACCEPT     all  --  eth1   any     anywhere             anywhere

И вот самое интересное

Вывод nmap -PN host

Host is up (0.0041s latency).
Not shown: 997 filtered ports
PORT     STATE SERVICE
21/tcp   open  ftp
554/tcp  open  rtsp
7070/tcp open  realserver

Откуда взялись эти порты если я добавил правило: ?

iptables -A INPUT -i eth0 -p all -j DROP

У тебя всё равно разрешающие правила есть на всё - сделай drop по-умолчанию.

Если всё-таки интересно, то можно

iptables -A INPUT -i eth0 -p all -j LOG

добавить.

ziemin ★★ ()

Помоему ты не правильно ставишь задачу, ну да ладно...

iptables -F
iptables -X

# Политики по умолчанию.
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Разрешаем прохождение любого трафика по интерфейсу обратной петли.
iptables -A INPUT -i lo -j ACCEPT   
iptables -A OUTPUT -o lo -j ACCEPT 

# Открыть порт 22
iptables -A OUTPUT -p tcp -m tcp -o eth0 --dport 22 --sport 1024:65535 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth0 --dport 1024:65535 --sport 22 -j ACCEPT ! --syn

# Открыть все порты eth1 # Зачем???
iptables -A INPUT -i eth1 -j ACCEPT

windusjatnik ()
Ответ на: комментарий от windusjatnik
iptables -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
anonymous ()

А политика по умолчанию


iptables -P INPUT DROP

Адльше уже разрешай что тебе надо

mannaz2004 ()

А почему у тебя после таких правил такой iptables -L -v ??? То, что ты разрешаешь 58022 а в выводе у тебя 22, тебя не смущает?

no-dashi ★★★★★ ()
Ответ на: комментарий от shur1k

Вывод iptables-save приведи, он более полезен чем всё остальное вместе взятое

no-dashi ★★★★★ ()

Прочитал все что посоветовали в комментариях

Переделал правила следующим образом:

iptables -F

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 58022 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -p ALL -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A OUTPUT -p ALL -j ACCEPT

Все что мне нужно работает, наружу торчит только 22 порт, внутри сети между серверами трафик ходит по eth1.

Спасибо!

shur1k ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.