Поиск по сайту:
Благодаря своей жизненности программирование всегда испытывает отчаянную потребность в новых штампах: Банальность успокаивает нервы. (Алан.Дж.Перлис)

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

14.03.2017
Как открыть порты в 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.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Николай Иваничев

Спасибо. У меня был домашний сервер под CentOS 7.6 и в нём была проблема с доступом из Linux по сети к ресурсам Samba, доступ к ним просто периодически пропадал, в то же время из Windows доступ к ресурсам Samba оставался, но только слегка затянутый, примерно 15 – 20 секунд против 0,5 секунды, когда Samba сервер работал нормально. Одновременно с этим на столько же увеличилось время доступа к серверу по SSH. Решение проблемы в CentOS сервере почти за год не нашел, заменил систему на Ubuntu 18.04.2 server и статья очень помогла настроить брандмауэр на сервере. Ещё раз спасибо. Николай.

Читайте также

Спасибо!

Теперь редакторы в курсе.