Guest User

Untitled

a guest
Feb 20th, 2018
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.26 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # При использовании программы iptables в работе используются следущие параметры:
  4. # – сеть отправителя: -s (или –source);
  5. # – сеть получателя: -d (или –destination);
  6. # – порт отправителя: –sport, порт получателя: –dport;
  7. # – входящий интерфейс -i, исходящий интерфейс -o;
  8. # – протокол: -p или –protocol;
  9. # – отбрасывание пакета: -j DROP;
  10. # – прохождение пакета: -j ACCEPT;
  11. # – указание используемой таблицы правил (-t) и цепочки для добавления правила (-A).
  12. #
  13. # Для просмотра цепочек полезны следующие команды. Первая из них показывает пра-
  14. # вила из таблицы filter, вторая — из таблицы nat.
  15. # $ iptables -L -v
  16. # $ iptables -L -v -t nat
  17. #
  18. # Цепочка правил просматривается сверху вниз последовательно, пока не будет найдено прави-
  19. # ло, все условия которого удовлетворяются. По-умолчанию все исходящие (цепочка OUTPUT),
  20. # входящие (цепочка INPUT) и транзитные (цепочка FORWARD) пакеты проходят через межсетевой
  21. # экран.
  22.  
  23. echo "Configuring firewall..."
  24.  
  25. LAN=eth0
  26. INET=eth1
  27. VPN=tun0
  28.  
  29. # Удаление всех правил в таблице "filter" (по-умолчанию) и "nat" (указать явно)
  30. iptables -F
  31. iptables -F -t nat
  32.  
  33. # Удаление всех цепочек
  34. iptables -X
  35. iptables -X -t nat
  36.  
  37. # По-умолчанию все маршрутизируемые пакеты выбрасываются.
  38. iptables --policy FORWARD DROP
  39.  
  40. # Разрешаем любую маршрутизацию для интерфейса VPN
  41. iptables -A FORWARD -i $VPN -j ACCEPT
  42. iptables -A FORWARD -o $VPN -j ACCEPT
  43.  
  44. # Включение SNAT для маршрутизируемых пакетов, выходящих
  45. # через eth1. Это правило выполняется после самой маршрутизации
  46. # (POSTROUTING) и помещается в таблицу правил "nat".
  47. iptables -t nat -A POSTROUTING -o $INET -j MASQUERADE
  48.  
  49. # Разрешаем отправку/передачу пакетов с/на порты 80, 8080, 25 серверов
  50. iptables -A FORWARD -i $INET -d 10.101.4.0/24 -p tcp --dport 80 -j ACCEPT
  51. iptables -A FORWARD -o $INET -s 10.101.4.0/24 -p tcp --dport 80 -j ACCEPT
  52. iptables -A FORWARD -i $INET -d 10.101.4.0/24 -p tcp --dport 8080 -j ACCEPT
  53. iptables -A FORWARD -o $INET -s 10.101.4.0/24 -p tcp --dport 8080 -j ACCEPT
  54. iptables -A FORWARD -i $INET -d 10.101.4.0/24 -p tcp --dport 25 -j ACCEPT
  55. iptables -A FORWARD -o $INET -s 10.101.4.0/24 -p tcp --dport 25 -j ACCEPT
  56.  
  57. # s11: пробрасываем порт 80
  58. iptables -t nat -A PREROUTING -p tcp --dport 80 -i $INET -j DNAT --to 10.101.4.10:80
  59.  
  60. # s12: пробрасываем порты 8080 и 25
  61. iptables -t nat -A PREROUTING -p tcp --dport 8080 -i $INET -j DNAT --to 10.101.4.20:80
  62. iptables -t nat -A PREROUTING -p tcp --dport 25 -i $INET -j DNAT --to 10.101.4.20:25
  63.  
  64. # Разрешаем 53 порт (DNS)
  65. iptables -A FORWARD -p tcp --dport 53 -o $INET -j ACCEPT
  66. iptables -A FORWARD -p udp --dport 53 -o $INET -j ACCEPT
  67.  
  68. # pc13
  69. # Запрещаем доступ к lenta.ru:80
  70. iptables -A FORWARD -s 10.101.3.0/24 -d 81.19.85.0/24 -p tcp --dport 80 -j DROP
  71.  
  72. # pc12
  73. # Запрещаем доступ к facebook.com
  74. iptables -A FORWARD -s 10.101.2.0/24 -d 66.220.0.0/16 -j DROP
  75. iptables -A FORWARD -s 10.101.2.0/24 -d 69.171.0.0/16 -j DROP
  76. # Запрещаем доступ к vkontakte.ru
  77. iptables -A FORWARD -s 10.101.2.0/24 -d 87.240.0.0/16 -j DROP
  78. iptables -A FORWARD -s 10.101.2.0/24 -d 93.186.0.0/16 -j DROP
  79. # Оставляем доступ на порты 80, 443, 110
  80. iptables -A FORWARD -s 10.101.2.0/24 -p tcp --dport 80 -j ACCEPT
  81. iptables -A FORWARD -s 10.101.2.0/24 -p tcp --dport 443 -j ACCEPT
  82. iptables -A FORWARD -s 10.101.2.0/24 -p tcp --dport 110 -j ACCEPT
  83. # Остальное, что выходит в Интернет, запрещаем
  84. iptables -A FORWARD -s 10.101.2.0/24 -o $INET -j DROP
  85.  
  86. # pc11
  87. # Разрешаем доступ на yandex.ru
  88. iptables -A FORWARD -s 10.101.1.0/24 -d 87.250.0.0/16 -p tcp --dport 80 -j ACCEPT
  89. iptables -A FORWARD -s 10.101.1.0/24 -d 213.180.0.0/16 -p tcp --dport 80 -j ACCEPT
  90. iptables -A FORWARD -s 10.101.1.0/24 -d 93.158.0.0/16 -p tcp --dport 80 -j ACCEPT
  91. iptables -A FORWARD -s 10.101.1.0/24 -d 77.88.0.0/16 -p tcp --dport 80 -j ACCEPT
  92. # Остальное, что выходит в Интернет, запрещаем
  93. iptables -A FORWARD -s 10.101.1.0/24 -o $INET -j DROP
  94.  
  95. # Для приходящих из LAN пакетов мы разрешим их маршрутизацию
  96. iptables -A FORWARD -m state --state NEW,ESTABLISHED -i $LAN -j ACCEPT
  97. # Включение приёма ответов для NAT
  98. iptables -A FORWARD -m state --state ESTABLISHED -i $INET -j ACCEPT
Add Comment
Please, Sign In to add comment