Создание правил iptables

2019-02-27



Настройка фаервола на дебиан, убунту

Задача: разрешить доступ к порту только по определенным ip на примере mysql на debian Смотрим какие порты открыты

netstat -tuwpln

результат у меня:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8980            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:2298            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      -               
tcp        0      0 0.0.0.0:8878            0.0.0.0:*               LISTEN      1498/python     
tcp6       0      0 :::8980                 :::*                    LISTEN      -               
tcp6       0      0 :::2298                 :::*                    LISTEN      -               
tcp6       0      0 :::443                  :::*                    LISTEN      -               
tcp6       0      0 :::8878                 :::*                    LISTEN      1498/python     
tcp6       0      0 :::80                   :::*                    LISTEN      -               
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -               
udp        0      0 0.0.0.0:61726           0.0.0.0:*                           -               
udp6       0      0 :::60245                :::* 

Порт 3306 открыт и все могут коннектится, что очень плохо. Настраиваем Netfilter. Смотрим какие у нас настройки фаервола

iptables -L -n

И сохраняем их на всякий случай

iptables-save > /etc/network/iptable.rules

Создаем новую цепочку MYSQL

iptables -N MYSQL

и добавляем правила

iptables -A MYSQL -s 127.0.0.0/8 -j ACCEPT
iptables -A MYSQL -s 92.x.x.x -j ACCEPT
iptables -A MYSQL -j DROP
iptables -A INPUT -p tcp -dport 3306 -j MYSQL

Проверяем если все ок снова выгружаем

iptables-save > /etc/network/iptable.rules

и добавляем в атозагрузку

nano /etc/network/if-pre-up.d/iprules

Содержимое

#!/bin/sh

iptables-restore < /etc/network/iptable.rules
exit 0

и делаем его исполняемым

chmod +x /etc/network/if-pre-up.d/iprules

Если надо удалить правило

iptables -D INPUT 3