- Вопрос или проблема
- Ответ или решение
- Шаги по настройке iptables:
- 1. Удаление текущих правил и цепочек
- 2. Разрешение для loopback-интерфейса
- 3. Блокировка ICMP для конкретного IP или интерфейса
- 4. Разрешение ICMP для остальных
- 5. Разрешение на установленные соединения
- 6. Настройка доступа к SSH, HTTP и OpenVPN
- 7. Определение политик по умолчанию
- 8. Сохранение конфигурации
Вопрос или проблема
Я бы хотел, чтобы либо публичный адаптер, либо публичный IP-адрес на сервере, доступном в Интернете, был настроен так, чтобы не отвечать на запросы ping.
У меня есть адаптер openvpn tap/tun, который я бы хотел оставить отвечающим на запросы ping.
Пока что я нашел только методы для отключения ответов на все запросы ping или отключения ответов на запросы ping от конкретного IP-адреса.
Кто-нибудь знает, возможно ли это, и как этого добиться?
Я использую Ubuntu 16.04, если это полезно.
Заранее спасибо!
Начнем
Удалите текущие правила и цепочки
sudo iptables --flush
sudo iptables --delete-chain
разрешить loopback
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
заблокировать ICMP
sudo iptables -A INPUT -p icmp -d <your_ip_address> -j DROP
или/и
sudo iptables -A INPUT -i eth1 -p icmp -j DROP
или
sudo iptables -A OUTPUT -p icmp -j DROP
разрешить PING
для остальных
sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
разрешить уже установленные соединения
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
разрешить SSH
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
разрешить HTTP
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
разрешить OpenVPN
sudo iptables -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
политики по умолчанию
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
Сохранить
sudo iptables-save
Вот и все. Думаю 🙂
Ответ или решение
Чтобы решить задачу блокировки ICMP ответов только для одного IP-адреса или интерфейса на сервере с публичным доступом, при этом сохраняя возможность ответа на пинг через адаптер OpenVPN, можно воспользоваться следующими шагами настройки iptables на Ubuntu 16.04. Инструкция позволяет выбрать между блокировкой ICMP пакетов по конкретному IP-адресу или сетевому интерфейсу, сохраняя при этом гибкость в настройках для других интерфейсов или IP-адресов.
Шаги по настройке iptables:
1. Удаление текущих правил и цепочек
Сначала убедитесь, что текущие правила iptables очищены, чтобы избежать конфликтов:
sudo iptables --flush
sudo iptables --delete-chain
2. Разрешение для loopback-интерфейса
Обеспечьте, чтобы loopback-интерфейс всегда оставался доступным, что необходимо для работы многих системных сервисов:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
3. Блокировка ICMP для конкретного IP или интерфейса
Определите, какой IP-адрес или интерфейс должен блокировать ICMP пакеты:
Блокировка по IP-адресу:
sudo iptables -A INPUT -p icmp -d <your_ip_address> -j DROP
Блокировка по интерфейсу (например, eth1):
sudo iptables -A INPUT -i eth1 -p icmp -j DROP
4. Разрешение ICMP для остальных
Чтобы другие интерфейсы или IP-адреса продолжали отвечать на ICMP-запросы:
sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT
5. Разрешение на установленные соединения
Разрешите обработку существующих соединений:
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
6. Настройка доступа к SSH, HTTP и OpenVPN
Определите доступ к основным службам, таким как SSH, HTTP и OpenVPN:
SSH:
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
HTTP:
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
OpenVPN:
sudo iptables -A INPUT -m state --state NEW -m udp -p udp --dport 1194 -j ACCEPT
7. Определение политик по умолчанию
Задайте политики для входящих и исходящих соединений:
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
8. Сохранение конфигурации
Сохраните настройки для их использования после перезагрузки:
sudo iptables-save
Этот набор команд обеспечит блокировку ICMP пакетов для выбранного IP-адреса или интерфейса, позволяя при этом другим интерфейсам, никаким образом связанным с OpenVPN, продолжать получать ICMP-запросы. Убедитесь, что iptables запущены на уровне сервера, и внесенные изменения активны для соблюдения политики безопасности.