nepster-web
@nepster-web

Настройка iptable на debian, как правильно написать правило?

Поставил iptables-persistent

У меня появились следующие файлы:

/etc/iptables/rules.v4
# Generated by iptables-save v1.4.14 on Thu Feb 13 09:03:29 2014
*filter
:INPUT ACCEPT [178:21358]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [179:40896]
COMMIT
# Completed on Thu Feb 13 09:03:29 2014


/etc/iptables/rules.v6
# Generated by ip6tables-save v1.4.14 on Thu Feb 13 09:03:29 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Thu Feb 13 09:03:29 2014


Подскажите пожалуйста как правило описать правила в эти файлы ?

К примеру мне нужно ограничить всем доступ по ssh кроме диапазона ip: 213.200.*.*
  • Вопрос задан
  • 5287 просмотров
Решения вопроса 1
@sergeevav82
Что то типа вот такого
iptables -I INPUT ! -s 213.200.0.0/16 -p tcp --dport 22 -j DROP
/etc/init.d/iptables-persistent save
Пакет iptables-persistent, позволяет всего лишь при загрузке загрузить правила. Записанные в файлах при команде save.
А для изучения вот рекомендую Ссылка 1 и Ссылка 2

Файл примет следующий вид:
# Generated by ip6tables-save v1.4.14 on Thu Feb 13 09:03:29 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT ! -s 213.200.0.0/16 -p tcp --dport 22 -j DROP
COMMIT
# Completed on Thu Feb 13 09:03:29 2014
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
iptables -A INPUT -s 213.200.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 83.143.233.190 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

Выполняете, проверяете, что ничего не отвалилось. Выполняете iptables-save, вам в ответ выплюнут файл, который нужно записать в /etc/iptables/rules.v4

Не забудьте про ipv6 - это отдельный протокол, у него отдельный firewall, по сути. Если не хотите никого пускать по ssh по ipv6, то:
ip6tables -A INPUT -p tcp --dport -22 -j DROP
ip6tables-save > /etc/iptables/rules.v6

Правила читать примерно так ( на примере iptables -A INPUT -s 213.200.0.0/16 -p tcp --dport 22 -j ACCEPT)
В цепочку INPUT (входящий трафик) добавь в конец списка правил (-A, -I - в начало списка) правило для трафика с источниками, находящимися в подсети 213.200.0.0/16, по протоколу tcp (есть udp ещё, icmp), для порта назначения 22 правило, разрешающее трафик, попадающий в эти условия.
iptables -A INPUT -p tcp --dport 22 -j DROP = запрети весь входящий трафик по tcp на порт 22.

Правило читаются по очереди, до первого совпавшего (ну настолько простые правила, вообще логика там достаточно замысловатая).
Ответ написан
Комментировать
@sergeevav82
Ну или создать цепочку куда заворачивать то что можно, а то что туда не попало блочить. Например так.
iptables -N TO_SSH
iptables -I INPUT -s 213.200.0.0/16 -p tcp --dport 22 -j TO_SSH
iptables -I INPUT -s 83.143.233.190 -p tcp --dport 22 -j TO_SSH
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -I TO_SSH -j ACCEPT

и в дальнейшем если нужно какой то айпишник добавить пишите
iptables -I INPUT -s <IP или сеть> -p tcp --dport 22 -j TO_SSH
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы