Iptables. Настройка для начинающих

Материал из WikiAdmin
Перейти к: навигация, поиск

Небольшой первоначальный скрипт (правила) для десктопа или простого сервера. В данном случае примеры по работе с портами того или иного ПО, запущенного на вашем компьютере.

На любом компьютере необходимо соблюдать меры безопасности. Миф о том, что Linux более защищен - не верен, все зависит от корявости рук администратора. Есть и хорошо защищенные Windows-системы, как и открытые практически любому Linux-системы. Поэтому стоит все-таки немного подумать и о сетевой защите компьютера. Ниже добавлены некоторые правила для iptables, которые могут вначале пригодиться.

Специально заменил $IPT на /sbin/iptables, если кому-то понадобится только одно правило, чтобы не менять что-либо - просто скопировал и выполнил. Естественно, здесь пока мало правил, нет различных VPN и т.д., если есть желание - добавьте.

Эти строки можно скопировать целиком в какой-либо скрипт и просто его выполнить. Для обычных случаев этого вполне хватит. Если какое-либо приложение не может выйти в сеть, специально добавлено логирование. Просто открывайте tail -f /var/log/syslog (или ваше, если отличное от Ubuntu) и смотрите! Если есть вопросы - добавьте их в обсуждение, будем вместе решать.


Скрипт и правила IPTABLES

#!/bin/sh

echo "0" > /proc/sys/net/ipv4/ip_forward

echo "1" > /proc/sys/net/ipv4/tcp_syncookies

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

/sbin/modprobe ip_conntrack_ftp

#Flush The Old Rules
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -F -t mangle
/sbin/iptables -X
/sbin/iptables -X -t nat
/sbin/iptables -X -t mangle

echo Old Rules Flushed

#Set Default-Drop Policy
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP

#Create New Chain Called BAD_PACKETS
/sbin/iptables -N BAD_PACKETS

#Allow The Loopback
/sbin/iptables -A INPUT -i lo -j ACCEPT

#Jump To BAD_PACKETS
/sbin/iptables -A INPUT -j BAD_PACKETS

#Allow Established Connections
/sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow DHCP
/sbin/iptables -A INPUT -p UDP --dport 68 --sport 67 -j ACCEPT

#Allow SSH From Specified Hots
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 22 -j ACCEPT

#Allow net print
/sbin/iptables -A INPUT -p UDP -i eth0 --dport 631 -j ACCEPT

#Allow webmin
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 10000 -j ACCEPT

#Allow avahi-daemon
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 5353 -j ACCEPT

#Allow input skype
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 13308 -j ACCEPT

#Allow input torrents-client
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 51413 -j ACCEPT
/sbin/iptables -A INPUT -p UDP -i eth0 --dport 51413 -j ACCEPT
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 6881 -j ACCEPT
/sbin/iptables -A INPUT -p UDP -i eth0 --dport 6881 -j ACCEPT

#Allow Samba From Specified Hosts
/sbin/iptables -A INPUT -p TCP -i eth0 --dport 137:139 -j ACCEPT
/sbin/iptables -A INPUT -p UDP -i eth0 --dport 137:139 -j ACCEPT
/sbin/iptables -A INPUT -p TCP -i eth0 --sport 137:139 -j ACCEPT
/sbin/iptables -A INPUT -p UDP -i eth0 --sport 137:139 -j ACCEPT

#Allow ICMP Replies From Specified Hosts (Ping)
/sbin/iptables -A INPUT -p ICMP -i eth0 --icmp-type 8 -j ACCEPT
/sbin/iptables -A INPUT -p ICMP -i eth0 --icmp-type 8 -j ACCEPT

#Allow input mail on 587 port
/sbin/iptables -A INPUT -p tcp --dport 587 -j ACCEPT

#Log
/sbin/iptables -A INPUT -j LOG --log-prefix "INPUT DROP: "

#Accept Loopback On OUTPUT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

#Allow Established Connections
/sbin/iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow DHCP
/sbin/iptables -A OUTPUT -p UDP --dport 67 --sport 68 -j ACCEPT

#Allow HTTP,FTP,DNS,SSH, SMTP & Port 443 Outbound
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 443 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 80 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 25 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 21 -j ACCEPT

#Allow IMAPS
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 993 -j ACCEPT

#Allow output skype
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 13308 -j ACCEPT
/sbin/iptables -A OUTPUT -p UDP -o eth0 --sport 13308 -j ACCEPT

#Allow pop, imap
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 110 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 143 -j ACCEPT

#Allow output icq
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 5190 -j ACCEPT

#Allow output IRC
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 6667 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 6668 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 6669 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 8001 -j ACCEPT

#Allow output Google talk
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 5222 -j ACCEPT

#Allow output CUPS (for printers in net)
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 631 -j ACCEPT
 
#Allow output avahi-daemon
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 5353 -j ACCEPT

#Allow output teamviewer
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 5938 -j ACCEPT

#Allow output ntp (for ntpdate)
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 123 -j ACCEPT

#Allow output Urban Terror
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 27960 -j ACCEPT

#Allow specify ports
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 2046 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 2050 -j ACCEPT

#Allow Samba From Specified Hosts
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 137:139 -j ACCEPT
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 137:139 -j ACCEPT
/sbin/iptables -A OUTPUT -p TCP -o eth0 --dport 445 -j ACCEPT
/sbin/iptables -A OUTPUT -p UDP -o eth0 --dport 445 -j ACCEPT

#Allow ICMP Replies (Ping)
/sbin/iptables -A OUTPUT -p ICMP -o eth0 --icmp-type 8 -j ACCEPT

#Drop
/sbin/iptables -A OUTPUT -j LOG --log-prefix "OUTPUT DROP: "
/sbin/iptables -A BAD_PACKETS -p TCP ! --syn -m state --state NEW -j DROP
/sbin/iptables -A BAD_PACKETS -p TCP --tcp-flags ALL ALL -j DROP
/sbin/iptables -A BAD_PACKETS -p TCP --tcp-flags ALL NONE -j DROP
/sbin/iptables -A BAD_PACKETS -p TCP --tcp-flags ALL SYN \-m state --state ESTABLISHED -j DROP
/sbin/iptables -A BAD_PACKETS -p ICMP --fragment -j DROP
/sbin/iptables -A BAD_PACKETS -m state --state INVALID -j DROP
/sbin/iptables -A BAD_PACKETS -d 255.255.255.255 -j DROP
/sbin/iptables -A BAD_PACKETS -j RETURN

echo "Rules written."
  1. ubuntu 10.04
iptables-restore < /etc/iptables.rules
  1. Примеры настроек (необходимо объединить данные)

Примеры Про iptables


См. так же:

Если эта страница оказалась для вас полезной, нажмите на кнопку. :)
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты