Куча говна / Говнокод #822 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 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

правила iptables

Запостил: guest guest, (Updated )

Комментарии (29) RSS

    • firewalld и ufw это для маминых админов.
      Все это не нужно когда есть nftables.

      Но на самом деле всё сосет у pf, как в плане удобства так и в плане документации. И как это часть бывает к IT, чем сильнее вещь сосет -- тем более она популярна.
      Ответить
      • Чем ыиревалльд хуже ойпитаблес? Что проще использовать, то для маминых одминов? Или есть другие причины? Как работать с пипитаблес я уже через день забыл.
        Ответить
        • Тебе нравится хранить конфиги в XMLе? Правда?

          Алсо, как там с ipset? Кажется что нету его, а без него трудно сделать быстрое правило на 31234 адреса

          зы: а еще он вроде dbusнутный

          полный поттеринг, короче
          Ответить
          • > как там с ipset? Кажется что нету его
            Есть, но до какой-то там версии его не было.

            > он вроде dbusнутный
            не знаю что это значит ладно теперь знаю. Не знаю да или нет. А если да, что плохого?

            ЗЫ. я пока что действительно мамин админ
            Ответить
            • Ну вот ты прочитал про dbus, да?
              Знаешь теперь что есть два дибаса: общемашинный и для пользовтаеля
              Что в нем регистриюутся сервисы, а клиенты их находят через интерфейс

              такой маленький ни то COM, ни то энтерпрайз паттерн внутри одной машины
              зачем оно для файра
              Ответить
              • Что плохого в d-bus? В кои то веки попытка сделать нормальное api вместо помойки из шелл-скриптов.

                Сишное апи для фаера ведь так и не завезли? До сих пор предлагают парсить выхлоп соснольной хуеты?
                Ответить
                • ыиревалльд и есть обертка на питоне поверх iptables:)

                  как что плохого? Тебе нраца что у тебя файр не покрутить когда dbus потушен?

                  >>выхлоп
                  Кстати, вот как сделано у белых людей: https://man.openbsd.org/pf
                  Ответить
                  • > файр не покрутить
                    В идеале, конечно, надо сишное апи задокументировать и разрешить юзать. А так - лучше уж через д-бас, чем парсить это говнище.
                    Ответить
                    • > надо сишное апи задокументировать и разрешить юзать
                      ты посмотрел мою ссылочку-то?

                      >лучше уж через д-бас, чем парсить это говнище.
                      поздравляю! Вы изобрели COM!
                      зы: я не спорю что
                      https://firewalld.org/documentation/man-pages/firewalld.dbus.html
                      лучше чем парсить аутпул иптаблесз
                      Ответить
    • Только что заметил, что ты пофиксил «RSS».

      Этот говнокод не открывали с 2009 года? Серьёзно? Он десять лет тут лежал без единого комментария?
      Ответить
      • >2009
        а, это многое объясняет:)

        Людям не интересен iptables, это же сайт программистов а не прыщеадминов
        Ответить
        • Точно. И алгоритмы сортировки тут никого не интересуют, это же не сайт математиков.
          Ответить
          • Так и есть. Стандартный работает, что еще надо?
            Ответить
                • в некоторых стандартных либах более одного алгоритма

                  у жаббы например есть квиксорт а есть мерджсорт. Кто с ходу догадается почему так -- тому щоколадка. Спойлерить не буду
                  Ответить
                  • И много людей используют что-то кроме стандартной сортировки?
                    Ответить
                    • j123123, bormand, HoBorogHuu_nemyx. У них тут отдельный тред где они устраивали свои алгоритмистские оргии.
                      Ответить
                      • В оплачиваемое рабочее время, а не в суходрочке опосля.
                        Ответить
                        • >В оплачиваемое рабочее время,
                          у них есть оплачиваемое время, а у тебя нет
                          Ответить
                    • даю на водку: Один сортирует примитивы, второй -- объекты.
                      А почему?
                      Ответить
                      • Не знаю. Мне кажецца, томучо мердж устойчивый (не меняет порядок равных элементов) им можно сортировать объедки. У меня ищо были мысли по поводу памяти, но там же не будет разницы примитив или объект, если объект там же только ссылки в массиве ьудут. Больше ничего в голову не приходит.
                        Ответить
                        • >устойчивый
                          да!

                          ты совршно прав. примитивам устройчивость не нужна: int и есть int.
                          равность их есть их эквивалентность (или как это по умному сказать?)


                          у объектов же нет.

                          Если foo.equals(bar) это вовсе не значит чот их можно местами менять.

                          ты же не зна как там equals опрделен
                          Ответить
                          • Устойчивость имхо нужна для сортировки по нескольким критериям, хотя лучше конечно функция сравнения.
                            Ответить
  • было бы не плохо вынести в переменные адреса сетей и имена интерфейсов (особенно учитывая что они родные, а не udevовские и завтра могут поменяться).

    Доречи, QUEUE устарел и вообще не понятно зачем его так много. Заворот такой кучи пакетов в юзерленд может тормозить.

    Прозрачное проксирование на сквид в наше время тоже редкость, вероятно это попытка логировать урлы или резать рекламу. В мире с HTTPS это странно.

    Создается впечатление что скрипт писали лет 15 назад. Хорошо что хоть tables а не chains)
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8