ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Общие правила и команды брандмауэра в iptables

Сегодня мы покажем вам некоторые общие правила и команды брандмауэра в iptables. Iptables – полезная утилита командной строки для настройки брандмауэра ядра Linux. Iptables содержит пять таблиц: raw, filter, nat, mangle и security. Каждая таблица состоит из цепей. Цепь – это список правил брандмауэра, которые следуют по порядку. Давайте начнем с некоторых общих правил и команд брандмауэра в iptables.

Установить iptables

Войдите в свой VPS через SSH в качестве пользователя root:

ssh root@IP_Address -p Port_number

 

Установка iptables очень проста. Если у вас есть Ubuntu VPS или Debian VPS, выполните следующие команды:

apt-get update 
apt-get upgrade
apt-get install iptables iptables-persistent

 

Если на вашем VPS установлен CentOS или Fedora, выполните следующие команды:

yum clean all
yum update
yum install iptables

 

Вот и все, теперь вы должны успешно установить iptables на свой сервер.

Общие правила брандмауэра в iptables

Ниже перечислены примеры общих правил брандмауэра.
Принять все пакеты ESTABLISHED и RELATED:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

Разрешать соединения HTTP и HTTPS из любого места:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

 

Разрешить доступ к порту 21 только с определенного IP-адреса (например, 192.168.1.123) и блокировать доступ со всех других IP-адресов на сервер (например, IP-адрес сервера 192.168.1.100):

iptables -A INPUT -s 192.168.1.123 -d 192.168.1.100 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
iptables -A INPUT -d 192.168.1.100 -p tcp -m tcp --dport 21 -j DROP
iptables-save

 

Блокировать IP-адрес (например, 192.168.1.21):

iptables -A INPUT -s 192.168.1.21 -j DROP

 

Заблокируйте диапазон IP и отклоните все пакеты (например, 192.168.1.0/24):

iptables -A INPUT -s 192.168.1.0/24 -j REJECT

 

Чтобы заблокировать исходящий трафик на порт (например, порт 123), используйте:

iptables -A OUTPUT -p tcp --dport 123 -j DROP

Общие команды iptables

Перечислите все правила во всех цепочках в подробном режиме и покажите IP-адреса и номера портов вместо имен хостов и служб, включая имя интерфейса, параметры правил (если есть) и маски TOS:

iptables -nvL | less
Chain INPUT (policy ACCEPT 17M packets, 3161M bytes)
 pkts bytes target     prot opt in     out     source               destination
  90M   18G cP-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 cP-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 16M packets, 5107M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587 owner GID match 32006
18618 9100K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587 owner GID match 12
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            127.0.0.1           multiport dports 25,465,587 owner UID match 32001
10686  946K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,465,587 owner UID match 0

Chain cP-Firewall-1-INPUT (2 references)
 pkts bytes target     prot opt in     out     source               destination
   39  2264 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:993
   54  2872 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:53
 7509  450K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:21
 557K   34M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:443
19655 1142K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
 1057 43388 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8080
 7533  452K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:143
  382 16664 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
2871K  173M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:995
23539 1284K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:110
 8353  500K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:25
   71  3680 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:465
 519K   31M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:3306
  132  9948 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW udp dpt:53

 

Чтобы отображать правила в цепочках с номерами правил, используйте:

iptables -nvL --line-numbers

 

Это полезно, если вы хотите удалить правило (например, удалить номер правила 9 из цепочки INPUT):

iptables -D INPUT 9

 

Или добавьте правило между двумя существующими правилами (например, добавьте правило брандмауэра между правилами № 2 и 3):

iptables -I OUTPUT 3 -d 127.0.0.1/32 -p tcp -m multiport --dports 25,465,587 -m owner --uid-owner 201 -j ACCEPT

 

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

iptables -S

 

Эта команда полезна, если вам нужно отредактировать или удалить некоторые правила брандмауэра.

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N cP-Firewall-1-INPUT
-A INPUT -j cP-Firewall-1-INPUT
-A FORWARD -j cP-Firewall-1-INPUT
-A OUTPUT -p tcp -m multiport --dports 25,465,587 -m owner --gid-owner mailman -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 25,465,587 -m owner --gid-owner mail -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p tcp -m multiport --dports 25,465,587 -m owner --uid-owner cpanel -j ACCEPT
-A OUTPUT -p tcp -m multiport --dports 25,465,587 -m owner --uid-owner root -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 465 -j ACCEPT
-A cP-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A cP-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

 

Очистить все правила брандмауэра:

iptables -F

 

Использовать ‘iptables -h | less ‘для получения дополнительной информации обо всех параметрах команды iptables.

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

Exit mobile version