Advertisement
Mantikor

Untitled

Oct 21st, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 15.48 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. OUT="ppp0" # имя исходящего интерфейса, смотрящего в интернет.
  4. OUTADDR="xx.xxx.xxx.xxx" # Адрес исходящего интерфейса
  5. IN="eth0" # имя входящего интерфейса, смотрящего в локальную сеть
  6. INADDR="192.168.0.7" # Адрес входящего интерфейса
  7. NETWORK="192.168.0.0/16" # Адресация вашей локальной сети
  8. ANYWHERE="0.0.0.0/0" # Назначение, любое.
  9. PORTS="1024:65535" # Порты, которые считаются локальными
  10. MULTICAST="224.0.0.0/4" # Мультикаст пакеты, если у вас не используется оставьте как есть,
  11. # если используется IP TV тогда надо удалить этот пункт
  12.  
  13. ADMINS="10.100.100.2 192.168.0.151 192.168.0.187 192.168.0.62 192.168.0.78 192.168.0.162 192.168.0.26 192.168.0.155 192.168.0.116 192.168.0.19 192.168.0.5 192.168.0.144 192.168.0.26 192.168.0.25 192.168.0.14 192.168.0.17 192.168.0.24 192.168.0.153 192.168.0.22 192.168.0.15 192.168.0.17 192.168.0.11 192.168.0.9 192.168.0.10 192.168.0.8" # IP адреса администраторов, имеют полный доступ на сервер, без каких либо ограничений.
  14.  
  15. ##############################################################################################
  16. # Здесь прописаны параметры запуска\остановки\статуса скрипта. лучше не трогайте =)
  17. # Остановка скрипта
  18. case "$1" in
  19. stop)
  20. echo "Shutting down firewall..."
  21.  
  22. iptables --flush
  23. iptables --delete-chain
  24. iptables --table nat --flush
  25. iptables --table filter --flush
  26. iptables --table nat --delete-chain
  27. iptables --table filter --delete-chain
  28.  
  29. iptables -t filter -P INPUT ACCEPT
  30. iptables -t filter -P OUTPUT ACCEPT
  31. iptables -t filter -P FORWARD ACCEPT
  32.  
  33. echo "...done"
  34. ;;
  35. status)
  36. echo $"Table: filter"
  37. iptables --list
  38. echo $"Table: nat"
  39. iptables -t nat --list
  40. ;;
  41. restart|reload)
  42. $0 stop
  43. $0 start
  44. ;;
  45.  
  46. ##############################################################################################
  47. # Запуск скрипта
  48. start)
  49. echo "Starting Firewall..."
  50. echo ""
  51.  
  52. # Очистка таблиц и цепочек
  53. iptables --flush
  54. iptables --delete-chain
  55. iptables --table nat --flush
  56. iptables --table filter --flush
  57. iptables --table nat --delete-chain
  58. iptables --table filter --delete-chain
  59.  
  60. # Назначение глобальных политик фаервола
  61. iptables -P INPUT DROP
  62. iptables -P OUTPUT ACCEPT
  63. iptables -P FORWARD ACCEPT
  64. iptables -F INPUT
  65. iptables -F OUTPUT
  66. iptables -F FORWARD
  67.  
  68. # Загружаем модули, для корректной работы VPN, Active ftp, DCC in IRC которые будут идти через нат.
  69.  
  70. modprobe ip_conntrack
  71. modprobe ip_gre
  72. modprobe ip_nat_ftp
  73. modprobe ip_nat_pptp
  74. modprobe ip_conntrack_ftp
  75. modprobe ip_conntrack_irc
  76.  
  77. # Включение форвардинга
  78. echo 1 > /proc/sys/net/ipv4/ip_forward
  79. # Включение форвардинга для VPN
  80. echo 1 > /proc/sys/net/ipv4/ip_dynaddr
  81.  
  82. #iptables -I FORWARD 1 -s 192.168.0.0/16 -d 10.100.100.0/24
  83. #iptables -I FORWARD 1 -d 192.168.0.0/16 -s 10.100.100.0/24
  84. #iptables -t nat -I POSTROUTING -s 192.168.0.0/16 -d 10.100.100.0/24 -j ACCEPT
  85. #iptables -t nat -I POSTROUTING -d 192.168.0.0/16 -s 10.100.100.0/24 -j ACCEPT
  86.  
  87. # Admins - full control (even dangerous)
  88. for admin_ips in $ADMINS; do
  89.  
  90. iptables -A INPUT -s $admin_ips -m state --state NEW -j ACCEPT
  91. done
  92.  
  93. ##############################################################################################
  94.  
  95. # Silently Drop Stealth Scans
  96. # All of the bits are cleared
  97. iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP
  98. iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
  99. # SYN and FIN are both set
  100. iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  101. # SYN and RST are both set
  102. iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  103. # FIN and RST are both set
  104. iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
  105. # FIN is the only bit set, without the expected accompanying ACK
  106. iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
  107. # PSH is the only bit set, without the expected accompanying ACK
  108. iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
  109. # URG is the only bit set, without the expected accompanying ACK
  110. iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
  111.  
  112. ##############################################################################################
  113.  
  114. # Multicast - ignore
  115. iptables -A INPUT -s $MULTICAST -j DROP
  116. iptables -A INPUT -d $MULTICAST -j DROP
  117.  
  118. # any established or related conns are welcome
  119. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  120.  
  121. # Loopback
  122. iptables -A INPUT -i lo -j ACCEPT
  123.  
  124. # Statistics and auths for customers, ping tests
  125. for net_ips in $NETWORK; do
  126.  
  127. iptables -A INPUT -p icmp -i $IN --icmp-type echo-request -j ACCEPT
  128. iptables -A INPUT -p icmp -i eth2 --icmp-type echo-request -j ACCEPT
  129. iptables -A INPUT -p icmp -i $OUT --icmp-type echo-request -j ACCEPT
  130. iptables -A INPUT -p icmp -i ppp1 --icmp-type echo-request -j ACCEPT
  131. iptables -A INPUT -p 139 -i ppp1 -j ACCEPT
  132. iptables -A INPUT -p 139 -i ppp0 -j ACCEPT
  133.  
  134.  
  135. done
  136.  
  137. ############ Открываем нужные нам порты.
  138. #OpenVPN
  139. #iptables -A INPUT -p udp --dport 1194 -j ACCEPT
  140. #iptables -A INPUT -i tap0 -j ACCEPT
  141. #iptables -A INPUT -i eth2 -j ACCEPT
  142. #Samba
  143. iptables -A INPUT -p tcp -i $IN -m multiport --dport 139,445 -j ACCEPT
  144. iptables -A INPUT -p udp -i $IN -m multiport --dport 137,138 -j ACCEPT
  145. # APT-Proxy
  146. #iptables -A INPUT -p tcp -i $IN --dport 9999 -j ACCEPT
  147.  
  148. #SNMP port
  149. iptables -A INPUT -p udp -i $IN --dport 161 -j ACCEPT
  150.  
  151. #SNTP time port
  152. iptables -A INPUT -p udp -i $IN --dport 123 -j ACCEPT
  153.  
  154. # HTTP
  155. iptables -A INPUT -p tcp -i $IN -m multiport --dport 80,443,10000 -j ACCEPT
  156. iptables -A INPUT -p tcp --source 62.122.207.154 -i $OUT -m multiport  --dport 80,443,10000 -j ACCEPT
  157.  
  158. #Mail
  159. iptables -A INPUT -p tcp -i $OUT -m multiport  --dport 465,995,587,143,993,110 -j ACCEPT
  160.  
  161. #RDP 1C server
  162. #iptables -A INPUT -p tcp --source 62.122.207.96 -i $OUT --dport 3389 -j ACCEPT
  163. #iptables -A INPUT -p tcp --source 62.122.207.96 -i $OUT --dport 3389 -j ACCEPT
  164. #DVR Hirop
  165. #iptables -A INPUT -p tcp -i $OUT --dport 6036 -j ACCEPT
  166.  
  167. # FTP
  168. iptables -A INPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT
  169. # PASSIVE FTP
  170. iptables -t filter -A INPUT -p tcp -m tcp --dport 50000:50500 -m state --state NEW -j ACCEPT
  171. iptables -t filter -A INPUT -p udp -m udp --dport 50000:50500 -m state --state NEW -j ACCEPT
  172. #SQUID
  173. iptables -A INPUT -p tcp -i $IN --dport 3128 -j DROP
  174. iptables -A INPUT -p tcp -i $IN --dport 8080 -j ACCEPT
  175. #SSH
  176. iptables -A INPUT -p tcp --dport 40781 -j ACCEPT
  177. #iptables -A INPUT -p tcp --dport 1022 -j ACCEPT
  178.  
  179. #pptp
  180. iptables -A INPUT -p gre -j ACCEPT
  181. iptables -A INPUT -p tcp -i $IN --dport 1723 -j ACCEPT
  182. iptables -A INPUT -p tcp -i $OUT --dport 1723 -j ACCEPT
  183. iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
  184.  
  185. #NeoRouter 29.11:16.05
  186. #iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 32976 -j ACCEPT
  187. #iptables -A INPUT -m state --state NEW -m udp -p udp --dport 32976 -j ACCEPT
  188.  
  189. #MAIL
  190. #iptables -A INPUT -p tcp -i $IN -m multiport --dport 25,110,143,465,995,993 -j ACCEPT
  191.  
  192. #dns
  193. iptables -A INPUT -p udp -i $IN --dport 53 -j ACCEPT
  194. #Neorouter 29.11:16.05
  195. #iptables -A INPUT -p tcp -i $IN --dport 32976 -j ACCEPT
  196. #iptables -A INPUT -p udp -i $IN --dport 32976 -j ACCEPT
  197.  
  198. #Miska merezha 29.11:16.05
  199. iptables -A INPUT -p tcp -i eth2 -j ACCEPT
  200. ########### OUTPUT
  201. iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP
  202.  
  203. #############
  204.  
  205. ########### NAT Вписываем сюда IP своих компьютеров в локальной сети.
  206. POSTROUTING -s 192.168.0.0/23 -o $OUT -j SNAT --to-source 62.122.207.107 #
  207. iptables -t nat -A POSTROUTING -s 192.168.0.3 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###fond
  208. iptables -t nat -A POSTROUTING -s 192.168.0.5 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###fuji
  209. iptables -t nat -A POSTROUTING -s 192.168.0.6 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###megatron
  210. iptables -t nat -A POSTROUTING -s 192.168.0.8 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###backup
  211. iptables -t nat -A POSTROUTING -s 192.168.0.29 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###SEP_server
  212. iptables -t nat -A POSTROUTING -s 192.168.0.201 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DVR_pidval_to_send_e-mail
  213. iptables -t nat -A POSTROUTING -s 192.168.0.202 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DVR_HIKVISION_to_send_e-mail
  214. iptables -t nat -A POSTROUTING -s 192.168.1.5 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###VirtualM_SCCM
  215. iptables -t nat -A POSTROUTING -s 192.168.1.7 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###ubuntu_pppoe__server
  216. iptables -t nat -A POSTROUTING -s 192.168.1.8 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###Gallileo
  217. iptables -t nat -A POSTROUTING -s 192.168.1.54 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx ###mail
  218. iptables -t nat -A POSTROUTING -s 192.168.0.86 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx # temp
  219.  
  220.  
  221. ######## VPN #########
  222. iptables -t nat -A POSTROUTING -s 192.168.244.2 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #admin
  223. iptables -t nat -A POSTROUTING -s 192.168.244.3 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #GL
  224. iptables -t nat -A POSTROUTING -s 192.168.244.4 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #golovbuh
  225. #iptables -t nat -A POSTROUTING -s 192.168.244.5 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DC
  226. #iptables -t nat -A POSTROUTING -s 192.168.244.6 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DC
  227. #iptables -t nat -A POSTROUTING -s 192.168.244.7 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DC
  228. iptables -t nat -A POSTROUTING -s 192.168.244.8 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #baklab
  229. #iptables -t nat -A POSTROUTING -s 192.168.244.9 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #DC
  230.  
  231.  
  232. ######
  233. ##########  NTP
  234. iptables -t nat -A POSTROUTING -p udp --dport 123 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #NTP time
  235. #######    NAT for MAIL
  236. iptables -t nat -A POSTROUTING -p tcp --dport 143 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #забираем почту через IMAP
  237. iptables -t nat -A POSTROUTING -p tcp --dport 993 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx #забираем почту через sIMAP
  238. iptables -t nat -A POSTROUTING -p tcp --dport 25 -s 192.168.1.54 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  239. iptables -t nat -A POSTROUTING -p tcp --dport 110 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  240. iptables -t nat -A POSTROUTING -p tcp --dport 465 -s 192.168.1.54 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  241. iptables -t nat -A POSTROUTING -p tcp --dport 587 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  242. iptables -t nat -A POSTROUTING -p tcp --dport 995 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  243. #####NAT Reestraciya polskih anket
  244. #iptables -t nat -A POSTROUTING -p tcp --dport 2555 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  245. #iptables -t nat -A POSTROUTING -p tcp --dport 443 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  246. #########NAT RDP
  247. iptables -t nat -A POSTROUTING -p tcp --dport 3389 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  248. ##########UTM IPtv & Radio
  249. iptables -t nat -A POSTROUTING -p tcp -m multiport --dport 9001:9024 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  250. iptables -t nat -A POSTROUTING -p tcp -m multiport --dport 8001:8102 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  251. ######## PPTP ##########
  252. iptables -t nat -A POSTROUTING -p tcp --dport 1723 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  253.  
  254. ############ PORT FORWARD Сюда вписываем проброс портов локальную сеть.
  255. #NOD Update Mirror na sergiy
  256. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 2221 -j DNAT --to-destination 192.168.0.8:2221
  257. #NeoRouter 29.11:16.05
  258. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 32976 -j DNAT --to-destination 192.168.0.8:32976
  259. #iptables -t nat -A PREROUTING -p udp -d $OUTADDR --dport 32976 -j DNAT --to-destination 192.168.0.8:32976
  260.  
  261. #BTSync on backup
  262. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 17068 -j DNAT --to-destination 192.168.0.8:17068
  263. #временный нат для ВПН на томографию
  264. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 1723 -j DNAT --to-destination 192.168.0.14:1723
  265.  
  266. #нат для поштовика
  267. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 465 -j DNAT --to-destination 192.168.1.54:465
  268. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 995 -j DNAT --to-destination 192.168.1.54:995
  269. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 587 -j DNAT --to-destination 192.168.1.54:587
  270. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 143 -j DNAT --to-destination 192.168.1.54:143
  271. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 993 -j DNAT --to-destination 192.168.1.54:993
  272. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 25 -j DNAT --to-destination 192.168.1.54:25
  273. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 110 -j DNAT --to-destination 192.168.1.54:110
  274.  
  275.  
  276. #torrent na Sergiy 29.11:16.05
  277. iptables -t filter -A FORWARD -i $OUT -d 192.168.0.8 -p tcp --dport 7681 -j ACCEPT
  278. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 7681 -j DNAT --to-destination 192.168.0.8:7681
  279. # Cam Administracia Lift
  280. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 11401 -j DNAT --to-destination 192.168.0.224:11401
  281. # Cam Administracia
  282. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 11410 -j DNAT --to-destination 192.168.0.231:11410
  283. # Cam Pryjmalne
  284. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 11402 -j DNAT --to-destination 192.168.0.222:11402
  285. # Cam Sekretar
  286. iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 11403 -j DNAT --to-destination 192.168.0.223:11403
  287. #DVR Hirop
  288. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 80 -j DNAT --to-destination 192.168.1.37
  289. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 6036 -j DNAT --to-destination 192.168.1.37:6036
  290.  
  291.  
  292. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 50 -j DNAT --to-destination 192.168.0.14:50
  293. #iptables -t nat -A PREROUTING -p udp -d $OUTADDR --dport 500 -j DNAT --to-destination 192.168.0.14:500
  294. #iptables -t nat -A PREROUTING -p udp -d $OUTADDR --dport 4500 -j DNAT --to-destination 192.168.0.14:4500
  295. #iptables -t nat -A PREROUTING -p udp -d $OUTADDR --dport 1194 -j DNAT --to-destination 192.168.0.14:1194
  296. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 1194 -j DNAT --to-destination 192.168.0.14:1194
  297.  
  298. #Mantikor
  299. #iptables -t nat -A POSTROUTING -p tcp --dport 3391 -s 192.168.0.0/16 -o $OUT -j SNAT --to-source xx.xxx.xxx.xxx
  300.  
  301.  
  302. # OpenMeetings
  303. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 1935 -j DNAT --to-destination 192.168.0.144:1935
  304. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 5080 -j DNAT --to-destination 192.168.0.144:5080
  305. #iptables -t nat -A PREROUTING -p tcp -d $OUTADDR --dport 8088 -j DNAT --to-destination 192.168.0.144:8088
  306.  
  307.  
  308.  
  309.  
  310. echo "...done"
  311.  
  312. echo "--> IPTABLES firewall loaded/activated <--"
  313.  
  314. ##--------------------------------End Firewall---------------------------------##
  315.  
  316. ;;
  317. *)
  318. echo "Usage: firewall (start|stop|restart|status) EXTIF INTIF"
  319. exit 1
  320. esac
  321.  
  322. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement