LINUX.ORG.RU
ФорумAdmin

iptables заблокировать порт для недоверенных ip не работает.


0

1

Суть задачи открыть доступ к порту, определенным ip, остальным заблокировать. Использую цепочку правил:

iptables -I INPUT 1 -i eth0 -p tcp -s 192.168.60.1 --dport 7777 -j ACCEPT

iptables -I INPUT 2 -i eth0 -p tcp -s 192.168.61.180 --dport 7777 -j ACCEPT

iptables -I INPUT 3  -i eth0 -p tcp --dport 7777 -j REJECT --reject-with icmp-port-unreachable
и имею доступ к порту 7777 с любого ip. Что неправильно?


Ответ на: комментарий от anonymous

iptables -n -L -v --line-numbers

Chain INPUT (policy ACCEPT 1326K packets, 263M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     1259  154K ACCEPT     tcp  --  eth0   *       192.168.60.1         0.0.0.0/0           tcp dpt:7777 
2        0     0 ACCEPT     tcp  --  eth0   *       192.168.61.180       0.0.0.0/0           tcp dpt:7777 
3        0     0 REJECT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:7777 reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 558K packets, 427M bytes)
num   pkts bytes target     prot opt in     out     source               destination    

gema ()
Ответ на: комментарий от gema

iptables -P INPUT DROP
а то у тебя политика по умолчанию - принимать всё.

после этих действий надо перечислить всё, что разрешено

aol ★★★★★ ()
Последнее исправление: aol (всего исправлений: 1 )
Ответ на: комментарий от aol

iptables -n -L -v --line-numbers

Chain INPUT (policy ACCEPT 1334K packets, 265M bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:7777 
2     1259  154K ACCEPT     tcp  --  eth0   *       192.168.60.1         0.0.0.0/0           tcp dpt:7777 
3        0     0 ACCEPT     tcp  --  eth0   *       192.168.61.180       0.0.0.0/0           tcp dpt:7777 
4        0     0 ACCEPT     tcp  --  eth0   *       192.168.63.8         0.0.0.0/0           tcp dpt:7777 
Сначала DROP, а потом исключения ACCEPT?

gema ()
Ответ на: комментарий от gema

тебе надо сделать так, чтобы
Chain INPUT (policy DROP XXXXK packets, XXXM bytes)

для этого надо выполнить iptables -P INPUT DROP
остальное было верно в ОП

aol ★★★★★ ()
Последнее исправление: aol (всего исправлений: 1 )
Ответ на: комментарий от anton_jugatsu
 # Generated by iptables-save v1.4.2 on Thu Feb 28 12:53:22 2013
*nat
:PREROUTING ACCEPT [295819:38121110]
:POSTROUTING ACCEPT [16132:934208]
:OUTPUT ACCEPT [16132:934208]
COMMIT
# Completed on Thu Feb 28 12:53:22 2013
# Generated by iptables-save v1.4.2 on Thu Feb 28 12:53:22 2013
*filter
:INPUT ACCEPT [1373017:271107298]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [570678:434457358]
-A INPUT -i eth0 -p tcp -m tcp --dport 7777 -j DROP 
-A INPUT -s 192.168.60.1/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT 
-A INPUT -s 192.168.61.180/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT 
-A INPUT -s 192.168.63.8/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT 
COMMIT
# Completed on Thu Feb 28 12:53:22 2013

gema ()
Ответ на: комментарий от gema

-A INPUT -i eth0 -p tcp -m tcp --dport 7777 -j DROP

перевожу

подключение с интерфейса eth0 с любого хоста на порт 7777 по протоколу TCP строго запрещено.

И это правило идёт первым.

anton_jugatsu ★★★★ ()
Ответ на: комментарий от anton_jugatsu

Если я ставлю его на последнее место то доступ открыт для любого ip.

# Generated by iptables-save v1.4.2 on Thu Feb 28 13:10:14 2013
*nat
:PREROUTING ACCEPT [296955:38274900]
:POSTROUTING ACCEPT [16136:934706]
:OUTPUT ACCEPT [16136:934706]
COMMIT
# Completed on Thu Feb 28 13:10:14 2013
# Generated by iptables-save v1.4.2 on Thu Feb 28 13:10:14 2013
*filter
:INPUT ACCEPT [1379865:271841006]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [571133:434610084]
-A INPUT -s 192.168.60.1/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT 
-A INPUT -s 192.168.61.180/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT 
-A INPUT -s 192.168.63.8/32 -i eth0 -p tcp -m tcp --dport 7777 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 7777 -j DROP 
COMMIT
# Completed on Thu Feb 28 13:10:14 2013

gema ()
Ответ на: комментарий от anton_jugatsu

ерунду советовать

It's a paranoia

Если есть физический доступ, то не страшно

DROP в конце

о!

тогда, отлавливать tcpdump'ом, вместо DROP поставить LOG, анализировать

leader32 ()
Ответ на: комментарий от leader32

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

anton_jugatsu ★★★★ ()
Ответ на: комментарий от anton_jugatsu

ты прав, в ситуации ТС проще правилами заблокировать

подождем ТС, я тоже теперь не верю :)

leader32 ()
Ответ на: комментарий от gema

У тебя 60.1 - прокси сервер, через который ходят все компы в локалке и ты хочешь заблокировать доступ кому-то iptables'ом? Я правильно понял?

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