Как открыть порты в Ubuntu и CentOS с помощью IPtables. Открыть порт 80 centos 7


Как открыть порты в Ubuntu и CentOS с помощью IPtables

Иметь правильно настроенный брандмауэр является очень важно для общей безопасности на вашем сервере. На этом уроке мы собираемся показать вам, как настроить брандмауэр и открыть порты, которые нужны на вашем Linux VPS.

Хотя есть несколько мощных инструментов для управления брандмауэром на сервере Linux, мы будем использовать IPtables в этом учебнике. В случае, если вы используете UFW на Ubuntu или Firewalld на CentOS, вы можете проверить наши соответствующие гиды о том , как настроить межсетевой экран с UFW на Ubuntu или как настроить межсетевой экран с FirewallD на CentOS.

Прежде всего, подключитесь к Linux VPS через SSH и выведете список текущих правил Iptables с помощью следующей команды:

sudo iptables -L

 

Если вы недавно настроили ваш сервер, то не будет никаких правил Iptables и вывод должен быть похож на один ниже:

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

 

Если уже есть какие-то правила, которые вы не хотите, чтобы были там, вы можете очистить правила, используя следующую команду:

sudo iptables -F

 

Будьте осторожны с этой командой, особенно если политика по умолчанию на ваших цепях INPUT и  OUTPUT устанавливается на нечто иное , чем ACCEPT потому, что может заблокировать вас на вашего сервера.

Первое правило брандмауэра, которое необходимо добавить, заключается в следующем:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

 

Это в основном говорит вашему брандмауэру, чтобы принять текущее соединение SSH. Следующий шаг, чтобы разрешить трафик на интерфейсе loopback и открыть некоторые основные порты, такие как 22 для SSH и 80 для HTTP.

sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

 

Теперь вы готовы открыть другие порты, к которым вы хотите разрешить трафик. Используйте ту же команду, как вы использовали, чтобы открыть порт 22 и 80 в предыдущем примере.

Составьте список существующих правил с помощью:

sudo iptables -L

 

Выход должен быть аналогичен приведенному ниже:

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ACCEPT tcp -- anywhere anywhere tcp dpt:http Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere

 

Для получения более подробной продукции вы можете использовать:

sudo iptables -nvL

 

И выход должен быть похож на этот:

