Linux заблокировать все кроме

Закрыть все кроме 22, 80, 5432 портов через iptables?

Подскажите пожалуйста команды в iptables, для того что бы:

1. закрыть все входящие порты, кроме 22, 80, 5432

2. открыть все исходящие порты

3. открыть порт 80 для всех входящих соединений

4. открыть 22 и 5432 порты только для конкретного IP

1. закрыть все входящие порты
iptables -P INPUT DROP
2. открыть все исходящие порты
iptables -P OUTPUT ACCEPT
3. открыть порт 80 для всех входящих соединений
iptables -A INPUT —dport 80 -j ACCEPT
4. открыть 22 и 5432 порты только для конкретного IP
iptables -A INPUT -m multiport —dports 22,5432 -s IP_ADDRESS -j ACCEPT

И сохранить настройки вроде так: //sbin/iptables-save. Помнится вроде так и делал, но что-то не всё выходило. Отпишитесь, если всё получится (и скрипт тоже)).

iptables-save выдает список правил в формате, который можно скормить iptables-restore.
Можно это вручную, сохранять в файл, на автозапуск настроить iptables-restore < file, либо init-скрипты дистрибутивов это обычно умеют:
service iptables save в федоре
/etc/init.d/iptables save в gentoo

ГЛАВНОЕ не выполнять это по ssh, иначе после первой строчки настройка закончится.
Дополнительно советую сначала отправлять «остальные» пакеты не в дроп, а в лог — так можно обнаружить порты, которые изначально забыли открыть.

Не закончиться, если делать через &&…
Для пущей безопасности можно подстаховаться и сделать (sleep 120 && reboot) &

Ну, ты пишешь в консоле «iptables -P INPUT DROP» и отрубаешься от своего сервера до тех пор, пока он не перезапуститься =) VPS можно из панели управления перезапустить, а если сервер физический… придеться звонить ребятам тех. поддержки =)

Читайте также:  The best ide for c linux

При настройке через ssh лучше сначала сделать разрешающее правило на порт ssh, после чего убедиться что оно работает (посмотреть счетчик пакетов по нему). Если всё сделать с первого раза правильно, то проблем, конечно, не будет, однако береженого бог бережет. У меня поначалу случались такие ошибки.
И еще раз повторюсь про трюк с отправкой в лог по-умолчанию, пару раз это помогало найти порты, которые изначально открыть забыл.

С вашим конфигом исходящие соединения работать не будут. Необходимо ещё правило, разрешающее прохождение ответных пакетов (что-то вроде «iptables -A INPUT -i eth0 —match state —state ESTABLISHED,RELATED -j ACCEPT»). Ниже есть правильное решение.

cjey

должно получиться что-то вроде этого
# Настраиваем политики по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# удаляем все имеющиеся правила
iptables -F
iptables -t nat -F
iptables -t mangle -F

iptables -X
iptables -t nat -X
iptables -t mangle -X

# правила входящих соединений
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 —match state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp —dport 80 —match state —state NEW -j ACCEPT
iptables -A INPUT -i eth0 —source 192.168.0.10 -p tcp —dport 22 —match state —state NEW -j ACCEPT
iptables -A INPUT -i eth0 —source 192.168.0.10 -p tcp —dport 5432 —match state —state NEW -j ACCEPT

# Правила исходящих соединений
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth0 —match state —state NEW, ESTABLISHED, RELATED -j ACCEPT

Источник

Блокировка всех запросов, кроме некоторых сайтов

@Total Pusher, в моём случае необходима конкретно блокировка всех исходящих, чтобы через какую-нибудь дыру ( аля Log4jExploit ) нельзя было загрузить файл и выкачать данные в обход SSH/FTP.

Читайте также:  Progressbar as in linux

Лучше использовать корпоративное решение. Решение IP tables — наколеночное, и для бедных. PS. И склонное к превращению в лапшу по мере добавления правил

1 ответ 1

Современные большие сайты это не один IP адрес, а целые экосистемы.

Например чтоб открыть VK нужно открыть несколько подсетей

87.240.128.0/18 93.186.224.0/20 95.142.192.0/20 95.213.0.0/17 185.32.248.0/22 

К решению задачи можно подойти так:

Во-первых исправить правила — разрешить входящие. Запрета исходящих достаточно для блокировки. Или использовать контрак (для ненагруженных систем) iptables -I INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

Во-вторых разрешить адреса DNS серверов.

Далее открыть tcpdump, wireshark, инспектор браузера или netstat -ntp | grep пид_процесса на котором тестишь и смотреть куда уходят не отвеченные запросы.

Анализируй к чему относятся эти адреса, в случае wireshark и инспектора браузера увидишь домен.

Этот домен пробей через dig, чтоб получить альтернативные адреса серверов.

Пробей эти адреса через whois, чтоб посмотреть чей это хостинг и в случае если весь диапазон принадлежит сайту — открыть весь диапазон.

Чтоб браузер не «зависал» используй tcp reset вместо дропа.

Адреса лучше забивать в ipset.

Источник

iptables как заблокировать все кроме нескольких ip

Для блокировки всех ip адресов кроме выбранного диапазона я использовал простой набор правил.

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -s X.X.X.X -j ACCEPT iptables -A OUTPUT -d X.X.X.X -j ACCEPT 

Ниже расшифруем каждую строку для более детального понимания как это работает.

#блокируем все входящие и исходящие запросы iptables -P INPUT DROP iptables -P OUTPUT DROP # Принимаем входящие с адреса X.X.X.X iptables -A INPUT -s X.X.X.X -j ACCEPT #Принимаем исходящие с адреса X.X.X.X iptables -A OUTPUT -d X.X.X.X -j ACCEPT

Для разрешения доступа из подсетей можно использовать такой запрос

iptables -A INPUT -s X.X.X.X/24 -j ACCEPT iptables -A OUTPUT -d X.X.X.X/24 -j ACCEPT

Нужный набор правил был сохранен в файле (допустим /root/ipt) Пример файла ниже.

#!/bin/bash iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -s X.X.X.X -j ACCEPT iptables -A OUTPUT -d X.X.X.X -j ACCEPT

После выполнения данного скрипта наши правила применятся, но не будут сохранены при перезагрузке. Для сохранения при перезагрузке необходимо выполнить следующий набор действий.

iptables-save > /root/iptables

Для того что бы данный набор правил включался при перезагрузке необходимо в файл /etc/rc.d/rc.local внести дополнительную строку с восстановлением настроек.

Читайте также:  Intel thread director linux

Теперь при перезагрузке у нас будет запускаться нужный нам набор правил. Данная настройка тестировалась на CentOS 7.

Источник

Оцените статью
Adblock
detector