- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
#Модули iptables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#При выклюсеном selinux будет ругаться.
#iptables -F RH-Firewall-1-INPUT
iptables -t nat -F
iptables -t mangle -F
#
#Политики по умолчанию
#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#Установка маршрутов по умолчанию, основной провайдер eth0, вспомагательный
#провайдер eth2.
#Для ручного переключения ручного.
#Установка основного маршрута на Истра-Нэт.
#route del default
#route add default gw ваш_шлюз_первого прова dev eth0
#
#Установка основного маршрута на Телеком-Нэт
#
#route del default
#route add default gw ваш_шлюз_второго прова dev eth2
#
#Настройка NAT для выхода клиентов в инернет.
#Отправка всех клиентов под сети 192.168.1.0/24 в интеренет.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source ваш_ip_карты
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to-source ваш_ip_карты2
#
#Для совместного использования со сквидом.
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -d ! 192.168.1.200 -j QUEUE
iptables -I OUTPUT 1 -p tcp -m tcp -s 192.168.1.200 --sport 3128 -d 192.168.1.0/24 -j QUEUE
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 -d 192.168.1.200 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128
#
#Настройка NAT во внутрь сети.
#Настройка портов во внутрь сети.
iptables -t nat -A PREROUTING -p tcp -s any/0 -d ваш_ip_карты --dport 15081 -j DNAT --to-destination 192.168.1.110:15081
iptables -A FORWARD -i eth1 -d 192.168.1.110 -p tcp --dport 15081 -j QUEUE
#
#Блокировка неверных пакетов.
iptables -A INPUT -m state --state INVALID -j DROP
#
#Open connect to server, from global network.
#Открываю себе доступ к консоли. Этот трафик не считаю.
#Ограничения на подключение к ssh.
iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -m recent --name SSH --set
iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -m recent --name SSH --update --seconds 60 --hitcount 2 -j DROP
iptables -A INPUT -i eth3 -p tcp --dport 1981 -m state --state NEW -j ACCEPT
#
#Открываю доступ к ssh из дома.
iptables -A INPUT -p tcp -i eth3 -s any/0 -d ваш_ip_карты --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth3 -s ваш_ip_карты --sport 22 -d any/0 -j ACCEPT
#
#Открываю доступ к серверу www.
#Allowing Remote Access to a Local Web Server
iptables -A INPUT -i eth3 -p tcp -s any/0 --sport 1024:65535 -d ваш_ip_карты --dport 80 -j QUEUE
iptables -A OUTPUT -o eth3 -p tcp ! --syn -s ваш_ip_карты --sport 80 -d any/0 --dport 1024:65535 -j QUEUE
#Открываю доступ к серверу www.
#По порту 443.
iptables -A INPUT -i eth3 -p tcp -s any/0 --sport 1024:65535 -d ваш_ip_карты --dport 443 -j QUEUE
iptables -A OUTPUT -o eth3 -p tcp ! --syn -s ваш_ip_карты --sport 443 -d any/0 --dport 1024:65535 -j QUEUE
#
#Настройка ФТП доступа.
#Open connect to FTP, from network.
iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 40000:65535 -d 192.168.1.200 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 21 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.1.200 --dport 40000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 40000:65535 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth1 -s 192.168.1.200 --sport 20 -d 192.168.1.0/24 --dport 40000:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --sport 40000:65535 -d 192.168.1.200 --dport 20 -m state --state ESTABLISHED -j ACCEPT
#
# DNS client modes (53)
iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 40000:65535 -d 217.150.34.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p udp -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 40000:65535 -d 217.150.35.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p udp -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
# TCP client to server requests are allowed by the protocol
# if UDP requests fail. This is rarely seen. Usually, clients
# use TCP as a secondary nameserver for zone transfers from
# their primary nameservers, and as hackers.
iptables -A OUTPUT -o eth0 -p tcp -s ваш_ip_карты --sport 40000:65535 -d 217.150.34.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p tcp ! --syn -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
iptables -A OUTPUT -o eth0 -p tcp -s ваш_ip_карты --sport 40000:65535 -d 217.150.35.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p tcp ! --syn -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 40000:65535 -j QUEUE
# server to server query or response
# Caching only name server uses UDP, not TCP
iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 53 -d 217.150.34.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p udp -s 217.150.34.129 --sport 53 -d ваш_ip_карты --dport 53 -j QUEUE
iptables -A OUTPUT -o eth0 -p udp -s ваш_ip_карты --sport 53 -d 217.150.35.129 --dport 53 -j QUEUE
iptables -A INPUT -i eth0 -p udp -s 217.150.35.129 --sport 53 -d ваш_ip_карты --dport 53 -j QUEUE
#
#Ограничения на forward
#Блокировка неверных пакетов.
iptables -A FORWARD -m state --state INVALID -j DROP
# защита от скрытого сканирования портов
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 15/minute -s 192.168.1.0/24 -d any/0 -j QUEUE
#
#Блокируем черезмерно большое кол-во icmp запрсов.
iptables -A FORWARD -p icmp -m limit --limit 250/sec --limit-burst 500 -j QUEUE
iptables -A FORWARD -p icmp -j DROP
Rooster # 0
u3yMpygHblu_nemyx # 0 ⇈
Rooster # 0 ⇈
guest # 0 ⇈
Все это не нужно когда есть nftables.
Но на самом деле всё сосет у pf, как в плане удобства так и в плане документации. И как это часть бывает к IT, чем сильнее вещь сосет -- тем более она популярна.
Rooster # 0 ⇈
guest # 0 ⇈
Алсо, как там с ipset? Кажется что нету его, а без него трудно сделать быстрое правило на 31234 адреса
зы: а еще он вроде dbusнутный
полный поттеринг, короче
Rooster # 0 ⇈
Есть, но до какой-то там версии его не было.
> он вроде dbusнутный
не знаю что это значит ладно теперь знаю. Не знаю да или нет. А если да, что плохого?
ЗЫ. я пока что действительно мамин админ
guest # 0 ⇈
Знаешь теперь что есть два дибаса: общемашинный и для пользовтаеля
Что в нем регистриюутся сервисы, а клиенты их находят через интерфейс
такой маленький ни то COM, ни то энтерпрайз паттерн внутри одной машины
зачем оно для файра
bormand # 0 ⇈
Сишное апи для фаера ведь так и не завезли? До сих пор предлагают парсить выхлоп соснольной хуеты?
gueest8 # 0 ⇈
как что плохого? Тебе нраца что у тебя файр не покрутить когда dbus потушен?
>>выхлоп
Кстати, вот как сделано у белых людей: https://man.openbsd.org/pf
bormand # 0 ⇈
В идеале, конечно, надо сишное апи задокументировать и разрешить юзать. А так - лучше уж через д-бас, чем парсить это говнище.
guest # 0 ⇈
ты посмотрел мою ссылочку-то?
>лучше уж через д-бас, чем парсить это говнище.
поздравляю! Вы изобрели COM!
зы: я не спорю что
https://firewalld.org/documentation/man-pages/firewalld.dbus.html
лучше чем парсить аутпул иптаблесз
u3yMpygHblu_nemyx # 0 ⇈
Этот говнокод не открывали с 2009 года? Серьёзно? Он десять лет тут лежал без единого комментария?
guest # 0 ⇈
а, это многое объясняет:)
Людям не интересен iptables, это же сайт программистов а не прыщеадминов
u3yMpygHblu_nemyx # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
пузырьковый?
bormand # 0 ⇈
guest # 0 ⇈
у жаббы например есть квиксорт а есть мерджсорт. Кто с ходу догадается почему так -- тому щоколадка. Спойлерить не буду
guest # 0 ⇈
Rooster # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
у них есть оплачиваемое время, а у тебя нет
Rooster # 0 ⇈
gueest8 # 0 ⇈
А почему?
Rooster # 0 ⇈
guest # 0 ⇈
да!
ты совршно прав. примитивам устройчивость не нужна: int и есть int.
равность их есть их эквивалентность (или как это по умному сказать?)
у объектов же нет.
Если foo.equals(bar) это вовсе не значит чот их можно местами менять.
ты же не зна как там equals опрделен
guest # 0 ⇈
guest # 0
Доречи, QUEUE устарел и вообще не понятно зачем его так много. Заворот такой кучи пакетов в юзерленд может тормозить.
Прозрачное проксирование на сквид в наше время тоже редкость, вероятно это попытка логировать урлы или резать рекламу. В мире с HTTPS это странно.
Создается впечатление что скрипт писали лет 15 назад. Хорошо что хоть tables а не chains)