[PATCH] REJECT patch 2. ver
Jozsef Kadlecsik
kadlec@blackhole.kfki.hu
Wed, 2 Feb 2000 16:17:38 +0100 (CET)
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.
--110391808-187315251-949498826=:14865
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.10.10002021440551.14865@blackhole.kfki.hu>
Hello,
This is the second version of my REJECT patch. As it was suggested
by Andi Kleen, I avoided to do the faked packets generation in the
IP stack, so the required patch against linux-2.3.40 is shrinked to
*** linux/net/netsyms.c.orig Wed Jan 26 13:53:40 2000
--- linux/net/netsyms.c Wed Jan 26 14:21:09 2000
***************
*** 589,594 ****
--- 589,596 ----
EXPORT_SYMBOL(nf_unregister_interest);
EXPORT_SYMBOL(nf_hook_slow);
EXPORT_SYMBOL(nf_hooks);
+ EXPORT_SYMBOL(ip_options_echo);
+ EXPORT_SYMBOL(ip_options_build);
#endif
EXPORT_SYMBOL(register_gifconf);
The new features, again:
1. REJECT: different reject packets can be selected:
- ICMP net, host, proto or port unreachable
- faked TCP RST for TCP
- faked echo reply for echo request
Out of curiosity - using the patched netfilter as the packet generator -
I tested how different OSes (Linux, Solaris, Windows) react when receiving
different kind of reject packets. Then asked some of my friends with
access to machines with other OSes to run the tests, which were simply:
% telnet test.machine 500
...
% telnet test.machine 504
The configuration on the test machine was:
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -p tcp --dport 500 -j REJECT --with net-unreach
iptables -A INPUT -p tcp --dport 501 -j REJECT --with host-unreach
iptables -A INPUT -p tcp --dport 502 -j REJECT --with proto-unreach
iptables -A INPUT -p tcp --dport 503 -j REJECT --with port-unreach
iptables -A INPUT -p tcp --dport 504 -j REJECT --with tcp-reset
The results of the telnet attempts can be summarized in the following
table:
Reject with net unr. host unr. proto unr. port unr. TCP RST
Linux 2.x.x abort abort abort abort abort
FreeBSD 3.3 abort abort abort abort abort
HP-UX 9.01 abort abort abort abort abort
ULTRIX 4.3/4.4 abort abort abort abort abort
Solaris 2.6/7 ignore ignore abort abort abort
Windows 98/NT ignore ignore abort ignore abort
AIX 4.2/4.3 ignore ignore ignore ignore abort
IRIX 6.2 ignore ignore ignore ignore abort
OSF1 4.0 ignore ignore ignore ignore abort
2. state: simple protection against SYN flooding
After the server sent SYN-ACK, an ACK packet coming from the client
is faked, thus protecting the server against SYN flood attempts.
As it was pointed out, it is a really *bad* practice with servers
having modern stacks. So the help text prints out:
% iptables -m state -h
[...]
state v0.1.17 options:
[!] --state state [,state...]
State(s) to match
[!] --fake-ack state [,state...]
SYN flood protection: send a faked ACK
which answers the SYN-ACK coming from
the protected server. BEWARE!
It is *counterproductive* with servers having
modern stacks! You are warned!
Possible states are: INVALID, NEW, ESTABLISHED,
RELATED_NEW, RELATED_ESTABLISHED
RELATED (_NEW and _ESTABLISHED)
Regards,
Jozsef Kadlecsik
-
E-mail : kadlec@blackhole.kfki.hu, kadlec@sunserv.kfki.hu
WWW-Home: http://www.kfki.hu/~kadlec
Address : KFKI Research Institute for Particle and Nuclear Physics
H-1525 Budapest 114, POB. 49, Hungary
--110391808-187315251-949498826=:14865
Content-Type: APPLICATION/OCTET-STREAM; NAME="netfilter-0.1.17.patch.bz2"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.10.10002021440260.14865@blackhole.kfki.hu>
Content-Description: netfilter-0.1.17.patch.bz2
Content-Disposition: ATTACHMENT; FILENAME="netfilter-0.1.17.patch.bz2"
QlpoOTFBWSZTWTAbdtEAcDR/gH04IAx///////////////9gc3w+QAkoAPvd
V5Fffe9c9PF4vvfQd99jLFdwAAAAA8bPc9OMZR9LNbM3fXjzvWicpV05JA6U
Caq2Wvdq6CrN3MidIPSSnoDQoOvVbSgpRKLw70a56jahtL77D6kvHyk73m1o
11ehWzBCAu9eKkvYDoAdGgUBoA9Hu3dgBvszvWuClAAAA6AVQAfQAB0NAZQr
t6G3ccgKNHoDoAAAD0ZB9fE+gAHoFANH0AaAevQdAClAaAN7AOu8wdHQKdaO
gejyhUdKHQ0HKqCJEPIDoAFADQ6BwlNIEAEAE0J6aIyTTKbSYFMan6mkzRqP
RqZpNMjJk00MJTQgEQJpoQjIo8Q2U9Em9U9IeRqYJtTQAAAaDQDT0glEJD0Q
GJ6hkPU0eoaBkaAZBkZGQAxBoACT1SlFNqT1Gk2pkzSBoAAA0ABoAANAAAAC
JQhEekxU9ojJpieSp5pTxTzVP0anpI09T1NPKNAyaHpig9QDRgVEkIIAQCaY
gECYRoamAk9FP000RlPSeJMm0h6nkh9C+T6IMhEkAfC11p1rXza01lJIsWWS
ltLTak0k2zazbKzSyUlKlRSkk2DUwWbKU0rSm0VEqqRCKSTybmSSRVEf9ywp
YE/M0qsJJGUm6VKKlpSbZJVlJaQaKWlKSzJaSxJmvOt0pKllJrS9l6XnXi8l
eUpZoaNMrRqklklaVKSUrTKppSWZWSMZKTUslLNaWSpqVsqSkkqWlmlm20Rb
YslslSWNKSSkqLLTNlNSWTWTUWxRl6r/14tKW0iypLSzVBmlJJVmtGqNBkoW
KkV0wwqoqxKpKpSwpHxTFZBaqpkxkjMxiqzItzTt1dJt+eq+t5a3rreJXSsy
maAB1dV1fzX1z0vS86kpf1SnZkrZdbbjsZgxUmlkjRZKi0qUiSzbJUrSlWSk
rKSlS0rTNXLrYqlulupKklLJUkyUqWlpNijZNJSbLSJJCNZLUpfDN0tlS1JY
stSk2vOuU2Wlm0jbJs2lSUqUtJbSBKUptJtJZTbNNpVA0ZszZlS2Qkk2Esk1
u66WW0slJZg2yQaylkNy7KsiW2Uk1SUqbWlIsmapWIsFYrEYMFZJjYzBef1s
RoFQ8ZCTJBI34i2Jz8ZrBTmVEEYkTBBAcxwkbTaNMXNZVcum0HFU7HcxPNWy
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
iVxnZqN6QtPDQ7vUOhymRWztZNqjo5VjkOuOaVTmNNCQnKqCS1ha2CTNFxrz
Ydwaux/x5ExQfd/rZWe4bSGS/Jb6452c8S2rlTxeSvrfOLxwfBk8KGx+dw2X
WHuOknWlBH9Ne22qe3utD1/pc69cIM1IHxt5QI1XatuyfDSbLoQ8G7CPZVHX
Mt75dWrpS29+xY4WTslGWl+DywfAnhoqKnppi9oVi5nJQN8x1p569qh5vM51
4xDNWDzDkKb4b9BjVCG5ob9Orfo3WPuV1e+dcqzMu31u7vxEhwmHsKw728Dc
aBBiIbs+47/u5fdy+3TKr7KRqqql92hvtPGrsMzcNtQJiJebPQdpgbDtIG8Q
iYHxbzq5ECoidp4Y2d2o6RBLQZPzTpLcf6QgVbrcPHCzwg1pKsqi7NYe+cJT
yo0RU96og2eh96x3FWoqzg6SyNUIGrPOy+mwTYrLs1zoc6V6WOlh25rmuZgz
cPmGbX3DxG7xNAoGIbNERPD1aJEt1DhDqNZraXbNry22uyT2FINQ2nzCPcSr
F93wB6MeL6cYder1fes7tO3PC+1X3wvvvvvvv330dTv2HNCBo+T5uqtzvEqZ
nEGDQ3Ixjx0+oxDxeMP6myLT4HmHyEcycC8qPEbE0rObu75pXmIg/zDwKhCD
DmSCbaDMLgMjWNj1H1iCo6+ZRVZ6yH5DP93jwcOMjm+zErJCLcZqmt2wd94o
ibHdLmuLbVjHCZIy6zGJ7Cuab7ZfDB4Ze1sLXHwF9Bk4n2h837tTdHid1M92
vDvM6Mpe0qZ26ezfBgzreDgbvdKhGNb2Qwj+rI05TjhGEnQq8lBb3k9dy6Yw
obtj4ypnL7Vf4HvHBc7OyVBQJvN5UNNqkbbQPh1iI84qmW4FsDFKaULxmndG
d+3Etcul2xxzUqWVsYoRPV7xqe2504VnaYo+OEE30u+prhWuPOYr3nvfaKXS
MoyHdypwPZpEIUzyC8dC1hx+ioSMzqC0R6tXxTWkk0lbfoatf21ZNLJFSaI2
7bS11lLtdKTSWabrXNaTWiylFSSWlmyVpItSUlmpJalCxakZEoZ/9GGKmKlU
ndWh/ewQayRLgAD94IUVIqRUTURHy+DIiNLDWsg/Ounw+y2eR7nccSdldyoK
jxVclsxUhhQpjIKqc2M0WSKmxWQk0lRltid0JCRbLaqbNVjaTapEtJlYstW2
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
YVtUbn0doY9ZiYxRe22mKkVjDHzdj2ND3tnCsKVWnoqR1UeuU+pMTsqR4DdF
eKyEw9UaKjGJIN2sVOcEbG7d6+3uU96tbLksmTXt4t2knodVsUdlbNFZI8Sv
/qWbGz6eJptIqJ3hTEmNkeR8KnqL1P0im89ifY3dofDzYhuqUqconyaqzhPj
4mNDnKwqsq9Zbvt6+Vde56RSW9avwBgC8tr/a3aTo4ZOZXCKVoo/RZNW9ivU
kJ3J8Seoao9pXItLHCwyy1bLRbLVq0hpY1FHsR5Gix850VPipOR0rk5xzjTU
00mkae2wfxP+e5+pU8lcRY9VsV7zGO9868471IqvZZcYjEpUqSO9/BTZvH0c
Kr6dEPN587cTHIppSqr9vuTNLtDUIb2JSbNmyVYVLN9tLH39jhpySZMN34zc
kkpQQ44hkMgsXJIJKA+JHKjkpNNzCjSujTjfJmxxF4I2uLRuRLi1mBah/8Ss
UkBFzULEHcKF6rg/EsyRblMzdjUZZVSisTKxR2aYamHZXVTYxlk2sWNZMzTr
MaJWyFR/ySxuKPrPE6q/B7n0VN1bV1XTT7WNNVsummYXStKaabaJdN9nDeJz
dhPB3moI7mJ6KnPdVsq2SmRkp11V63m5bqZZVLKTERTuTZE4bwNohu7xUyXG
kqgVZVfKRIdMTwJkkjiNFafs7v0RpYpPqfWxElseT7Vfg3MK2Sv2sYfucGm6
pjYfsKVyYbHCp+t6cmntiPdGE0Y6ynqjzkESkpKipFVVhKWR62Kx6NomnJsn
qfkx7QqJvLnaWNOmxNFZJ9K9zZknQd5ZDyWH5KqOc4kjh07WzFKxppkZMSiK
qSmylkSHfIN0a2kI/yfsbbF3xC1JH4GRSsVZJVhKS2yzaeXW6ilvKWkXVtsQ
5KLSVAcjJCFdnYXxk4iEcK4VjGMU8h3pSeo5mKMq2ukrXtLsQTbEk9LPfV7W
0X6z5ltfquWZT5YYPNUGKhT7n3sn9KybN1xPJeGoyeb+tk3Vso6n5Mmyt1L/
GyScNlY/8FkrtdSTZxNOjSMVE4sthalUqv6FEib6djTZ45E5cZHFVS0OZNSm
h+p31VSSp2zHYV/qUiYUlQpG4dsfrfULHOySV0PXCfBIj2taMPufsaR39rmh
2k6UUPIfOQc4KHeDKUU0AwjCUNTDMfNMfocmVZP5FfofcVidjwde2MVTwWSZ
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
QZFU9hEVPQRT7hdyRThQkDAbdtE=
--110391808-187315251-949498826=:14865--