В Linux брандмауэр необходим для контроля входящего и исходящего сетевого трафика. Разрешить или заблокировать IP-адреса и порты с помощью брандмауэра очень просто. Ниже приведены команды для разрешения или блокирования IP-адресов и портов с помощью различных брандмауэров.
Firewalld
Firewalld - это инструмент управления брандмауэром в ОС Linux. Он конфигурируется с помощью XML-файлов. Мы можем использовать интерфейс командной строки firewall-cmd для настройки и управления правилами брандмауэра.
Разрешить входящий трафик порта 80. Приведенная ниже команда разрешит трафик для порта 80, до перезапуска.
1 | sudo firewall-cmd --zone=public --add-port=80/tcp |
Разрешите входящий порт 80 в брандмауэре, постянно.
1 | sudo firewall-cmd --zone=public --permanent --add-port=80/tcp |
Запретите исходящий порт номер 25. Следующая команда заблокирует все исходящие соединения с порта 25.
1 2 3 | firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp -d 127.0.0.1 --dport=25 -j ACCEPT firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport=25 -j REJECT firewall-cmd --reload |
Запретите входящий порт номер 80. Следующая команда запретит весь трафик для порта 80.
1 | sudo firewall-cmd --remove-port=80/tcp --permanent |
Выполните приведенную ниже команду для блокирования IP-адреса в Firewalld. Замените 173.248.192.12 на ваш IP-адрес.
1 | sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='173.248.192.12' reject". |
Откройте порт для определенного IP-адреса в Firewalld. Добавьте IP-адрес источника и порт (3306), который вы хотите открыть на локальном сервере Linux. После этого перезагрузите настройки firewalld, чтобы применить изменения.
1 2 3 | firewall-cmd --zone=mariadb-access --add-source=173.248.192.12 --permanent firewall-cmd --zone=mariadb-access --add-port=3306/tcp --permanent firewall-cmd --reload |
Iptables
Iptables использует набор таблиц, в которых есть цепочки, содержащие набор встроенных или определенных пользователем правил. Используя эти правила, мы можем фильтровать сетевой трафик на машинах Linux.
Выполните следующую команду, чтобы разрешить все входящие соединения HTTP (порт 80).
1 2 | sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
Вторая команда разрешает исходящий трафик установленных HTTP-соединений, что необходимо, если политика исходящих соединений не установлена на ACCEPT.
Выполните приведенную ниже команду, чтобы разрешить несколько входящих портов. Команда ниже будет принимать трафик с портов 22, 53 и 80.
1 | /sbin/iptables -A INPUT -p tcp --match multiport --dports 22,53,80 -j ACCEPT |
Запретите входящий порт 80 с помощью IPtables. Следующая команда запретит все входящие соединения для порта 80.
1 2 | /sbin/iptables -A INPUT -p tcp --dport 80 -j DROP /sbin/service iptables save |
Заблокируйте IP-адрес в IPtables. Замените 173.248.192.11 на ваш IP-адрес.
1 | sudo iptables -A INPUT -s 173.248.192.11 -j DROP |
Открытие порта для определенного IP-адреса в IPtables. Разрешить входящий SSH с определенного IP-адреса или подсети.
1 2 | sudo iptables -A INPUT -p tcp -s 173.248.192.11 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT |
UFW - Uncomplicated Firewall
UFW также известен как Uncomplicated Firewall. Он подходит для брандмауэров на основе хостов. Он поддерживает IPv4 и IPv6.
Разрешить входящий порт 80. Следующая команда разрешит весь трафик с порта 80.
1 | sudo ufw allow 80 |
Разрешить несколько входящих портов. Команда ниже разрешит входящий трафик с портов 53, 80 и 443.
1 | sudo ufw allow 53,80,443 |
Запретить входящий трафик с порта 80. Приведенная ниже команда запретит весь входящий трафик для порта 80.
1 | sudo ufw deny 22 |
Запретить исходящий порт 25. Следующая команда запретит весь исходящий трафик с порта 25.
1 | sudo ufw deny out 25 |
Заблокировать IP-адрес в UFW. Вы можете заблокировать любой IP-адрес для входящего трафика на вашем компьютере.
1 | sudo ufw deny from 173.248.192.11 |
Открыть порт для определенного IP-адреса в UFW. Следующая команда откроет порт 80 для указанного IP-адреса. Вы можете заменить его на свой IP-адрес.
1 | sudo ufw allow from 173.248.192.11 to any port 80 |