easy iptables config
этаоин_шрдлу 25 января, 2009 - 12:22
я не администратор, я пользователь, собираю свою gentoo, как lego.
вожусь с iptables, посмотрев как у других и как в how to создал скрипт
для чего? параноя. да, .gov информации не держу.
хочу создать скрипт для тех, кто не администрирует сети,
а занимается инженерией системы под себя.
с последующей модернизацией скрипта здесь на форуме.
#!/bin/bash
###main###
INET_IFACE="eth0"
UNPRIPORTS="1024:65535"
IPTABLES='/sbin/iptables'
###to_kernel###
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
###drop_politics###
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
###main_politics###
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
###accept'lo'###
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
###'lo'pasport###
$IPTABLES -A INPUT -m state ! -i lo --state NEW -j DROP
$IPTABLES -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP
###kill_invalid###
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP
###accept_ineed_trafic###
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
###postrouting###
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -s 10.0.0.10/16 -j SNAT --to-source 192.168.35.141
#INDIGO_CHILDREN#
###syn_shtorm###
$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
###udp_wave_shtorm###
$IPTABLES -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
$IPTABLES -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
$IPTABLES -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT
$IPTABLES -A INPUT -p UDP -j RETURN
$IPTABLES -A OUTPUT -p UDP -s 0/0 -j ACCEPT
###icmp_reway###
$IPTABLES -A INPUT --fragment -p ICMP -j DROP
$IPTABLES -A OUTPUT --fragment -p ICMP -j DROP
###ICMP_accept###
$IPTABLES -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
###ping_pong###
$IPTABLES -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT
###worse_md5_box###
$IPTABLES -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT
###save_X###
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
###if_monkey_do###
#$IPTABLES -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 00000
###welcome_DNS###
$IPTABLES -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT
###AUTH_to_call###
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP
###open_port###
#SMTP
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn
#POP3
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn
#IMAP4
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn
#SSH
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
#FTP
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn
# HTTP/HTTPS
$IPTABLES -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443
$IPTABLES -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn
###easy_safe(finger.whois.gorper.wais.traceroute)###
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn
$IPTABLES -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT
###dynamic_IP_DHCP###
#$IPTABLES -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT
#$IPTABLES -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j ACCEPT
###port_needs###
$IPTABLES -A INPUT --protocol tcp --dport rsync -j ACCEPT # gentoo rsync
$IPTABLES -A INPUT --protocol tcp --dport 1666 -j ACCEPT # test
$IPTABLES -A INPUT --protocol tcp --dport 8080 -j ACCEPT # test
$IPTABLES -A INPUT -p tcp --dport 6881:6889 -j ACCEPT # torrent
$IPTABLES -A INPUT --protocol tcp --dport 21 -j ACCEPT # ftp
$IPTABLES -A INPUT --protocol tcp --dport 22 -j ACCEPT # ssh
#$IPTABLES -A INPUT -p tcp --dport 10100 -j ACCEPT # dc++
#$IPTABLES -A INPUT -p udp --dport 10100 -j ACCEPT # dc++
»
- Для комментирования войдите или зарегистрируйтесь
http://www.gentoo-wiki.info/H
http://www.gentoo-wiki.info/HOWTO_Iptables_for_newbies
http://gazette.linux.ru.net/r
http://gazette.linux.ru.net/rus/articles/iptables-tutorial.html
http://olegon.ru
gentoo.ru: Конфигурации
gentoo.ru: Конфигурации iptables ;)
/ Enchant /
"Никакую проблему нельзя решить на том же уровне, на котором она возникла"
/var/lib/iptables/rules-save
/var/lib/iptables/rules-save
/etc/sysctl.conf
+ к вышесказанному
http://www.citforum.ru/operating_systems/linux/iptables/
http://iptables-tutorial.frozentux.net/
.
http://linuxforum.ru/index.php?showtopic=9454