|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Mike Gusev 2:5020/1031.1 24 Dec 2004 00:57:54 To : All Subject : iptables -------------------------------------------------------------------------------- В процессе разбирательства с iptables родился следующий скриптик, исполняющий роль файрволла. Просьба ко всем, кто разбирается лучше, проглядеть и указать явные косяки. Попутно несколько вопросов: 1. Разумно ли разрешать ответный (ESTABLISHED) icmp? 2. Что есть полиси и что по факту делает крыжик -P? Источники мудрости: man, firestarter, немножко [:)] howto. ======= #!/bin/sh echo -n "Starting firewall... " # loading modules for module in ip_tables iptable_filter ipt_state ip_conntrack ip_conntrack_ftp ipt_REJECT ipt_LOG do /sbin/modprobe $module done # getting local ip address and netmask IP=`/sbin/ifconfig ppp0 | grep inet | cut -d : -f 2 | cut -d \ -f 1` MASK=`/sbin/ifconfig ppp0 | grep Mas | cut -d : -f 4` # drop all tables /sbin/iptables -F /sbin/iptables -X /sbin/iptables -Z # 'LOG & DROP' chain /sbin/iptables -N LOG_N_DROP /sbin/iptables -F LOG_N_DROP /sbin/iptables -A LOG_N_DROP -m limit --limit 1/s -j LOG --log-level=info --log-prefix "dropme: " /sbin/iptables -A LOG_N_DROP -j DROP # 'LOG & REJECT' chain /sbin/iptables -N LOG_N_REJECT /sbin/iptables -F LOG_N_REJECT /sbin/iptables -A LOG_N_REJECT -m limit --limit 1/s -j LOG --log-level=info --log-prefix "rejectme: " /sbin/iptables -A LOG_N_REJECT -j REJECT # standard chains /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP # allowing loopback traffic /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT # allowing regular DNS traffic, parsing /etc/resolv.conf while read keyword server garbage do if [ "$keyword" == "nameserver" ]; then /sbin/iptables -A INPUT -p tcp ! --syn -s $server -d 0/0 -j ACCEPT /sbin/iptables -A INPUT -p udp -s $server -d 0/0 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -s $IP -d $server --dport 53 -j ACCEPT /sbin/iptables -A OUTPUT -p udp -s $IP -d $server --dport 53 -j ACCEPT fi done < /etc/resolv.conf # pings /sbin/iptables -A INPUT -p icmp --icmp-type "echo-request" -m limit --limit 1/s -j ACCEPT /sbin/iptables -A INPUT -p icmp --icmp-type "echo-reply" -m limit --limit 1/s -j ACCEPT # allowed incoming ports # eDonkey /sbin/iptables -A INPUT -p tcp --dport 4662 -j ACCEPT /sbin/iptables -A INPUT -p udp --dport 4672 -j ACCEPT # sshd /sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -A INPUT -p udp --dport 22 -j ACCEPT # ftp /sbin/iptables -A INPUT -p tcp --dport 20 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT # httpd /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -p udp --dport 80 -j ACCEPT # responce traffic /sbin/iptables -A INPUT -p tcp --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p udp --dport 1023:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT # all the others incoming drop /sbin/iptables -A INPUT -j LOG_N_DROP # allowed outgoing (i.e. all) /sbin/iptables -A OUTPUT -j ACCEPT # voila! echo "done" ======= -- WBR, Mike. --- tin/1.7.6-20040906 ("Baleshare") (UNIX) (Linux/2.6.9 (i686)) * Origin: Powered by Debian GNU/Linux (2:5020/1031.1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/21991e7cf9e29.html, оценка из 5, голосов 10
|