Используемые порты Debian

Автор Tinko, 16 октября 2019, 12:29:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Tinko

Здравствуйте, настроил iptables, настроил сбрасывание всех входящих соединений, кроме портов ssh и 80, 443. При выполнении команды:

sudo apt update

соответственно нет соединения. Какой порт используется для соединения с репозиториями в Debian? Использовал команду netstat, но она показал только используемые локальные порты.

endru


Tinko

Цитата: endru от 16 октября 2019, 14:54:06
лучше iptables-save покажи

# Generated by iptables-save v1.6.0 on Wed Oct 16 15:28:06 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1320:252043]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 63021 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -j DROP
COMMIT
# Completed on Wed Oct 16 15:28:06 2019

alexxnight

Не трогайте цепочку OUTPUT. Оставьте ее в  ACCEPT
фильтруйте входящие пакеты по необходимости.

endru

почитайте примеры как это делается. явно не те правила были прописаны

Tinko

Насколько я понимаю, я закрыл все соединения кроме портов на 63021, 80, 443. Насколько я понимаю, подключение к репозиториям дистрибутива использует же какой-то порт, соединение по которому нужно разрешить. Или как?

alexxnight

Вы пропускаете все входящие tcp пакеты на порты 80, 443, 63021.

Листик

А чего по дефолту не хотите?

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)


Обновления пропускает.

Tinko

Добавил правило:

-A OUTPUT -j ACCEPT

всё равно нет соединения с репозиториями дистрибутива. Что я конкретно делаю не так? Думал что нет соединения, потому что я запретил исходящий трафик, теперь разрешил, но подключения нет

alexxnight

Представьте, что Вы соединяетесь с https сервером. С Вашего компьютера, с любого из портов в диапазоне 1024 - 65535 (допустим, 32467) отправляется пакет на порт 443 сервера. Сервер его примет, обработает и ответит: со своего 443 порта на Ваш порт (допустим, тот же 32467) А Вы его не пропускаете:

-A INPUT -p tcp -m tcp --dport 63021 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -j DROP

Он у Вас дропается в конце...

Смотрите conntrack --ctsate ESTABLISHED,RELATED

Tinko

Поменял немного правила, теперь выглядят так:

# Generated by iptables-save v1.6.0 on Sun Oct 20 09:35:51 2019
*filter
:INPUT DROP [4:160]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [42:5720]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 63021 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sun Oct 20 09:35:51 2019


Теперь работают обновления

Tinko

Насколько понимаю, на данный момент входящие соединения: INPUT - запрещены: DROP.
Транзитные соединения: FORWARD - разрешены: ACCEPT.
Исходящие соединения: OUTPUT - разрешены: ACCEPT.
Входящие на локальном интерфейсе - разрешены.
Входящие на порты 63021, 80, 443 - разрешены.
Исходящие соединения, которые являются ответами на инициированные мной соединения - разрешены: RELATED. Правило: ESTABLISHED разрешает так же соединения связанные с предыдущими.

Вроде правильно понимаю?

sidbar

Поставь nmap на виртуалку.
Политика по умолчанию - запретить все, что не разрешено
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
Devuan GNU/Linux

alexxnight

Да, все верно...
ESTABLISHED для установленных соединений, RELATED - для соединений типа FTP, когда управляющий порт 20,21, а для данных 1024-65535
По негласному правилу пишут так:
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
далее все остальное

использовать нужно модуль -m conntrack, state является устаревшим, его должны в скором времени убрать (обещают, обещают...).

Tinko