LINUX.ORG.RU
решено ФорумAdmin

Помогите разобраться с правилами iptables?

 


0

1

Структура такая 192.168.0.0 {ПК1,ПК2,ПКN} = (eth1/192.168.0.1 шлюз eth0/192.168.1.100) = (роутер eth0/192.168.1.1) = интернет

у шлюза есть еще wlan0, там только wifi-устройство для управления MythTV, которая крутится на шлюзе на 6543 и 6544.

Не могу настроить шлюз:

*nat
:PREROUTING ACCEPT [8:3810]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [62:4084]
:POSTROUTING ACCEPT [62:4084]
-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
-A PREROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -i wlan0 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 3128
-A POSTROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -o eth0 -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -o eth0 -j MASQUERADE
COMMIT


*mangle
:PREROUTING ACCEPT [334:54870]
:INPUT ACCEPT [334:54870]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [226:23305]
:POSTROUTING ACCEPT [230:23671]
COMMIT


*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [226:23305]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# снаружи пускаем: 1) HTTP, FTP
-A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m conntrack --ctstate NEW -m multiport --dports 80,46778,46779 -j ACCEPT
# 2) Torrents
-A INPUT -s 192.168.1.0/24 -i eth0 -p tcp -m conntrack --ctstate NEW -m multiport --dports 46881:46888 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i eth0 -p udp -m conntrack --ctstate NEW -m udp --dport 46880 -j ACCEPT

# изнутри 6543/tcp,6544/tcp,22/tcp,80/tcp и DNS 53/udp,DHCP 67/udp,NTP 123/udp:
-A INPUT -s 192.168.0.0/24 -i eth1 -p tcp -m conntrack --ctstate NEW -m multiport --dports 22,53,80,6543,6544 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth1 -p udp -m conntrack --ctstate NEW -m multiport --dports 53,67,123 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i wlan0 -p tcp -m conntrack --ctstate NEW -m multiport --dports 22,53,80,6543,6544 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i wlan0 -p udp -m conntrack --ctstate NEW -m multiport --dports 53,67,123 -j ACCEPT

# блочим брутфорс
-A INPUT -s 192.168.1.0/24 -d 192.168.1.100/32 -p tcp --dport 80 -m connlimit --connlimit-above 7 -j REJECT

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i eth1 -o eth0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

на клиенте ПК1:

auto eth0
iface eth0 inet static
address 192.168.0.4
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8

забыл совсем: ПК, которые ломятся в интернет по 80-му порту, заворачиваются на squid 3128


Не могу настроить шлюз:

У тебя что-то конкретное не работает или ничего не работает?

Это так и задумано, что на клиентском ПК шлюз из другой подсети?

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

На клиентском ПК пинг идет, но HTTP не выдает (нет маршрута до узла).

хотел бы я, чтобы внутри подсети 192.168.0.0 и DNS, и DHCP были на 192.168.0.1, но пока боюсь углубляться в настройку, поскольку нет ни знаний, ни опыта. Ограничился dnsmasq, и ip_forward=1 прописал в sysctl.conf

bsb ()
Ответ на: комментарий от ziemin

Посмотрел fwbuilder. Он же всё в своём формате делает, чтобы до iptables добраться, нужно еще по ssh слить. Плохой вариант, когда есть проблемы в сети

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

Он же всё в своём формате делает

Здрасте. «Inspect» и спокойно копируешь скрипт. Я как-то раз прибил себе доступ по ssh - только одна живая сессия и осталась. Так сделал cat > rules.sh и вставил в окно терминала.

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

В общем и целом разобрался. Слишком сложные правила я пока не осилил, но в целом система работает почти как надо.

Осталось лишь ограничить пару портов, хочется сделать доступными только внутри подсетей 192.168.0.0/24 и 192.168.2.0/24. Это как можно сделать?

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