Открыть порт на Debian 9

Автор linksm, 06 марта 2021, 16:47:08

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

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

linksm

Здравствуйте. Подскажите пожалуйста - как открыть порт в debian 9, например, 25-й. А то столько всяких пособий, которые просто противоречат друг другу и ничего четкого и вразумительного нет

ChubaDuba

Я пользуюсь фаерволом ufw. Чтобы открыть с помощью него 25 порт нужно выполнить:

$ sudo ufw allow 25

Если за роутером, то нужно и на нём пробросить нужный порт.

dzhoser

Важно так же указывать протокол для которого вы открываете порт
sudo ufw allow 22/tcp если протокол не указан будет открыто для всех протоколов
Если вы используете iptables, то нужно указывать направление для правила
Входящий
sudo iptables -t filter -A INPUT -p tcp --dport 22-j ACCEPT
Исходящий
sudo iptables -t filter -A OUTPUT -p tcp --dport 22-j ACCEPT
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

linksm

#3
Значит, описываю ситуацию подробнее. Есть сервер на Debian 9, на нем нужно организовать виртуал хосты\поддомены, которые будут привязаны каждый к своему IP, с которых будет идти рассылки. Делал через Postfix instances, прописывая через main.cf и master.cf. В итоге - на главном хосте все работает, а два виртуала не работают - для них закрыт порт 25 и остальные. Прописывал в iptables все что можно - полный ноль.
Если пишу в главном main.cf, принудительно:
smtp_bind_address = Х.Х.Х.Х
smtp_helo_name = mail1.new.com
myhostname = mail1.new.com
То только тогда для него как-то открывается порт и идет рассылка. Но вместе они не работают, только по отдельности.
Сами виртуал хосты через браузер не открываются, ERR Connection Timed Out, главные сайт сам открывается.

dzhoser

#4
Цитата: linksm от 20 марта 2021, 00:16:11Прописывал в iptables все что можно - полный ноль.
Ну покажите что написали, как разрешали
порты.
Попробуйте без iptables
Остановить службу iptables можно командами:
/etc/init.d/iptables stop
или
service iptables stop
Создайте скрипт для сброса правил
su -
nano iptables-drop.sh
Со следующим содержимым:
Цитировать#!/bin/sh
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
Сохраняем изменения сочетанием клавиш CTRL+O  Y  и выходим из Nano командой CTRL+X

Разрешаем файл на исполнение:
chmod u+x /root/iptables-drop.sh
Запускаем файл скрипта для сброса правил:
sh /root/iptables-drop.sh
Результат работы этого файла можно посмотреть путем вывода итогового списка существующих правил в IPtables при помощи команды:
iptables -L
После выполнения команды будет выведен следующий результат, подтверждающий отсутствие правил:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Примечание: Внесенные скриптом изменения остаются в силе до перезагрузки VPS или IPtables. В случае выполнения перезагрузки необходимо вновь запустить файл скрипта, чтобы исходные правила были сброшены.
Ну и нужно начать с пинга виртуалок, может вы неправильно выпонели сетевые настройки (например машины в разных подсетях). И выложите конфигационные файлы, а то гадание на кофейной гуще получается.
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

linksm

Все виртуалки прекрасно пингуются. Конфиги main.cf вот, отличаются только доменами и ip-адресами:
1) myorigin = mail.domain.com
    myhostname = mail.domain.com

smtpd_banner = mail.domain.com
biff = no

mynetworks =  X.X.X.1

mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

masquerade_classes = envelope_sender, header_sender
relay_domains = mail.domain.com
maximal_queue_lifetime = 5d

compatibility_level = 2


multi_instance_wrapper = ${command_directory}/postmulti -p --
multi_instance_enable = yes
multi_instance_directories = /etc/postfix-mail1 /etc/postfix-mail2



smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

append_dot_mydomain = no

milter_protocol = 2
milter_default_action = accept


2) В конфигах master.cf у всех прописана строка:
25      inet  n       -       n       -       -       smtpd



ogost

На самом деле для доступности порта извне нужно:
1. Запустить процесс, слушающий порт
2. Убедиться, что фаервол на сервере его не блокирует
3. Убедиться, что внешний фаервол его не блокирует. Это может быть ваш хостер, ваш сисадмин, или кто-то другой, кто заведует вашей сетью.

ss -ltpnu # покажет открытые порты, если от рута, то ещё и процесс, слушающий порт
iptables -L # покажет правила iptables.