Chain INPUT (policy ACCEPT 4 packets, 255 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 4 packets, 283 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0

 

Теперь вы можете реализовать правило DROP, которое будет блокировать все входящие пакеты, которые не соответствуют одному из правил ACCEPT, котрое мы добавили ранее.

sudo iptables -P INPUT DROP

 

Последнее, что вам нужно сделать, это сохранить правила и сделать их постоянными. Если вы используете Ubuntu VPS, вы можете установить iptables-persistent для этой цели.

sudo apt-get install iptables-persistent

 

В Ubuntu 14.04 можно использовать следующие команды, чтобы сохранить/перезагрузить правила Iptables:

sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload

 

На Ubuntu 16.04 использовать следующие команды:

sudo netfilter-persistent save sudo netfilter-persistent reload

 

Если вы используете CentOS VPS, вы можете использовать следующую команду, чтобы сохранить правила Iptables:

service iptables save

 

PS . Если вам понравился этот пост, поделитесь им с друзьями в социальных сетях c помощью кнопок на левой стороне поста или просто оставьте комментарий ниже.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Открыть порт брандмауэра на CentOS 7

Я использую centos 7, и я должен гарантировать, что порты 2888 и 3888 открыты.

Я читаю Эта статья  но это не сработало, потому что в ОС centos 7 нет команды iptables save.

кто-то сказал мне, что вышеуказанный URL-адрес недействителен для centos 7. И я должен следовать это

но эта статья не ясна для меня точно, какую команду мне нужно выполнить.

Я также нашел

firewall-cmd --zone=public --add-port=2888/tcp

но это не выдерживает перезагрузки.

Итак, как я могу открыть порты и пережить перезагрузку

253

2017-07-14 03:07

источник

Ответы:

Используйте эту команду, чтобы найти свою активную зону (зоны):

firewall-cmd --get-active-zones

Он скажет либо общественность, либо dmz, либо что-то еще. Вы должны обращаться только к требуемым зонам.

В случае публичной попытки:

firewall-cmd --zone=public --add-port=2888/tcp --permanent

Затем не забудьте перезагрузить брандмауэр, чтобы изменения вступили в силу.

firewall-cmd --reload

В противном случае замените публикацию для своей зоны, например, если ваша зона - dmz:

firewall-cmd --zone=dmz --add-port=2888/tcp --permanent

465

2017-07-14 05:13

Ответ на ganeshragav  является правильным, но также полезно знать, что вы можете использовать:

firewall-cmd --permanent --zone=public --add-port=2888/tcp

но если это известная услуга, вы можете использовать:

firewall-cmd --permanent --zone=public --add-service=http

а затем перезагрузить брандмауэр

firewall-cmd --reload

[Ответ изменен, чтобы отразить комментарий Мартина Петра, оригинальный ответ был --permanent в конце командной строки]

92

2017-09-11 19:27

CentOS (RHEL) 7, изменил брандмауэр для использования firewall-cmd который имеет понятие зон, которое похоже на версию общедоступных, домашних и частных сетей Windows. Вы должны смотреть Вот  чтобы выяснить, какой из них вы должны использовать. EL7 использует public по умолчанию, так что мои примеры ниже.

Вы можете проверить, в какой зоне вы используете firewall-cmd --list-all и изменить его с помощью firewall-cmd --set-default-zone=<zone>,

Затем вы узнаете, в какой зоне разрешен сервис (или порт):

firewall-cmd --permanent --zone=<zone> --add-service=http

firewall-cmd --permanent --zone=<zone> --add-port=80/tcp

Вы можете проверить, действительно ли порт открыт:

firewall-cmd --zone=<zone> --query-port=80/tcp

firewall-cmd --zone=<zone> --query-service=http

Согласно документация ,

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

Вы можете перезагрузить настройки брандмауэра с помощью: firewall-cmd --reload,

45

2017-10-31 18:29

Fedora, сделал это через iptables

sudo iptables -I INPUT -p tcp --dport 3030 -j ACCEPT sudo service iptables save

Кажется, работает

19

2017-07-08 11:23

В то время как ganeshragav  а также Sotsir  предоставить правильные и непосредственно применимые подходы, полезно отметить, что вы можете добавить свои собственные услуги для /etc/firewalld/services, Для вдохновения посмотрите /usr/lib/firewalld/services/, где расположены предопределенные службы firewalld.

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

Например, вы можете создать /etc/firewalld/services/foobar.xml:

<?xml version="1.0" encoding="utf-8"?> <service> <short>FooBar</short> <description> This option allows you to create FooBar connections between your computer and mobile device. You need to have FooBar installed on both sides for this option to be useful. </description> <port protocol="tcp" port="2888"/> <port protocol="tcp" port="3888"/> </service>

(Для получения информации о синтаксисе сделайте man firewalld.service.)

Как только этот файл будет создан, вы можете firewall-cmd --reload чтобы он стал доступен, а затем постоянно добавлял его в какую-либо зону с

firewall-cmd --permanent --zone=<zone> --add-service=foobar

а затем firewall-cmd --reload чтобы он сразу стал активным.

12

2018-05-25 10:57

To view open ports, use the following command.

firewall-cmd --list-ports

We use the following to see services whose ports are open.

firewall-cmd --list-services

We use the following to see services whose ports are open and see open ports

firewall-cmd --list-all

To add a service to the firewall, we use the following command, in which case the service will use any port to open in the firewall.

firewall-cmd --add-services=ntp

For this service to be permanently open we use the following command.

firewall-cmd -add-service=ntp --permanent

To add a port, use the following command

firewall-cmd --add-port=132/tcp --permanent

To run the firewall must be reloaded using the following command.

firewall-cmd --reload

Ya Ali

8

2017-10-25 16:33

The top answers here work, but I found something more elegant in Michael Hampton's answer to a related question. The "new" (firewalld-0.3.9-11+) --runtime-to-permanent option to firewall-cmd lets you create runtime rules and test them out before making them permanent:

$ firewall-cmd --zone=<zone> --add-port=2888/tcp <Test it out> $ firewall-cmd --runtime-to-permanent

Or to revert the runtime-only changes:

$ firewall-cmd --reload

Also see Antony Nguyen's comment. Apparently firewall-cmd --reload may not work properly in some cases where rules have been removed. In that case, he suggests restarting the firewalld service:

$ systemctl restart firewalld

1

2017-08-01 00:53

To view open ports, use the following command.

firewall-cmd --list-ports We use the following to see services whose ports are open.

firewall-cmd --list-services We use the following to see services whose ports are open and see open ports

firewall-cmd --list-all To add a service to the firewall, we use the following command, in which case the service will use any port to open in the firewall.

firewall-cmd --add-services=ntp For this service to be permanently open we use the following command.

firewall-cmd -add-service=ntp --permanent To add a port, use the following command

firewall-cmd --add-port=132/tcp --permanent

1

2018-04-08 20:37

programmerz.ru

Firewalld Centos 7. Установка, настройка, примеры

Firewalld хорошая замена iptables, пришедшая в базовых версиях Centos 7. Он не сильно отличается от своего предшественника и все изменения, в основном, связаны лишь в способе ввода тех или иных команд. Давайте начнем с самого простого - установки. 

Установка

Несмотря на то, что в базовых версиях Centos 7 firewall установлен по-умолчанию, некоторые хостинг провайдера удаляют его из своих сборок. Если на команду 

systemctl status firewalld

система отвечает, что firewalld не найден, то необходимо выполнить его установку следующей командой:

yum -y install firewalld

После установки необходимо будет запустить firewalld и добавить его в автозагрузку. Выполняем следующие команды:

systemctl status firewalld

systemctl enable firewalld

Проверим теперь статус firewalld: 

firewall-cmd --state

Если ответ "running", значит наш брандмаур установлен и готов к работе.

Общее

В firewalld используется несколько различных зон, отвечающих за тот или иной способ обработки соединения. В этой статье мы будет работать только с зоной public, так как она является основной(а так же используется по-умолчанию), но если вдруг вам станет интересно какие еще зоны доступны в firewalld, то смело выполняйте команду 

firewall-cmd --get-zones

которая выведет вам все доступные зоны.

Так же в firewalld имеется возможность установки постоянных правил. Для этого используется ключ --permanent.

Давайте посмотрим, а что же доступно нам "из коробки":

firewall-cmd --list-all

Кстати, если добавить ключик permanent, о котором я говорил чуть выше, то list-all выведет лишь то, что доступно на постоянной основе.

Если вдруг вы захотите увидеть лишь доступные порты, то можно воспользоваться следующей командой:

firewall-cmd --list-ports

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

firewall-cmd --reload

Открываем порт

Открыть порт возможно простой командой add-port:

firewall-cmd --zone=public --add-port=3000/tcp

Тут мы открываем порт 3000 для public. В данном примере настройка сохранится лишь временно, так как не указан permanent. Давайте откроем его на постоянной основе:

firewall-cmd --permanent --zone=public --add-port=3000/tcp

После изменений не забывайте перезагружать правила.

Закрываем порт

Для того, чтобы закрыть тот или иной порт используется команда remove-port:

firewall-cmd --zone-public --remove-port=3000/tcp

Удаление порта так же может быть как постоянным, так и временным, поэтому не забывайте про permanent:

firewall-cmd --permanent --zone-public --remove-port=3000/tcp

Сервисы

Если вы выполняли команду list-all, то могли обратить внимание на services. Подключенные сервисы сами так же используют определенные порты, но они уже не записываются в переменную открытых портов, а значит их уже не увидеть в list-ports.

Давайте, для примера, создадим сервис pptp, который будет работать на 1723 порту, используя tcp. Создаем сервис:

firewall-cmd --permanent --new-service=pptp

Так, сервис для firewalld создан. Давайте немного подредактируем его открываем файл, расположенный по пути /etc/firewalld/services/pptp.xml и заменяем его содержимое на следующее:

<?xml version="1.0" encoding="utf-8"?>

<service>

<port protocol="tcp" port="1723"/>

</service>

Как можно было заметить, все настройки сервисов хранятся в xml формате.

После создания сервиса его необходимо добавить в firewalld:

firewall-cmd --permanent --zone=public --add-service=pptp

Теперь наш сервис будет доступен после перезагрузки правил. Чтобы удалить данный service воспользуемся следующей командой:

firewall-cmd --permanent --remove-service=pptp

Если вас заинтересовала данная возможность, то вы можете посмотреть список доступных services, используя следующую команду:

firewall-cmd --get-services

Еще пару команд

Вроде самые важные возможности я описал, но всё же давайте посмотрим еще некоторые команды для firewalld:

  • get-active-zones - список активных зон;
  • add-interface - добавить интерфейс;
  • change-interface - изменить интерфейс;
  • remove-interface - удалить интерфейс;
  • panic-on - включение режима паники. Позволяет заблокировать все сетевые соединения;
  • panic-off - отключение режима паники;
  • add-masquerade - добавить маскарадинг;
  • remove-masquerade - удалить маскарадинг.

Пример. Переносим порт для ssh

Давайте перенесем наш ssh на нестандартный порт, например на 5555. Итак, для начала нам необходимо открыть данный порт:

firewall-cmd --permanent --zone=public --add-port=5555/tcp

firewall-cmd --reload

Проверяем работу ssh на новом порту и, если всё работает хорошо, удаляем ssh service:

firewall-cmd --permanent --remove-service=ssh

firewall-cmd --reload

В данном примере нет информации по редактированию конфигурации ssh, так как она не относится к данной статье, но, в качестве подсказки, конфиг находится по пути /etc/ssh/sshd_config.

Заключение

Несмотря на такое количество не осмотренных команд, данная статья заканчивается именно на тут :( Надеюсь, что читатели данной статьи теперь смогут с легкостью открыть порты для своих приложений.

web-wost.ru

3 способа, чтобы проверить открытые порты в Linux с соответствующим сервисом-процессом

Это очень важно, чтобы проверить открытые порты в Linux в целях безопасности. Это помогает системному администратору найти любое вторжение в систему. Эта статья поможет вам быстро проверить открытые порты в Linux с соответствующим сервисом-процессом.

Как проверить открытые порты в Linux с соответствующим сервисом-процессом?

Существуют различные способы, с помощью которых можно определить открытые порты прослушивания на Linux.

1. Проверка открытых портов в Linux с помощью команды NETSTAT

В основной форме команда NetStat выводит на экран или печатает информацию о сетевых подключениях и таблицу маршрутизации и т.д. Однако та же команда вместе с параметром ниже может быть использована для проверки открытых портов в Linux.

Команда:

Вывод:

Вот команда выше отображает все выходные TCP, а также порты UDP. В случае, если вы хотите отфильтровать его дальше, допустим, вы хотите узнать, процесс или услугу, используемую по порту 80, следуют использовать команду ниже.

В приведенной выше командной порт используется HTTPd службы с PID 1086.

2. Проверка открытых портов в Linux с помощью утилиты lsof

Утилита lsof в основном отображает список открытых файлов. Однако с некоторыми настройками параметров мы можем в состоянии также проверить открытые порты в Linux. По умолчанию она не установлена в системе, пожалуйста, следуйте ниже набором команд для установки в соответствии с дистрибутивом Linux.

Команда:

Вывод:

В случае, если вы хотите получить более подробную информацию о порте 80 можно использовать следующую команду:

Здесь, в этом выводе вы можете четко отметить, что порт 80 используется службой HTTP, имеющей PID 1056.

3. Проверка открытых портов в Linux с помощью nmap

Nmap является инструментом сканирования порта, используемый в Linux. Он не установлен на системах Linux по умолчанию. Вам необходимо установить его с помощью следующей команды.

После того, как он установиться, используется команда для проверки открытых портов в Linux.

Команда:

Вывод:

В выводе выше мы можем в состоянии очень легко проверить открытые порты.

В случае, если Вы хотите изучить больше о сетевых команд в Linux следуйте этой статье.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

andreyex.ru

Открытие портов в IPtables для почты на Linux

В своей теме «Открытие портов в IPtables для почты на Linux» хочу рассказать о открытие портов в IPtables для почты на Linux, на готовом примере покажу как это можно сделать.

Есть стандартные порты, которые используются для доступа к большинству услуг. Например, доступ к веб-сайту использует порт 80 для обычных (HTTP) веб-страниц и порт 443 для безопасного соединения (HTTPS).

SMTP/SMTPS

ПРИМЕЧАНИЕ: Хотя SMTP обычно использует порт 25 для соединений, но порт 587 на самом деле являеться предпочтительным для исходящего SMTP-трафика из-за широкого использования 25-го порта. А так же, 465 и 587 для SMTPS.

POP/POPS

POP и POPS (безопасное использование ) используют 110 и 995 порты соответственно.

IMAP/IMAPS

IMAP и IMAPS (безопасное использование) используют 143 и 993 порты соответственно.

Открытие портов в IPtables для почты на Linux

Есть несколько способов добавить правила:

  • Отредактировать файл конфигурации IPtables и внести некоторые изменения.
  • Добавить правила с помощью команды iptables.

Я буду использовать 2-й способ, для меня он проще ( не нужно редактировать ничего).

Для Debian/Ubuntu и CentOS (5/6) Fedora/RedHat, можете использовать следующие команды.

Для разрешения входящего трафика для SMTP используем:

# iptables -A INPUT -p tcp --dport 25 -j ACCEPT # iptables -A INPUT -p tcp --dport 465 -j ACCEPT # iptables -A INPUT -p tcp --dport 587 -j ACCEPT

Для разрешения входящего трафика для POP/POPS используем:

# iptables -A INPUT -p tcp --dport 110 -j ACCEPT # iptables -A INPUT -p tcp --dport 995 -j ACCEPT

Для разрешения входящего трафика для IMAP/IMAPS используем:

# iptables -A INPUT -p tcp --dport 143 -j ACCEPT # iptables -A INPUT -p tcp --dport 993 -j ACCEPT

Такой вариант не работал у меня. Локально все соединения были открыты, но с мира не мог достучаться. Решением служило:

# iptables -I INPUT -p tcp -m tcp --dport 465 -j ACCEPT

И так для каждого порта.

Для  CentOS 7, можете использовать следующие команды.

# firewall-cmd --permanent --zone=public --add-port=25/tcp  # firewall-cmd --permanent --zone=public --add-port=465/tcp  # firewall-cmd --permanent --zone=public --add-port=587/tcp  # firewall-cmd --permanent --zone=public --add-port=110/tcp  # firewall-cmd --permanent --zone=public --add-port=995/tcp  # firewall-cmd --permanent --zone=public --add-port=143/tcp  # firewall-cmd --permanent --zone=public --add-port=993/tcp

Теперь проверьте, что правила были добавлены с помощью следующей команды:

# iptables -L

На этом все «Открытие портов в IPtables для почты на Linux» завершена.

linux-notes.org