Guest User

Untitled

a guest
Apr 21st, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1.  
  2. #!/bin/bash
  3. #
  4. # modifikovano: 12.05.2011 16:53:33
  5. #
  6. # port app
  7. #------------------------
  8. # 21 = FTP
  9. # 22 = SSH (može da se menja)
  10. # 25 = SMTP
  11. # 53 = DNS
  12. # 80 = HTTP
  13. # 110 = POP3
  14. # 143 = IMAP
  15. # 443 = HTTPS
  16. # 465 = GMail SMTP (SSL)
  17. # 587 = GMail SMTP (TLS)
  18. # 993 = IMAP encrypted
  19. # 6667/8 = IRC
  20. # 7000 = IRC (SSL)
  21. # 9418 = GIT (default)
  22. #
  23. firewall="/usr/sbin/iptables"
  24.  
  25.  
  26.  
  27. iptables_rules () {
  28. #notifier
  29. echo 'Configuring iptables ports and services...'
  30.  
  31. # flaš starih pravila ("flush the toilet" analogija :>)
  32. echo ' * Flushing old rules...'
  33. flush_rules
  34. # definisanje polisa koje ćemo kasnije da koristimo
  35. $firewall -P INPUT ACCEPT
  36. $firewall -P OUTPUT ACCEPT
  37. # rutiranje ukoliko vaša linuks mašina služi kao ruter?
  38. $firewall -P FORWARD DROP
  39.  
  40. # dozvole za ostvarivanje veze koje iniciraju paketi sa mog računara
  41. # dolazece
  42. $firewall -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  43. # odlazece
  44. $firewall -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  45.  
  46. # dozvole za sve što se odvija na "localhost"-u (apache, ftp etc.)
  47. $firewall -A INPUT -i lo -j ACCEPT
  48. $firewall -A OUTPUT -o lo -j ACCEPT
  49.  
  50. #regulisanje "loših" TCP paketa
  51. #$firewall -A OUTPUT -p tcp -j bad_tcp_packets
  52.  
  53.  
  54. ############################### Korisnikova pravila za odredjene portove
  55. echo ' * Applying specific rules for separated services...'
  56.  
  57. #dns upiti i sl.
  58. #echo ' - dns'
  59. #$firewall -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
  60. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 53 -j ACCEPT
  61.  
  62. #http (mislim dooh)
  63. #echo ' - http'
  64. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
  65. #https zahtevi
  66. #echo ' - https'
  67. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
  68.  
  69. #imap (encrypted)
  70. #echo ' - imap (encrypted)'
  71. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 993 -j ACCEPT
  72. #gmail smtp (TLS)
  73. #echo ' - GMail SMTP (tls)'
  74. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 587 -j ACCEPT
  75.  
  76. #IRC (freenode + oftc ssl)
  77. echo ' - IRC (ssl)'
  78. $firewall -A OUTPUT -m state --state NEW -p tcp --dport 6697 -j ACCEPT
  79. $firewall -A OUTPUT -m state --state NEW -p tcp --dport 7000 -j ACCEPT
  80.  
  81. #GIT
  82. #echo ' - git'
  83. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 9418 -j ACCEPT
  84.  
  85. ## Nesigurne i debilne stvari
  86. #ftp (koristi se i za pristup FTP serverima iz veb pregledaca)
  87. #echo ' - ftp'
  88. #$firewall -A OUTPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT
  89. #echo ' - ftp kernel module' #ftp modul u kernelu
  90. #modprobe ip_conntrack_ftp
  91.  
  92. #torrent
  93. echo ' - torrent (sharing)'
  94. $firewall -A OUTPUT -m state --state NEW -p tcp --dport 32120 -j ACCEPT
  95. $firewall -A INPUT -m state --state NEW -p tcp --dport 32120 -j ACCEPT
  96. ########################################################################
  97.  
  98.  
  99. # blokiranje ICMP pinga
  100. echo ' * Blocking ICMP ping'
  101. # !Note: Kažu da ovo nije dobra stvar pa nije loše koristiti neko drugo pravilo
  102. $firewall -A OUTPUT -p icmp --icmp-type echo-request -j DROP
  103. # blokiranje svega ostalog
  104. echo ' * Blocking everything else...'
  105. $firewall -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
  106. $firewall -A INPUT -i eth+ -p udp -j DROP
  107. $firewall -A INPUT -i eth+ -p tcp -m tcp --syn -j DROP
  108. #imcp blok
  109. $firewall -A INPUT -p icmp -j DROP
  110. $firewall -A OUTPUT -p icmp -j DROP
  111. $firewall -A FORWARD -p icmp -j DROP
  112. # blokiranje **svega** ostalog
  113. $firewall -A INPUT -j DROP
  114. #$firewall -A OUTPUT -j DROP
  115. $firewall -A FORWARD -j DROP
  116.  
  117. }
  118.  
  119.  
  120. flush_rules () {
  121. echo ' * Flushing all iptables rules...'
  122. $firewall -F
  123. $firewall -X
  124. $firewall -Z
  125. $firewall -t nat -F
  126. $firewall -t mangle -F
  127. $firewall -t nat -X
  128. $firewall -t mangle -X
  129. }
  130.  
  131.  
  132. help () {
  133. echo "$0 - manage iptables rules
  134. usage: $0 action
  135.  
  136. Actions:
  137. start - use defined iptables rules
  138. stop - flush iptables rules
  139. * - displays this help"
  140. }
  141.  
  142.  
  143. case $@ in
  144. start ) iptables_rules ;;
  145. stop ) flush_rules ;;
  146. * ) help ;;
  147. esac
  148.  
  149. exit 0
Add Comment
Please, Sign In to add comment