Настройка файрвола. iptables
Для того, чтобы ограничить доступ в нашу сеть извне не навредив, нужно
иметь представление какие ресурсы используют приложения, работающие на
сервере. Для этого убедимся, что все службы сервера запущены (httpd,
named и т.д.) и определим открытые порты.
Пусть внешний интерфейс eth1 имеет адрес 81.81.81.81.
Проверим открытые порты командой:
# netcat -v -w 4 -z 81.81.81.81 1-1023 | grep succeed
либо
# nmap -sT -O 81.81.81.81
Посмотрим кто сопоставлен, к примеру, с портом 111:
# cat /etc/services | grep 111
sunrpc 111/tcp portmapper # RPC 4.0 portmapper TCP
sunrpc 111/udp portmapper # RPC 4.0 portmapper UDP
Посмотрим, кто его прослушивает:
# netstat -anp | grep 111
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2457/portmap
udp 0 0 0.0.0.0:111 0.0.0.0:* 2457/portmap
Посмотрим используется ли он сейчас:
# lsof -i | grep 111
Прописываем правила, закрывающие все порты за исключением 25 (smtp: принимаем почту) и 80 (http: показываем web страницы)
# iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT
# iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
# iptables -A FORWARD -o eth1 -p tcp -j DROP
Теперь
наш сервер прикрыт с внешнего мира. Запуск команд netcat и nmap c
самого сервера покажет тоже, что и до внесения правил, но если
пробовать с другого компьютера, то заметим результат: доступ везде
прикрыт, кроме как на разрешённые нами 25 и 80 порты.
Можно посмотреть действующие правила:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
ACCEPT tcp -- anywhere anywhere tcp dpt:http
REJECT tcp -- anywhere anywhere tcpflags:FIN,SYN,ACK/SYN reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Или те же правила в виде команд:
# iptables-save
# Generated by iptables-save v1.3.1 on Wed Aug 30 14:30:11 2006
*nat
:PREROUTING ACCEPT [2784:423873]
:POSTROUTING ACCEPT [1822:103126]
:OUTPUT ACCEPT [1805:100270]
COMMIT
# Completed on Wed Aug 30 14:30:11 2006
# Generated by iptables-save v1.3.1 on Wed Aug 30 14:30:11 2006
*filter
:INPUT ACCEPT [28890:12820098]
:FORWARD ACCEPT [22:3088]
:OUTPUT ACCEPT [30305:14410374]
-A INPUT -i eth1 -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -o eth1 -p tcp -j DROP
COMMIT
# Completed on Wed Aug 30 14:30:11 2006
Чтобы запомнить эти правила смотрим в /etc/init.d/iptables откуда берёт iptables свою конфигурацию при старте. Видим, что хранит он её в /etc/sysconfig/iptables. Сохраняем новую конфигурацию в этот файл:
# iptables-save > /etc/sysconfig/iptables
Теперь при запуске системы прописанные нами правила восстановятся.
источник статьи
[ |
21 декабря 2007 |
/ |
|
/ |
 |
] |
Похожие статьи
Используем 2+ провайдера (вторая часть)Защита SSH от перебора пароля с помощью blocksshd и iptables"Огненная стена" или строим файрвол на базе iptablesMatch-модуль для iptables своими руками.Настройка маршрутизатора на основе Debian/GNU Linux, OpenVPN и NetAMS
Комментировать:
#1 / написал: Влад / 31 января 2011 02:40
|
| | |
 |
|
Напишите статью как ограничить подключения с 1 ip и т.п.. Под версию что в этой новости ))
|
|
|