Как сделать правильное правило iptable, например, настройку порта браузера - PullRequest
0 голосов
/ 03 июня 2018

После поиска на форумах без подходящих результатов, я спрашиваю "слышать".

Я хочу перенаправить каждый запрос браузера с порта назначения 80 на другой порт (например, 8080).все в местном хосте.

Мое рабочее место linux, и я хочу использовать правила iptables и сервер кодов python.
Я использовал следующее правило: iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8080.Я также попробовал некоторые другие флаги, такие как определенный источник ip, сервер и т. Д.

Сервер, прослушивающий порт 8080:

#!/usr/bin/env python

import SimpleHTTPServer
import SocketServer

def redirect_factory():
 class RedirectServer(SimpleHTTPServer.SimpleHTTPRequestHandler):
   def do_GET(self):
       self.send_response(301)
       self.send_header('Location', 'www.IdontCare.IdontKnow')
       self.end_headers()
 return RedirectServer

redirectServer = redirect_factory()
handler = SocketServer.TCPServer(('', 8080), redirectServer)
print("serving at port %s" % 8080)
handler.serve_forever()

Проблема в том, что он хорошо работает, когда я настраиваю свой браузер вconnection settings (без добавления правил iptables), например:

enter image description here

Но когда я использую правила iptables, он говорит, что у него сломан канали запрос браузера вообще не получен на сервере.Поэтому, если я напишу в URL в браузере www.google.com , я не смогу увидеть его со значением self.path.

РЕДАКТИРОВАТЬ: Вотвывод iptables -t nat -nvL --line-numbers:

enter image description here

правило работает, но оно не выполнено, как я полагаю.

Я немного играюс правилами, и если я добавлю одно из следующих правил, я могу увидеть в CNAME значение self.headers.правила (я могу просто выбрать один из них):

  1. iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 80
  2. iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1

ЕслиЯ не ошибаюсь, они оба сделали одно и то же.

что я делаю не так?и как заставить его работать с такими правилами iptables, как конфигурация браузера?

Спасибо!

...