Настройка межсетевого экрана в Linux: различия между версиями
Содержимое удалено Содержимое добавлено
Oleg4280 (обсуждение | вклад) {{Темы|Linux|Компьютерные сети}} |
− <pre />; →См. также: + Iptables; переименован (был: «Ссылки».) |
||
Строка 35:
=== Проверим состояние ===
==== Вариант 1 (рекомендуется в целях безопасности) ====
sudo iptables-save
При отсутствии правил вывод будет примерно таким:
*filter▼
▲*filter
:
:
COMMIT▼
▲:OUTPUT ACCEPT [0:0]
▲COMMIT
Если вывод отличается, то сброс настроек можно сделать командой
sudo iptables-restore < empty.rules▼
▲sudo iptables-restore < empty.rules
где empty.rules - текстовый файл, содержащий 5 строк, как в выводе выше.
==== Вариант 2 ====
sudo iptables -nvL
При отсутствии правил вывод будет примерно таким:
Строка 73 ⟶ 68 :
</pre>
чтобы сбросить:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo iptables -X
=== Установим политики по умолчанию ===
Строка 85 ⟶ 79 :
Для цепочки "проходящая" устанавливаем блокировку, для цепочки "выходная" устанавливаем разрешение, для цепочки "входная" устанавливаем блокировку. Далее будут правила, определяющие исключения для этих политик.
{{Внимание|На этом этапе произойдёт отключение, если связь производилась по SSH.}}
sudo iptables -P
sudo iptables -P
▲sudo iptables -P OUTPUT ACCEPT
=== Исключения (для входящих соединений) ===
Строка 95 ⟶ 87 :
1. Разрешим трафик, принадлежащий установленным соединениям
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT▼
▲sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
2. Разрешим локальный интерфейс
sudo iptables -A INPUT -i lo -j ACCEPT▼
▲sudo iptables -A INPUT -i lo -j ACCEPT
3. Запретим "неправильный" трафик (не открывающий новое соединение и не принадлежащий никакому установленному соединению).
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP▼
▲sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
4. Разрешим новые ICMP запросы (ping). Остальные запросы ping будут обработаны первым правилом.
sudo iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT▼
▲sudo iptables -A INPUT -p icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
5. Разрешим новые входные соединения по портам
Строка 121 ⟶ 105 :
Если установлен веб-сервер
sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 80 -j ACCEPT▼
▲sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 80 -j ACCEPT
Если необходима связь по SSH
sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT▼
▲sudo iptables -A INPUT -p tcp --syn -m conntrack --ctstate NEW --dport 22 -j ACCEPT
Если установлен DNS-сервер
sudo iptables -A INPUT -p udp -m conntrack --ctstate NEW --dport 53 -j ACCEPT▼
▲sudo iptables -A INPUT -p udp -m conntrack --ctstate NEW --dport 53 -j ACCEPT
есть возможность объединить несколько правил (для увеличения производительности):
sudo iptables -A INPUT -p tcp -m multiport --dports 21,22,6881:6882 -j ACCEPT▼
▲sudo iptables -A INPUT -p tcp -m multiport --dports 21,22,6881:6882 -j ACCEPT
6. Все новые входящие соединения, не обработанные предыдущими цепочками, запретим.
sudo iptables -A INPUT -p
sudo iptables -A INPUT
▲sudo iptables -A INPUT -j REJECT --reject-with icmp-proto-unreach
=== Сохраним правила ===
==== Arch Linux ====
sudo /etc/rc.d/iptables save
==== RedHat Linux ====
sudo /sbin/service iptables save
добавим демон для применения правил при загрузке компьютера
DAEMONS=(... iptables network ...)▼
▲DAEMONS=(... iptables network ...)
=== Итоговый список правил ===
Строка 185 ⟶ 156 :
</pre>
==
* [[Iptables]]
*
{{Темы|Linux|Компьютерные сети}}
|