Есть компьютер  с установленной операционной системой Ubuntu 18.04. Кабель провайдера приходит в интерфейс enp2s0. Требуется раздать  интернет в локальную сеть через интерфейс enp3s0 c   ip-адресом 192.168.31.1. На этом сервере также настроено соединение по vpn к серверу головной организации и необходимо обеспечить прохождение трафика между сетями.  Как настроить VPN – смотрим здесь. Еще в сети по адресу 192.168.31.2 присутствует терминальный сервер к которому нужно подключатся снаружи.

#!/bin/sh

# Define vars
IF_EXT="enp2s0"
IF_INT="enp3s0"
INET_IP="XXX.XXX.XXX.XXX"
IPT="/sbin/iptables"
SERVER_IP="192.168.31.2"
LOCALNET="192.168.31.0/255.255.255.0"
VPNNET="10.8.0.0/24"

$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat

# setting default policy
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P PREROUTING ACCEPT

# flush
$IPT -t filter -F
$IPT -t mangle -F
$IPT -t nat -F
$IPT -t raw -F # (optional)

# masq
$IPT -t nat -A POSTROUTING -s $LOCALNET -o $IF_EXT -j MASQUERADE
$IPT -A INPUT -i $IF_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -d $LOCALNET -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -t nat -A POSTROUTING -s $VPNNET -o $IF_EXT -j MASQUERADE

# openvpn
$IPT -A INPUT -i $IF_INT -m state --state NEW -p udp --dport 1194 -j ACCEPT
$IPT -A INPUT -i tun+ -j ACCEPT
$IPT -A FORWARD -i tun+ -j ACCEPT
$IPT -A FORWARD -i tun+ -o $IF_INT -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A FORWARD -i $IF_INT -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -o tun+ -j ACCEPT

#
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $IF_INT -j ACCEPT

#ssh
$IPT -A INPUT -i $IF_EXT -p tcp --destination-port 22 -j ACCEPT

#ping
$IPT -A INPUT -i $IF_INT -p icmp -j ACCEPT
$IPT -A INPUT -i $IF_EXT -p icmp -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

# rdp
### Forward RDP to internal server 192.168.31.2
$IPT -t nat -A PREROUTING -d $INET_IP -p tcp -m tcp --dport 3389 -j DNAT --to-destination $SERVER_IP:3389
$IPT -A FORWARD -p tcp -d $SERVER_IP --dport 3389 -j ACCEPT

Установим iptables-persistent чтобы правила загружались автоматически при загрузке .

sudo apt install iptables-persistent

После внести изменения в правила не забываем сохраняться.

sudo netfilter-persistens save
Быстрая настройка интернет-шлюза на Ubuntu 18.04
Метки:         

Одна мысль о “Быстрая настройка интернет-шлюза на Ubuntu 18.04

  • 30.11.2021 в 11:52
    Постоянная ссылка

    Добрый день!
    Спасибо за скрипт, работает на все 100%.
    У меня возник вопрос, а как можно забанить IP внешний что бы он не обращался к серверу SERVER_IP=”192.168.31.2″ – на пример пример.
    Я пробовал написать так:
    #
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A INPUT -i $IF_INT -j ACCEPT
    $IPT -A INPUT -i 194.233.69.30 -j REJECT
    Пробовал и через DROP
    но всеравно, можно подключиться к Прокси и внутреннему Серверу.
    P.S. Спасибо.

    Ответ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *