View difference between Paste ID: hbFxcfrc and 3n9ZUQ9U
SHOW: | | - or go back to the newest paste.
1
#!/bin/sh
2
3
##############################################################################
4
5
 
6
7
# Nazwa i lokalizacja programu
8
9
IPTABLES=iptables
10
11
 
12
13
# Sciezka do pliku wykonywlanego
14
15
PATH="/usr/sbin"
16
17
 
18
19
# Adres serwera - naszego kompa
20
21
 
22
23
SERWER="192.168.0.3"
24
25
 
26
27
# Adres komputera z ktorego logujemy sie jako admin :)
28
29
 
30
31
KOMP="192.168.0.10"
32
33
 
34
35
# Przestrzen adresowa naszej sieci wewnetrzenej i karta ja obslugujaca
36
37
 
38
39
WEW_NET="192.168.0.1/28"
40
41
WEW_DEV="eth0"
42
43
 
44
45
# Adres wyjsciowy - zewnetrzny i karta obslugujaca
46
47
 
48
49
ZEW_NET="0/0"   # 0/0 wskazuje jakikolwiek adres IP
50
51
ZEW_DEV="eth1"
52
53
 
54
55
# Uslugi TCP,ktore chcemy przepuszczac - "" puste oznacza wszystkie porty
56
57
# kolejne oddzielamy przecinkami
58
59
 
60
61
TCP_IN="www,ssh,ftp-data,ftp"           # 80,22,20,21
62
63
TCP_OUT="www,ftp,ftp-data,irc,ssh"      # 80,21,20, ,22
64
65
 
66
67
 
68
69
# Uslugi UDP,ktore przepuszczamy - "" puste oznacza wszytskie porty
70
71
# kolejne oddzielone przecinkami
72
73
 
74
75
UDP_IN="443,465,995"
76
77
UDP_OUT=""
78
79
 
80
81
# Uslugi ICMP, ktore chcemy przepuszczac - "" puste oznacza wszystkie typy
82
83
# kolejne oddzielone przecinkami
84
85
 
86
87
ICMP_IN=""
88
89
ICMP_OUT=""
90
91
 
92
93
#################################################################################
94
95
 
96
97
# Usuwamy poprzednie reguly
98
99
 
100
101
$IPTABLES -F INPUT
102
103
$IPTABLES -F FORWARD
104
105
$IPTABLES -F OUTPUT
106
107
 
108
109
# Ustawienie domyslnej polityki
110
111
 
112
113
$IPTABLES -P INPUT DROP
114
115
$IPTABLES -P OUTPUT ACCEPT  # akceptujemy wszystko co od nas wychodzi
116
117
$IPTABLES -P FORWARD DROP
118
119
 
120
121
 
122
123
# Zapisujemy caly nasz ruch w logach
124
125
 
126
127
$IPTABLES -A INPUT -j LOG -m limit --limit 15/hor              # 15 logów na godzine
128
129
$IPTABLES -A OUTPUT -j LOG -m limit --limit 15/hour
130
131
$IPTABLES -A FORWARD -j LOG -m limit --limit 15/hour
132
133
 
134
135
# Ladujemy mozliwosc sledzenia polaczen
136
137
 
138
139
modprobe ip_conntarck
140
141
modprobe ip_conntarck_ftp
142
143
 
144
145
# Wylaczamy odpowiedzi na pingi
146
147
 
148
149
    #echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
150
151
 
152
153
# Ochrona przed atakami typu Smurf
154
155
 
156
157
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
158
159
 
160
161
# Wlaczamy ochrone przed komunikacja ICMP error
162
163
 
164
165
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
166
167
 
168
169
# Wlacza logowanie dziwnych pakietow (spoofed. source routed. redirects)
170
171
 
172
173
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
174
175
 
176
177
# Nie akceptujemy datagramu IP z opcja "source route"
178
179
 
180
181
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
182
183
 
184
185
# Nie przyjmujemy pakietow ICMP redict, ktore moga zmienic nasza tablice routingu
186
187
 
188
189
echo "0" /proc/sys/net/ipv4/conf/all/accept_redirects
190
191
 
192
193
# Wszystkie karty nie beda przyjmowaly pakietow z sieici innych niz te
194
195
# z tablicy routingu
196
197
 
198
199
echo "1" /proc/sys/net/ipv4/conf/all/rp_filter
200
201
 
202
203
 
204
205
# Pozwalamy pakietom biegac po naszym komputerze
206
207
# czyli odblokowujemy petle zwrotna LOOPBACK
208
209
 
210
211
$IPTABLES -A INPUT -i lo -j ACCEPT
212
213
$IPTABLES -A OUTPUT -o lo -j ACCEPT
214
215
 
216
217
# Pozwalamy na korzstanie z protokolow w trybie passive on
218
219
 
220
221
$IPTABLES -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
222
223
 
224
225
# Pozwalamy na pingowanie nas i innych (opcje te zadzialaja jezli nie wylaczymy
226
227
# pingowania) patrz wyzej
228
229
 
