---
title: "[FreeBSD] ipfilter для rtorrent средствами ipfw"
description: "Многие unix'оиды знают прекрастную торрент качалку rtorrent. Но к сожалению она не поддерживает ipfi..."
author: "geka6pucT"
published: "2011-02-11T00:25:39+00:00"
modified: "2011-02-11T00:28:15+00:00"
locale: "ru"
canonical_url: "https://yvision.kz/post/freebsd-ipfilter-dlya-rtorrent-sredstvami-ipfw-116724"
markdown_url: "https://yvision.kz/post/freebsd-ipfilter-dlya-rtorrent-sredstvami-ipfw-116724/markdown"
site_name: "Yvision.kz"
---

# [FreeBSD] ipfilter для rtorrent средствами ipfw

> Многие unix'оиды знают прекрастную торрент качалку rtorrent. Но к сожалению она не поддерживает ipfi...

Многие unix'оиды знают прекрастную торрент качалку rtorrent. Но к сожалению она не поддерживает ipfilter'ы. У себя на домашнем серваке использую FreeBSD 8.1. И мне как мегалайнеру очень не хватает айпифильтра. Тогда я решил реализовать его средствами родного фрибсдешного фаервола - ipfw. В настройке фаерволов я не спец, и делал это первый раз. Мой скрипт выполняет только одно - позволяет юзеру rtorrent качать с ip адресов сети мегалайн.

Сначала нужно создать пользователя rtorrent, от которого и будет запускаться сама программа, ниже скрипт для фаервола:

``` ipfw.rulesipfw -q -f flush

# Очищаем все правила ipfw netif="ale0"

# Моя сетевая картаdnsservice="192.168.2.1"

# ДНС сервер, он же роутерcmd="ipfw -q add " ipfw table 1 flush

# Очищаем таблицу, и добовляем все ip адреса сети мегалайнipfw table 1 add 212.19.128.0/19ipfw table 1 add 212.154.128.0/17ipfw table 1 add 82.200.128.0/17ipfw table 1 add 88.204.128.0/17ipfw table 1 add 89.218.0.0/16ipfw table 1 add 92.46.0.0/15ipfw table 1 add 95.56.0.0/14ipfw table 1 add 178.88.0.0/14# Ниже диапазоны локальных сетей.ipfw table 1 add 10.0.0.0/8 ipfw table 1 add 172.16.0.0/12 ipfw table 1 add 192.168.0.0/16

# Стандартные правила для сетевого интерфейса lo0$cmd allow all from any to any via lo0$cmd deny all from any to 127.0.0.0/8$cmd deny all from 127.0.0.0/8 to any

# Все правила ниже приментяются для пользователя rtorrent, от которого# мы и запускаем rtorrent# Разрешаем udp куда угодно, нужно для DHT$cmd allow udp from me to any via $netif out uid rtorrent# Разрешаем входящий трафик на порт 4681, порт должен# быть прокинут на роутере, нужен для DHT$cmd allow udp from any to me 4681 via $netif in uid rtorrent# Разрешаем исходящие соединения на 80 и 2710 порты, нужно для анонсов трекеров$cmd allow tcp from me to any 80 out via $netif uid rtorrent$cmd allow tcp from me to any 2710 out via $netif uid rtorrent# Разрешаем весь входящий и исходящий трафик для локальных сетей и сети# мегалайн$cmd allow all from table\(1\) to me in uid rtorrent$cmd allow all from me to table\(1\) out uid rtorrent# Разришаем днс$cmd allow udp from me to $dnsservice 53 out via $netif keep-state uid rtorrent# Блокируем весь остальной трафик$cmd deny all from any to any uid rtorrent# Разрешаем остальным пользователям все.$cmd allow all from any to any ```

О настройке самого rtorrent'а и о том как включить ipfw не написал намерено. В инете итак полно инфы об этом.

---

Source: [https://yvision.kz/post/freebsd-ipfilter-dlya-rtorrent-sredstvami-ipfw-116724](https://yvision.kz/post/freebsd-ipfilter-dlya-rtorrent-sredstvami-ipfw-116724)