суббота, 28 октября 2017 г.

Задания WSR/Linux: Iptables

Задача:

1) На RTR настройте интернет-шлюз для организации коллективного доступа в интернет.
    Настройте трансляцию сетевых адресов из внутренней сети в адрес внешнего интерфейса.
2) Настройте межсетевой экран на RTR
  a. Запретите прямое попадание трафика из сети First Mile в Internal
  b. Разрешите удаленные подключения с использованием OpenVPN
  на внешний интерфейс маршрутизатора RTR
  c. Разрешите SSH подключения на соответствующий порт
  d. Разрешите подключения по FTP в соответствии с заданием
  e. Для VPN-клиентов должен быть предоставлен полный доступ к сети Internal

Составим скрипт который заполнит iptables необходимыми нам правилами.

#!/bin/bash
# зададим переменные
export IPT="iptables"
export LO="lo"
export WAN="eth0"
export LAN="eth1"
export LANNET="172.16.100.0/24"
export SRV="172.16.100.100"

# очищаем iptables
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# правила обрабатывающие входящий трафик
# по умолчанию блокируем входящий трафик
$IPT -P INPUT DROP
# разрешаем пакеты уже установленных соединений
$IPT -A -p all -m state --state ESTABLISHED, RELATED -j ACCEPT
# запрещаем ошибочные пакеты
$IPT -A -p all -m state --state INVALID -j DROP
# разрешаем пакеты с петлевого и локального интерфейсов
$IPT -A -i $LO -j ACCEPT
$IPT -A -i $LAN -j ACCEPT
# разрешаем подключение ssh из глобальной сети
$IPT -A -i $WAN -p tcp -m tcp --dport 1022 -j ACCEPT
# разрешаем подключение OpenVPN из глобальной сети
$IPT -A -i $WAN -p udp --dport 1122 -j ACCEPT

# правила обрабатывающие транзитный трафик
# по умолчанию блокируем транзитный трафик
$IPT -P FORWARD DROP
# разрешаем пакеты уже установленных соединений
$IPT -A -p all -m state --state ESTABLISHED, RELATED -j ACCEPT
# запрещаем ошибочные пакеты
$IPT -A -p all -m state --state INVALID -j DROP
# разрешаем пакеты из локальной сети в глобальную
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
# разрешаем ftp из глобальной сети в локальную к серверу SRV
$IPT -A FORWARD -o $LAN -d $SRV -p tcp -m tcp --dport 20 -j ACCEPT
$IPT -A FORWARD -o $LAN -d $SRV -p tcp -m tcp --dport 21 -j ACCEPT

# пробрасываем ftp порты с RTR на SRV
$IPT -t nat -A PREROUTING -p tcp --dport 20 -i $WAN -j DNAT --to 172.16.100.100
$IPT -t nat -A PREROUTING -p tcp --dport 21 -i $WAN -j DNAT --to 172.16.100.100
# включаем трансляцию адресов из локальной сети в глобальную
$IPT -t nat -A POSTRPUTING -o $WAN -s $LANNET -j MASQUERADE

Помечаем файл исполняемым и запускаем
# chmod a+x iptables.sh
# ./iptables.sh
 
Экспортируем примененные правила из iptables в файл
/sbin/iptables-save  >  /etc/iptables.rules
Для того чтобы правила автоматически применялись при перезапуске, добавим в файл /etc/network/interfaces следующую строку *
post-up iptables-restore < /etc/iptables.rules

* возможно использование пакета iptables-persistent, но на момент написания статьи в Debian 9 он не работал с systemd.

Ссылки:

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.