LINUX.ORG.RU
ФорумAdmin

Как открыть порты для браузера iptables ?

 


0

1

Привет. Настроил SSH, Syncthing порты всё ок всё работает. По умолчанию закрыл все порты:

 iptables -P INPUT DROP
 iptables -P OUTPUT DROP
 iptables -P FORWARD DROP

Пытаюсь открыть порты для браузера, но не удаётся. Пробую вот эти правила:

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p tcp --sport 80 -j ACCEPT

sudo iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p tcp --sport 443 -j ACCEPT

ifconfig:

enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.101  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::5446:5dff:fea5:60a  prefixlen 64  scopeid 0x20<link>
        ether 50:12:5d:a5:06:0a  txqueuelen 1000  (Ethernet)
        RX packets 5441  bytes 3900748 (3.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5621  bytes 676646 (660.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1603  bytes 1540935 (1.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1603  bytes 1540935 (1.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Также пробовал:

sudo iptables -A INPUT -i enp4s0 -p tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -o enp4s0 -p tcp --sport 80 -j ACCEPT

sudo iptables -A INPUT -i enp4s0 -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -o enp4s0 -p tcp --sport 443 -j ACCEPT

Как правильно прописать правила?

iptables -P OUTPUT DROP так обычно не делают, запрещать совим же программам отправлять что-то — ну, такое себе. Нужно очень хорошо понимать, что это и зачем.

sudo iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT вот эта команда нужна, если у вас на машине запущен веб-сервер, к которому вы хотите подключаться извне. Это действительно так? Для браузера это не нужно. Браузеру не нужно слушать ничего на локальном порту.

Браузеры не отправляют пакеты с определённого tcp-порта, 80 или 443. Исходящий порт может быть любым. Команда sudo iptables -A OUTPUT -o eth0 -p tcp --sport 443 -j ACCEPT смысла поэтму не имеет. Если вы действительно хотите ограничивать исходящие подключения, то нужно писать sudo iptables -A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT. Браузер подключается к 443-му порту, а не слушает его сам.

Отдельно отмечу, что всё чаще испольуется протокол QUIC, который работает поверх UDP. Соответственно, UDP тоже нужно открыть.

anarquista ★★★★★
()
Ответ на: комментарий от anarquista

вот эта команда нужна, если у вас на машине запущен веб-сервер, к которому вы хотите подключаться извне. Это действительно так?

Нет, только SSH нужен извне.

Браузеры не отправляют пакеты с определённого tcp-порта, 80 или 443. Исходящий порт может быть любым. Браузеры не отправляют пакеты с определённого tcp-порта, 80 или 443. Исходящий порт может быть любым.

Хорошо, но так я и не понял как же мне открыть порты для браузера?

TheLinuxUser ★★
() автор топика
Ответ на: комментарий от TheLinuxUser
sudo iptables -A OUTPUT -o eth0 -p tcp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p udp --dport 443 -j ACCEPT
sudo iptables -A OUTPUT -o eth0 -p tcp --dport 80 -j ACCEPT
anarquista ★★★★★
()
iptables -P OUTPUT ACCEPT

– Зачем тебе исходящие запрещать?

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

– Разрешает входящие пакеты для уже установленных (например браузером) соединений.

У меня еще запрет для новых соединений с внешнего интерфейса стоит –

-A INPUT ! -i ppp0 -m state --state NEW -j ACCEPT
ptah_alexs ★★★★★
()
Последнее исправление: ptah_alexs (всего исправлений: 1)

Порты что бы «и браузер работал» или именно для «конкретного браузера»?

anc ★★★★★
()
Ответ на: комментарий от anarquista

iptables -P OUTPUT DROP так обычно не делают, запрещать совим же программам отправлять что-то — ну, такое себе. Нужно очень хорошо понимать, что это и зачем.

А зачем запрещать своим же программам что-то принимать?

Нормальное правило для безопасного серверного файрволла - должен быть исключительно белый список в обе стороны, просто так коннектиться куда попало сервер не должен. Нужно на случай непредвиденного функционала в серверном софте.

firkax ★★★★★
()

Что такое «браузер iptables»?

dexpl ★★★★★
()

что такое «порты для браузера» ты под кислотой чтоли?

Anoxemian ★★★★★
()
Ответ на: комментарий от anc

Порты что бы «и браузер работал» или именно для «конкретного браузера»?

Порты что бы «и браузер работал» - верно

TheLinuxUser ★★
() автор топика
Ответ на: комментарий от firkax

А зачем запрещать своим же программам что-то принимать? Нормальное правило для безопасного серверного файрволла - должен быть исключительно белый список в обе стороны, просто так коннектиться куда попало сервер не должен. Нужно на случай непредвиденного функционала в серверном софте.

У меня просто «Сервер» это также = домашний ПК. Я к нему подключаюсь через SSH когда меня нет дом предварительно пробросив порт на Wifi. Поэтому нужно чтобы там также «когда дома» мог работать в браузере.

TheLinuxUser ★★
() автор топика
Последнее исправление: TheLinuxUser (всего исправлений: 1)
Ответ на: комментарий от TheLinuxUser

В sport,dport - s от слова source, d от слова destination. Дальше сами догадаетесь?

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.