Я пытаюсь настроить Тор-реле.
чтобы позволить tor представить статическую веб-страницу, объясняющую, что это такое, я хочу, чтобы сервер слушал порт 80 и 443.
чтобы tor мог использовать учет / гибернацию (пропускная способность дроссельной заслонки после достижения предела данных), мне нужен процесс для привязки к номерам портов >1024 (чтобы непривилегированный пользователь мог повторно привязать порты, которые я думаю).
отсюда и моя конфигурация Тор выглядит таких:
ORPort 443 NoListen
ORPort 127.0.0.1:9090 NoAdvertise
DirPort 80 NoListen
DirPort 127.0.0.1:9091 NoAdvertise
DirPortFrontPage /etc/tor/tor-exit-notice.html
после запуска сервера я могу получить доступ к html-файлу localy:
$ wget 127.0.0.1:9091
--2013-08-12 14:27:49-- http://127.0.0.1:9091/
Connecting to 127.0.0.1:9091... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6762 (6.6K) [text/html]
Saving to: `index.html'
100%[=============================>] 6,762 --.-K/s in 0.005s
2013-08-12 14:28:15 (1.21 MB/s) - `index.html' saved [6762/6762]
и порты кажутся открытыми правильно:
$ sudo netstat -lnp | grep tor
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN 6328/tor
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 6328/tor
tcp 0 0 127.0.0.1:9091 0.0.0.0:* LISTEN 6328/tor
для того, чтобы последняя часть заработала, где соединения на 0.0.0.0:80 перенаправляются на 127.0.0.1:9091 я пробовал использовать iptables.
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 443 -j DNAT --to-destination 127.0.0.1:9090
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to-destination 127.0.0.1:9091
$ sudo iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:127.0.0.1:9090
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 to:127.0.0.1:9091
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
но когда я подключаюсь к внешнему ip на порту 80, я не получаю ответа.
Я пробовал с ip_forward как ВКЛ и выкл, ни работает:
$ sudo sysctl net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
$ sudo sysctl net.ipv4.ip_forward=0
net.ipv4.ip_forward = 0
Я даже пробовал маскарад, но это не работает, и я не думаю, что это должно быть необходимо:
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE
Я тоже пробовал следующее за предложение, но это не работает:
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j REDIRECT --to-port 127.0.0.1:9091
iptables v1.4.14: REDIRECT: Bad value for "--to-ports" option: "127.0.0.1:9091"
Try `iptables -h' or 'iptables --help' for more information.
что я делаю не так?
сервер raspberry pi, работает wheezy только со встроенным сетевым интерфейсом, подключенным непосредственно к интернету с публичным ip.