Cначала удаляем все правила (-F), затем устанавливаем политику по умолчанию — разрешать входящие, исходящие и транзитные (-S)

iptables -F

iptables -S

Разрешаем SSH c oVPN:

iptables -A INPUT -p tcp -s 172.30.10.0/24 -d X.X.X.X --dport 22 -j ACCEPT

Разрешаем все входящие на адрес локальной петли (?):

iptables -A INPUT -d 127.0.0.0/24 -j ACCEPT

При необходимости:

Разрешаем ICMP (для выполнения команды ping):

iptables -A INPUT -p icmp -j ACCEPT

Разрешаем порты с oVPN:

iptables -I INPUT -p tcp -s 172.30.10.0/24 -d X.X.X.X -m comment --comment "oVPN access" -j ACCEPT --dport 80

iptables -I INPUT -p tcp -s 172.30.10.0/24 -d X.X.X.X -m comment --comment "oVPN access" -j ACCEPT --dport 443

Разрешаем доступ к нужному порту извне. На примере 3306:iptable

iptables -I INPUT -p tcp -d X.X.X.X -m comment --comment "DB access" -j ACCEPT --dport 3306


Базовая фильтрация пакетов:

iptables -I INPUT 1 -m state --state INVALID -j DROP

iptables -I INPUT 2 -m state --state ESTABLISHED,RELATED -j ACCEPT

Защита от перебора паролей:

iptables -I INPUT 3 -p tcp -s 172.30.10.0/24 -d X.X.X.X/X -m state --state NEW -m recent --update --seconds 10 --name bad_boys -j DROP --dport 22

iptables -I INPUT 4 -p tcp -s 172.30.10.0/24 -d X.X.X.X/X -m state --state NEW -m recent --set --name bad_boys -j ACCEPT --dport 22

Получится так:

7 1091 65212 DROP tcp -- * * 0.0.0.0/0 213.156.129.29 tcp dpt:22 state NEW recent: UPDATE seconds: 10 name: bad_boys side: source

8 19732 1175K ACCEPT tcp -- * * 0.0.0.0/0 213.156.129.29 tcp dpt:22 state NEW recent: SET name: bad_boys side: source

или так:

3 0 0 DROP tcp -- * * 0.0.0.0/0 213.156.129.6 state NEW recent: UPDATE seconds: 10 name: bad_boys side: source mask: 255.255.255.255 tcp dpt:22

4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 213.156.129.6 state NEW recent: SET name: bad_boys side: source mask: 255.255.255.255 tcp dpt:22

NAT:

iptables -t nat -I PREROUTING 39 -i tun0 -p tcp -s 172.30.10.0/28 -d 172.30.10.1 --dport 58630 -m comment --comment "Some comment" -j DNAT --to-destination 213.156.128.14

iptables -t nat -I POSTROUTING 37 -p tcp -o ens224 -s 172.30.10.0/28 -d 213.156.128.14 --dport 58630 -m comment --comment "Some comment" -j SNAT --to-source 172.30.8.1

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP


yum install iptables-services

service iptables save

а) в более новых версиях Linux:

systemctl enable iptables

б) в версиях постарше:

первая команда для CentOS, вторая для Ubuntu.

chkconfig iptables on

update-rc.d iptables defaults


Если необходимо пользоваться iptables, устанавливаем пакет с утилитой:

yum install iptables-services

Отключаем firewalld:

systemctl stop firewalld

systemctl status firewalld

systemctl disable firewalld

Разрешаем и запускаем iptables:

systemctl enable iptables

systemctl start iptables


/usr/sbin/iptables-save -c > /etc/firewall.conf

Ubuntu:

apt-get install iptables

/sbin/iptables-save or iptables-save

apt-get install iptables-persistent - аналог enableiptables-save > /etc/iptables/rules.v4

Для домена test.sitename.ru

Запрос:

certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d test.sitename.ru

Первичная DNS A запись (BIND9)

test IN A 213.156.129.8

Ответ от Certbot TXT запись (BIND9)

_acme-challenge.test IN CNAME 007da29e-60a6-4394-a0b2-d4bacd3fcc3f.auth.acme-dns.io.

Reg.ru:

CNAME

Subdomain

_acme-challenge.test

Canonical name

007da29e-60a6-4394-a0b2-d4bacd3fcc3f.auth.acme-dns.io.

Запрос проверки добавленной записи:

dig +short txt _acme-challenge.testcert.sitename.ru @8.8.8.8

Одна из строк в ответе должна быть без кавычек и содержать:

007da29e-60a6-4394-a0b2-d4bacd3fcc3f.auth.acme-dns.io.

Back to main page