Назад | Перейти на главную страницу

Как разрешить все соединения с определенного IP-адреса?

Я хочу разрешить все подключения с определенного IP-адреса, но у меня не получается.

ОС: Ubuntu Server 16.04. (входящий и исходящий сервер)

Я выполнил эти команды:

iptables -I INPUT -p tcp -s 192.168.0.45 -j ACCEPT
iptables -I OUTPUT -p tcp -d  192.168.0.45 -j ACCEPT

service netfilter-persistent save
/etc/init.d/netfilter-persistent restart

Но это не работает.

Это то, что у меня rules.v4 выглядит как:

# Generated by iptables-save v1.6.0 on Thu Jun 22 08:48:43 2017
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -s 192.168.0.45/32 -p tcp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9100 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8025 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i tun0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 17000 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -d 192.168.0.45/32 -p tcp -j ACCEPT
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Thu Jun 22 08:48:43 2017

Я получаю все соединения, только если смываю все

iptables -F

Как правильно разрешить все соединения с определенного IP-адреса?

Как правильно разрешить все соединения с определенного IP-адреса?

«Все подключения» означает не сопоставляйте tcp с вашим конкретным разрешающим правилом IP!

Просто удали -p tcp и у вас будет ping (ICMP) и все остальные разрешенные IP-протоколы.

Также обратите внимание, что правило OUTPUT здесь бесполезно. Первым правилом вы разрешаете tcp 192.168.0.45, вторым вы разрешаете кому угодно все. Так что первый не действует!

Чтобы получить желаемое, отредактируйте правило ввода:

iptables -A INPUT -s 192.168.0.45/32 -j ACCEPT

И удалите правило OUTPUT, которое вы создали для 192.168.0.45.