Как открыть порты в Ubuntu и CentOS с помощью IPtables. Открыть порт 80 centos 7
Как открыть порты в Ubuntu и CentOS с помощью IPtables
Хотя есть несколько мощных инструментов для управления брандмауэром на сервере 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В противном случае замените публикацию для своей зоны, например, если ваша зона - dmz:
firewall-cmd --zone=dmz --add-port=2888/tcp --permanent465
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=foobar12
2018-05-25 10:57
To view open ports, use the following command.
firewall-cmd --list-portsWe use the following to see services whose ports are open.
firewall-cmd --list-servicesWe use the following to see services whose ports are open and see open ports
firewall-cmd --list-allTo 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=ntpFor this service to be permanently open we use the following command.
firewall-cmd -add-service=ntp --permanentTo add a port, use the following command
firewall-cmd --add-port=132/tcp --permanentTo run the firewall must be reloaded using the following command.
firewall-cmd --reloadYa 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:
Or to revert the runtime-only changes:
$ firewall-cmd --reloadAlso 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 firewalld1
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
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, то смело выполняйте команду
которая выведет вам все доступные зоны.
Так же в 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