@GiFus

Открытие порта для определённого ip?

Нужна помощь в реализации подобия whitelist'a . В общем, надо открыть порт только для определённого ip через iptables по tcp протоколу. Уже второй час голову ломаю, как грамотно это реализовать.
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ответы на вопрос 4
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
Ну, вот так например я ssh разрешаю

-A INPUT -p tcp --dport 22 -m set --match-set anynodes src -j ACCEPT
-A OUTPUT -p tcp --sport 22 -m set --match-set anynodes dst -j ACCEPT

где anynodes - это сет, определенный в ipset например вот так:
create anynodes hash:net family inet hashsize 1024 maxelem 65536 
add anynodes 10.7.1.0/24 
add anynodes 10.7.3.0/24

Разумеется по умолчанию пристреливать
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
Ответ написан
ky0
@ky0
Миллиардер, филантроп, патологический лгун
1. Пишете правило, разрешающее доступ с нужного айпи на нужный порт.
2. Добавляете ниже по цепочке правило, запрещающее доступ на порт.

Если нужно часто добавлять/удалять адреса - можно сделать отдельную цепочку, в которую бы сначала проваливался трафик, и в неё добавлять адреса.
Ответ написан
Vertenz
@Vertenz
Мечтетель
Советую первым делом проверить все правила, которые установлены для порта, iptables -n -L -v --line-numbers | grep {номер порта}. Удалите все правила этого порта, если уже сделали их кучу :) iptables -D INPUT {номер правила}
Поле этого разрешите доступ только определенному ip sudo iptables -A INPUT -p tcp --dport {номер порта} --source {ip} -j ACCEPT (помните, что есть ip внутренней сети и "внешний").
После этого закройте порт
sudo iptables -A INPUT -p tcp --dport {номер порта} -j DROP

можно еще Match Address, если для ssl
Ответ написан
@unseriously
Например, нам нужно разрешить подкючение на 22-й порт с айпишника 5.5.5.5:
iptables -A INPUT -s 5.5.5.5 -p tcp --dport 22 -j ACCEPT
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы