Титла: iptables TTL Публикувано от: Hel1Fire в Sep 22, 2005, 17:57 Знам, че сега ще ме псувате, че има 10000 разисквани теми, че трябва да търся и т.н. (на всичкото отгоре вече съм и питал за това), но наистина не мога да се правя и от вчера търся из форума + чичко гугъл!! Пробвах какво ли не ($IPTABLES -t mangle -A PREROUTING -j TTL --ttl-inc 128 , както и всичко, което намерих из форуми и т.н.), но все ми дава No chain/target/match by that name !
Slackware 10.2 ; iptables 1.3.3 с default ядрото съм (не съм прекомпилирал и наистина нямам желание, защтото машината е много слаба и се компилира за 24 часа без преувеличение! ![]() Използвам следния скрипт (той си е наред - само ТТЛ ме мъчи! ![]() #!/bin/sh # # rc.firewall - Initial SIMPLE IP Firewall script for Linux 2.4.x and iptables # # Copyright © 2001 Oskar Andreasson <bluefluxATkoffeinDOTnet> # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program or from the site that you downloaded it # from; if not, write to the Free Software Foundation, Inc., 59 Temple # Place, Suite 330, Boston, MA 02111-1307 USA # ########################################################################### # # 1. Configuration options. # # # 1.1 Internet Configuration. # INET_IP="" INET_IFACE="eth0" INET_BROADCAST="" # # 1.1.1 DHCP # # # 1.1.2 PPPoE # # # 1.2 Local Area Network configuration. # # your LAN's IP range and localhost IP. /24 means to only use the first 24 # bits of the 32 bit IP address. the same as netmask 255.255.255.0 # LAN_IP="192.168.0.1" LAN_IP_RANGE="192.168.0.0/16" LAN_IFACE="eth1" # # 1.3 DMZ Configuration. # # # 1.4 Localhost Configuration. # LO_IFACE="lo" LO_IP="127.0.0.1" # # 1.5 IPTables Configuration. # IPTABLES="/usr/sbin/iptables" # # 1.6 Other Configuration. # ########################################################################### # # 2. Module loading. # # # Needed to initially load modules # /sbin/depmod -a # # 2.1 Required modules # /sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_state /sbin/modprobe ipt_ttl # # 2.2 Non-Required modules # #/sbin/modprobe ipt_owner #/sbin/modprobe ipt_REJECT #/sbin/modprobe ipt_MASQUERADE #/sbin/modprobe ip_conntrack_ftp #/sbin/modprobe ip_conntrack_irc #/sbin/modprobe ip_nat_ftp #/sbin/modprobe ip_nat_irc ########################################################################### # # 3. /proc set up. # # # 3.1 Required proc configuration # echo "1" > /proc/sys/net/ipv4/ip_forward # # 3.2 Non-Required proc configuration # #echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter #echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp #echo "1" > /proc/sys/net/ipv4/ip_dynaddr ########################################################################### # # 4. rules set up. # ###### # 4.1 Filter table # # # 4.1.1 Set policies # $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP # # 4.1.2 Create userspecified chains # # # Create chain for bad tcp packets # $IPTABLES -N bad_tcp_packets # # Create separate chains for ICMP, TCP and UDP to traverse # $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets # # 4.1.3 Create content in userspecified chains # # # bad_tcp_packets chain # $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK \ -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP # # allowed chain # $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP # # TCP rules # $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed # # UDP ports # #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT # # In Microsoft Networks you will be swamped by broadcasts. These lines # will prevent them from showing up in the logs. # #$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST \ #--destination-port 135:139 -j DROP # # If we get DHCP requests from the Outside of our network, our logs will # be swamped as well. This rule will block them from getting logged. # #$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 \ #--destination-port 67:68 -j DROP # # ICMP rules # $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT # # 4.1.4 INPUT chain # # # Bad TCP packets we don't want. # $IPTABLES -A INPUT -p tcp -j bad_tcp_packets # # Rules for special networks not part of the Internet # $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT # # Special rule for DHCP requests from LAN, which are not caught properly # otherwise. # $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT # # Rules for incoming packets from the internet. # $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \ -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets # # If you have a Microsoft Network on the outside of your firewall, you may # also get flooded by Multicasts. We drop them so we do not get flooded by # logs # #$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP # # Log weird packets that don't match the above. # $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT INPUT packet died: " # # 4.1.5 FORWARD chain # # # Bad TCP packets we don't want # $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets # # Accept the packets we actually want to forward # $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT FORWARD packet died: " # # 4.1.6 OUTPUT chain # # # Bad TCP packets we don't want. # $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets # # Special OUTPUT rules to decide which IP's to allow. # $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT # # Log weird packets that don't match the above. # $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \ --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " ###### # 4.2 nat table # # # 4.2.1 Set policies # # # 4.2.2 Create user specified chains # # # 4.2.3 Create content in user specified chains # # # 4.2.4 PREROUTING chain # # # 4.2.5 POSTROUTING chain # # # Enable simple IP Forwarding and Network Address Translation # $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP # # 4.2.6 OUTPUT chain # ###### # 4.3 mangle table # # # 4.3.1 Set policies # # # 4.3.2 Create user specified chains # # # 4.3.3 Create content in user specified chains # # # 4.3.4 PREROUTING chain # # # 4.3.5 INPUT chain # # # 4.3.6 FORWARD chain # # # 4.3.7 OUTPUT chain # # # 4.3.8 POSTROUTING chain # $IPTABLES -t mangle -I PREROUTING -i input_interface -j TTL --ttl-set 5 Титла: iptables TTL Публикувано от: VladSun в Sep 22, 2005, 18:02 според мене имаш само ttl-match, но не и target TTL (има разлика)
И прекомпилирането след POM е задължително ... Титла: iptables TTL Публикувано от: sunhater в Sep 22, 2005, 18:30 С дефолт ядрото определено няма да стане. Трябва да си го прекомпилираш, като преди това го patch-неш с patch-o-matic. Не знам как не си го разбрал щом си ровил по въпроса. Успех!
Титла: iptables TTL Публикувано от: Hel1Fire в Sep 22, 2005, 18:43 Между другото веднъж съм го правил това с ТТЛ-а и съм си пачвал ядрото, но беше отдавна и забравих, а и адски много се рових да сваля пач за ТТЛ, но си намирах само някакви глупости за Дебиан.. Моля те, кажи ми от къде да си сваля пач-а.
Титла: iptables TTL Публикувано от: Hel1Fire в Sep 22, 2005, 18:47 Аа също да попитам: харда е малък и нямам място за сорс на ядрото. Как мога да си прекомпилирам сегашното??
VladSun: какво е РОМ? Титла: iptables TTL Публикувано от: divak в Sep 22, 2005, 20:26 Здравей, най-вероятно поради многото време което е минало от прекомпилирването на ядрото
![]() P.s. Незнам дали си обърнал внимание ама тук рядко има тревопасни ![]() Нищо лично. Успех Титла: iptables TTL Публикувано от: Hel1Fire в Sep 22, 2005, 22:10 Вярвай ми търсих и се рових доста из сайта, но не успях да намеря от къде да сваля въпросния пач. Все стигам до: http://www.netfilter.org/patch-o-matic/pom-base.html#pom-base-TTL
Титла: iptables TTL Публикувано от: the_real_maniac в Sep 23, 2005, 00:19 Има не една или две теми по тоя въпрос, потърси
![]() --- трябвати P-o-M ttl target support Титла: iptables TTL Публикувано от: sunhater в Sep 23, 2005, 01:07 Титла: iptables TTL Публикувано от: в Sep 24, 2005, 00:41 Sorry za latinicata, no sym w klub. Moga li da prekompiliram qdroto ako nqmam sors-a? I kak ako moze..
Титла: iptables TTL Публикувано от: Hel1Fire в Sep 27, 2005, 19:32 ОК. Вижте сега какво става. Опитах се да сложа пач-а, който изтеглих (виж малко нагоре), но ми дава само грешки. Пускам runme , то си върши работата и идва момента, в който трябва да му дам у (да сложи пача), но ми дава грешки, че имало едиколко си проблема от еди колко си опита и накрая пачва все пак несто след като му дам няколко пъти w и след това y, но явно не е достатъчно, защото iptables отново ми дават несъществуваща верига и прочие.. (прекомпилирал съм преди това много ясно!
![]() ![]() Титла: iptables TTL Публикувано от: Hel1Fire в Sep 28, 2005, 09:17 На никой ли не му се е случвало?!??
![]() Титла: iptables TTL Публикувано от: в Sep 28, 2005, 10:29 Ами може направо да му бръкнеш в дупенцето на Линукса без никакви пачове. Аз така направих и сам много доволен.
В файла на сорсовете на ядрото: /usr/src/linux/net/ipv4/ip_forward.c В функцията: int ip_forward(struct sk_buff *skb) коментираш следният ред: ip_decrease_ttl(iph); т.е. правиш го на: //ip_decrease_ttl(iph); прекомрилираш и вече ядрото няма да ти намалява ттл-а. Титла: iptables TTL Публикувано от: в Sep 28, 2005, 10:47 А мога ли да компилирам само този модул (и как) и след това да си го подменя, защото компа е адски бавен и сте компилира 1 ден (Pentium 166)
Титла: iptables TTL Публикувано от: в Sep 28, 2005, 10:53
За съжаление няма как да стане без кода на ядрото. То дори не е модул, ами си е неделима част. По добре инсталирай кода на ядрото на по-мощна машина, компилирай го и после го прехвърли на по-слабата с scp или там каквото имаш. Да не забрависш само, и модулите да прехвърлиш. П.П: Това работи на Router Pentium 60, 16MB, 70GB HDD, 2x3c503 LAN. Титла: iptables TTL Публикувано от: toxigen в Sep 28, 2005, 16:46 Аз правих същото миналата седмица на Слак 10.2 с ядро 2.6.13.
Описвам подред нещата: 1. Теглиш P-o-M от netfilter, както споменаха хората по-нагоре 2. Теглиш сорса на ядрото и сорса на iptables версията, която имаш и съответно ги разархивираш някъде 3. Не питай дали ще стане без сорса - няма. 4. Пускаш runme base и му указваш точния път до сорсовете (пита си) 5. Като стигнеш на TTL му даваш y да го приложи, на останалите N 6. Като си свърши работата (ще я свърши, ако сорса на ядрото и iptables са за същите като инсталираните) аз лично процедирам така:
Нататък всички знаем какво се прави, за да се подкара новото ядро. След това използвам --ttl-set 64 , а не ttl-inc - според документацията ttl-inc не увеличава стойността с даденото число, а толкова ПЪТИ - сравка man iptables Следователно при мен става:
Може и 128 да се използва, но предпочитам оригиналното 64 (за линукс машина) Титла: iptables TTL Публикувано от: Hel1Fire в Sep 30, 2005, 00:09 Добре. Или съм много тъп и некадърен или ... Ето какво правя:
1. Разархивирам iptables + P-o-M + kernel 2. ./runme base 3. iptables -> make ; make install 4. kernel -> make menuconfig (зареждам си вече направен от многото компилации config) 5. make modules; make modules_install; make bzImage (1 - 5 -> всичко това се прави на друга бърза машина) 6. Прехвърлям на сървъра bzImage + /lib/modules/2.4.31 7. Оправям лило-то 8. Рестарт 9. iptables -t mangle -A PREROUTING -j TTL --ttl-set 64 резултата е същия -> no such chain и дрън дрън ... Между другото пробвах с другия подход да коментирам намаляването на TTL, но нищо не стана. Титла: iptables TTL Публикувано от: zarhi в Sep 30, 2005, 08:23 А защо не обясниш с прости думички какво искаш да постигнеш? Причината стойноста на TTL с която пристигат пакетите при теб да не ти харесва сигурно е достатъчко основателна.
И все пак: когато iptables срещне -J TARGET се изпълнява "modprobe ipt_TARGET". Ако няма такъв модул получаваш " no such chain". Модулите се намират в /lib/modules/kernel-version/kernel/net/ipv4/netfilter/ ipt_target.o е модул за match, ipt_TARGET.o е за jump. Иди в тази директория и виж има ли изобщо ipt_TTL.o. Ако го има: insmod ipt_TTL.o ще го зареди, ако няма, но компилацията на кернела и модулите е минала успешно, значи в config файла на кернела нямаш ето този ред: CONFIG_IP_NF_TARGET_TTL=m Титла: iptables TTL Публикувано от: в Sep 30, 2005, 11:20 Довечера като се върна ще погледна. Дано това да е проблема...
Титла: iptables TTL Публикувано от: zarhi в Sep 30, 2005, 11:37 Дано. Надявам се и да знаеш какво точно се случва с --ttl-inc/set защото с такова правило адски лесно се прави безкраен loop в локалната мрежа.
Титла: iptables TTL Публикувано от: toxigen в Sep 30, 2005, 16:39 Особено ако пакетите идват със стойност на TTL примерно 64 и сложиш ttl-inc 128 => получаваш приятни стойности (всъщност 255 заради ограничението
![]() Титла: iptables TTL Публикувано от: Hel1Fire в Oct 01, 2005, 03:59 Ок. Явно проблема е, че не зарежда таргет-а. CONFIG_IP_NF_TARGET_TTL=m е сетнато вече, но така или иначе не прави модула таргет и не мога да го използвам!! Птобвах и с ядро 2.6.13 , но ефекта е същия. Явно го няма и неможе да го компилира, но защо е така незнам??
Титла: iptables TTL Публикувано от: Hel1Fire в Oct 01, 2005, 15:34 Вземам да се отчайвам от себе си вече - явно съм много тъп и некадърен. Ето какво правя:
1. разархивирам iptables + p-o-m. 2. ./p-o-m/runme base -> тука си избирам ядрото (2.4.31) + iptables и като доиде ред на TTL manipulation му казвам у, а на всички други N. 3. iptalbes make + make isntall 4. ядрото -> make modules + make modules_isntall + make bzImage Ето частта от 2.4.31/.config която се отнася за netfilter: # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m CONFIG_IP_NF_FTP=m CONFIG_IP_NF_AMANDA=m CONFIG_IP_NF_TFTP=m CONFIG_IP_NF_IRC=m CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_LIMIT=m CONFIG_IP_NF_MATCH_MAC=m CONFIG_IP_NF_MATCH_PKTTYPE=m CONFIG_IP_NF_MATCH_MARK=m CONFIG_IP_NF_MATCH_MULTIPORT=m CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_DSCP=m CONFIG_IP_NF_MATCH_AH_ESP=m CONFIG_IP_NF_MATCH_LENGTH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_TCPMSS=m CONFIG_IP_NF_MATCH_HELPER=m CONFIG_IP_NF_MATCH_STATE=m CONFIG_IP_NF_MATCH_CONNTRACK=m CONFIG_IP_NF_MATCH_UNCLEAN=m CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_MIRROR=m CONFIG_IP_NF_NAT=m CONFIG_IP_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_NAT_AMANDA=m CONFIG_IP_NF_NAT_SNMP_BASIC=m CONFIG_IP_NF_NAT_IRC=m CONFIG_IP_NF_NAT_FTP=m CONFIG_IP_NF_NAT_TFTP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_DSCP=m CONFIG_IP_NF_TARGET_MARK=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_IP_NF_TARGET_TCPMSS=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m CONFIG_IP_NF_COMPAT_IPCHAINS=m CONFIG_IP_NF_NAT_NEEDED=y # CONFIG_IP_NF_COMPAT_IPFWADM is not set Гледах в /lib/modules/..../netfilter , но няма модул ipt_TTL, ipt_target, ipt_TARGET, но за сметка на това има ipt_ttl. 5. оправям lilo 6. Рестарт и след това пак същата грешка -> no such chain ....... ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Титла: iptables TTL Публикувано от: в Oct 01, 2005, 17:26 Пробвай да компилираш статично всичко, без никакви модули. Ако ползваш CBQ също.
Титла: iptables TTL Публикувано от: Hel1Fire в Oct 01, 2005, 18:40 Оффф... Компилирах всичко в ядрото както каза, но този път ми дава друга грешка
![]() Perhaps your kernel needs to be upgraded. ![]() Титла: iptables TTL Публикувано от: Hel1Fire в Oct 01, 2005, 19:15 Излъгах. Забравих да настроя лилото. Проблема с no such chain си остана!!!!
Титла: iptables TTL Публикувано от: Hel1Fire в Oct 01, 2005, 19:35 Май открих къде е проблема -> като му дам make menuconfig и не ми показва TTL target support ?!?!? Явно за това не го компилира въпреки, че съм го написал в .config файла. Погледнах и има netfilter/ipt_TTL.c , но не го компилира!!
Титла: iptables TTL Публикувано от: toxigen в Oct 01, 2005, 21:17 Сигурен ли си, че компилираш правилното ядро
![]() А можеш и да ползваш ядро от 2.6 серията все пак - при мен с 2.6.13 работи. Според мен или не ползваш правилния конфиг при компилацията на ядрото или това фамозно прекомпилиране на iptables омазва нещата. Титла: iptables TTL Публикувано от: в Oct 02, 2005, 00:49 И бах маа му. Най-накрая стана. Може би проблема е бил, че аз като написах TARGET_TTL в .config - a съм го сложил не където трябва (2-3 реда по-нагоре). Като му дадох make oldconfig го премести и го компилира като хората. Пфууу
![]() ![]() Титла: iptables TTL Публикувано от: toxigen в Oct 04, 2005, 09:50 Което ти харесва повече
![]() Титла: iptables TTL Публикувано от: VladSun в Oct 04, 2005, 12:26 По отношение на защитната стена - направи я с DEFAULT POLICY DROP във всички вериги, а след това разрешавай протоколи, портове, ИП-та и т.н.
За htb - почни с htb.init, както каза toxigen - по-лесно ще ти е. |