Анонимность в интернете своими руками. Настройка файрволла сервера.

4.9/5 - (8 голосов)

Все настройки выполнены в VPS от hostsailor.com

В правой панели WinCSP открываем папку /root. На пустом месте правой панели жмём правую кнопку мыши, выбираем New -> File. В появившемся окошке вместо “New file” пишем “ipt-set” (без кавычек) и жмём ОК. Будет создан файл с именем ipt-set и откроется окно для его редактирования. Вписываем следующее содержимое:

#!/bin/sh
IF_EXT="venet0"
IF_OVPN="tun0"
OVPN_PORT="443"
SQUID_PORT="8080"
IPT="/sbin/iptables"
IPT6="/sbin/ip6tables"

# flush
$IPT --flush
$IPT -t nat --flush
$IPT -t mangle --flush
$IPT -X
$IPT6 --flush

# loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# default
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT6 -P INPUT DROP
$IPT6 -P OUTPUT DROP
$IPT6 -P FORWARD DROP

# allow forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# NAT
# #########################################
# SNAT - local users to out internet
$IPT -t nat -A POSTROUTING -o $IF_EXT -j MASQUERADE

# INPUT chain
# #########################################
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ssh
$IPT -A INPUT -i $IF_EXT -p tcp --dport 22 -j ACCEPT
# VPN
$IPT -A INPUT -i $IF_OVPN -p icmp -s 10.8.0.0/24 -j ACCEPT
# DNS
$IPT -A INPUT -i $IF_OVPN -p udp --dport 53 -s 10.8.0.0/24 -j ACCEPT
# openvpn
$IPT -A INPUT -i $IF_EXT -p udp --dport $OVPN_PORT -j ACCEPT
# squid
$IPT -A INPUT -i $IF_OVPN -p tcp --dport $SQUID_PORT -j ACCEPT
$IPT -A INPUT -i $IF_OVPN -p udp --dport $SQUID_PORT -j ACCEPT

# FORWARD chain
# #########################################
$IPT -A FORWARD -i $IF_OVPN -o $IF_EXT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_EXT -o $IF_OVPN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT

# OUTPUT chain
# #########################################
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Нужно обратить внимание на следующие моменты:

  • сетевой интерфейс называется venet0. Это особенность VPS именно этого хостера. Возможно у вас он называется eth0. Узнать, как же правильно в вашем случае можно введя в консоли команду
 ip a
  • В получившемся выводе команды будет список сетевых интерфейсов. Один из них носит название lo , это локальная петля. А вот второй, тот, что вам нужен.

OVPN_PORT=»443″

  • этот порт мы будем использовать для нашего VPN сервера. Почему именно 443? Мы же настроим VPN и для домашнего компьютера/ноутбука, и для смартфона и, возможно, для рабочего компьютера/ноутбука. Вполне возможно, что ваше устройства окажется в сети (например, корпоративный Wi-Fi), где все порты кроме самых базовых запрещены. 443 точно будет разрешен, а VPN серверу без разницы на каком порту «висеть». Да и активность на этом порту не будет подозрительной.

 

SQUID_PORT=»8080″

$IPT -A INPUT -i $IF_OVPN -p tcp —dport $SQUID_PORT -j ACCEPT

$IPT -A INPUT -i $IF_OVPN -p udp —dport $SQUID_PORT -j ACCEPT

  • подключения к прокси-серверу мы будем принимать на порт 8080 и только от тех, кто уже подключился к VPN, мамкины кулхацкеры идут лесом.

 

$IPT -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT

  • клиенты VPN будут видеть друг друга. Т.е. ваш смартфон будет видеть ваш компьютер если оба они подключились к VPN. Это удобно для расшаривания контента.

Сохраняем получившийся файл. Кликаем на нём правой кнопкой мыши, выбираем Properties и отмечаем галочками все квадратики с буквой X (третий столбик квадратиков). Обратите внимание, в поле Octal получится число 0755. Можно задать свойства файла введя сразу нужное чиасло в это поле, а не выбирая свойства галочками. В дальнейшем мы так и бедуем делать. Я просто буду писать число, которое вам нужно будет вписать в это поле.

Жмём ОК. В консоли PuTTY выполняем команду:

/root/ipt-set

а затем команду:

iptables -L -n

Наши правила применились. Закрываем окно putyy, открываем заново и пробуем подключится. Если подключились, значит вы нигде выше не ошиблись и правила работают. Но работать они будут до перезагрузки сервера. Добавим их в автозапуск. В правой панели WinCSP переходим к папке /etc/systemd/system/ и создаем файл с именем ipt-settings.service со следующим содержимым:

[Unit]
Description=Iptables Settings Service
After=network.target

[Service]
Type=oneshot
User=root
ExecStart=/root/ipt-set

[Install]
WantedBy=multi-user.target

В свойствах файла (см. выше) указываем права 0644.

Теперь в консоли вводим команду:

systemctl enable ipt-settings

В ответ получим:

Created symlink from /etc/systemd/system/multi-user.target.wants/ipt-settings.service to /etc/systemd/system/ipt-settings.service.

Всё хорошо. Собственно, что мы сделали: мы создали системную службу с именем ipt-settings и добавили её в атозагрузку. Служба при старте запускает файл /root/ipt-set в котором уже и находятся настройки нашего файрволла.

Проверим, что всё работает как задумано. Перезагрузим сервер командой reboot, подключимся к нему и введем команду:

iptables -L -n

Должны получить то, что было на последнем скриншоте (см. выше).

Вы можите оставить комментарий, или поставить трэкбек со своего сайта.

Написать комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>