230
231
    #$IPTABLES -A INPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
232
233
    #$IPTABLES -A OUTPUT -p icmp -s 0/0 -d 0/0 -j ACCEPT
234
235
 
236
237
$IPTABLES -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT # tylko my mozemy pingowac
238
239
 
240
241
# Odblokowujemy uslugi na serwerze dla innych przychodzacych z zewnatrz
242
243
 
244
245
#$IPTABLES -A INPUT -p tcp -s 0/0 --dport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh,
246
247
#$IPTABLES -A INPUT -p tcp  -s 0/0 --dport 80 -j ACCEPT # czyli www
248
249
#$IPTABLES -A INPUT -p udp -s 0/0 --dport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh,
250
251
 
252
253
$IPTABLES -A INPUT -p tcp -s 0/0 --sport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh,
254
255
$IPTABLES -A INPUT -p tcp  -s 0/0 --sport 80 -j ACCEPT # czyli www
256
257
$IPTABLES -A INPUT -p udp -s 0/0 --sport 20:22 -j ACCEPT # czyli ftp-data,ftp,ssh,
258
259
 
260
261
$IPTABLES -A INPUT -p tcp -s 0/0 --dport 113 -j ACCEPT # identyfikacja
262
263
 
264
265
$IPTABLES -A INPUT -p udp -s 0/0 --dport 1025:1100 -j ACCEPT # dla hotha
266
267
 
268
269
# Odblokowujemy uslugi na sewerze dla danego adresu IP - KOMP patrz wyzej definicje TCP_IN, UDP_IN
270
271
 
272
273
    #$IPTABLES -A INPUT -p tcp -s $KOMP -m multiport --dport $TCP_IN  -j ACCEPT # protokol tcp
274
275
    #$IPTABLES -A INPUT -p udp -s $KOMP -m multiport --dport $UDP_IN -j ACCEPT # protokol udp
276
277
 
278
279
    #$IPTABLES -A INPUT -p udp -s $KOMP --dport 137:139 -j ACCEPT # protokol udp
280
281
 
282
283
# Zezwalamy na wszystko z danego adresu IP – administracja z tego adresu J
284
285
 
286
287
$IPTABLES -A INPUT -s $KOMP -j ACCEPT  # dlatego powyższe reguly sa wylaczone
288
289
 
290
291
 
292
293
# dostep do DNS
294
295
 
296
297
$IPTABLES -A INPUT -p tcp -s 0/0 --sport 53 -d $SERWER  -j ACCEPT
298
299
$IPTABLES -A INPUT -p udp -s 0/0 --sport 53 -d $SERWER -j ACCEPT
300
301
 
302
303
    #$IPTABLES -A OUTPUT -p tcp -s $SERWER -d 0/0 --dport 53 -j ACCEPT
304
305
    #$IPTABLES -A OUTPUT -p udp -s $SERWER -d 0/0 --dport 53 -j ACCEPT
306
307
  
308
309
 #mozna i tak
310
311
         
312
313
$IPTABLES –A INPUT –s 213.173.209.70 –j ACCEPT  # DNSy tele2 J
314
315
$IPTABLES –A INPUT –s 213.173.209.71–j ACCEPT
316
317
 
318
319
# Teraz troche się pozamykamy J
320
321
# Pakiety z adresem zrodlowym ustawionym na nasz
322
323
 
324
325
$IPTABLES -A INPUT -i $WEW_DEV -s $SERWER -j DROP               # atak Land
326
327
 
328
329
# Pakiety z adresow nierutowlanych, multicast i zarezerwowanych
330
331
 
332
333
$IPTABLES -A INPUT -i $WEW_DEV -s 10.0.0.0/8 -j DROP            #class A
334
335
$IPTABLES -A INPUT -i $WEW_DEV -s 172.16.0.0/12 -j DROP         #class B
336
337
#$IPTABLES -A INPUT -i $WEW_DEV -s 192.168.0.0/16 -j DROP       #class C - z tego korzystamy
338
339
$IPTABLES -A INPUT -i $WEW_DEV -s 224.0.0.0/4 -j DROP           #multicast
340
341
$IPTABLES -A INPUT -i $WEW_DEV -d 224.0.0.0/4 -j DROP           #multicast
342
343
$IPTABLES -A INPUT -i $WEW_DEV -s 240.0.0.0/5 -j DROP           #reserved
344
345-
$IPTABLES -A INPUT -i $WEW_DEV -s 127.0.0.0/5 -j DROP           #lo
345+
$IPTABLES -A INPUT -i $WEW_DEV -s 127.0.0.0/5 -j DROP           #lo
346
347
iptables -t raw -I PREROUTING -p tcp -m tcp --syn -j CT --notrack
348
iptables -I INPUT -p tcp -m tcp -m conntrack --ctstate INVALID,UNTRACKED -j SYNPROXY --sack-perm --timestamp --wscale 7 --mss 1460
349
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP