Настройка IPtables для web сервера на Unix/Linux
Безопасность превыше всего, нужно это знать и понимать как это сделать! Я хотел бы рассказать как можно настроить iptables для web сервером которые работают на CentOS, RedHat или Fedora. В идеале нужно все порты заблокировать и оставить ( пооткрывать, только те что нужны для работы). И помните, это нужно для вашей же безопасности. Собственно в статье «Настройка IPtables для web сервера на RedHat/CentOS/Fedora» мы поговорим об этом.
Нужно все таки, установить IPtables.
Как установить IPTables на RedHat / CentOS Linux?
Настройка IPtables для web сервера на Unix/Linux
Изначально проверим настройки IPtables, следующей командой:
# iptables -vnL
Вот вывод данной программы (иптейблс):
Если это чистый сервер и нужно его настроить с самого начала, то выполняем ряд действий. Для начала, выставляем цепочку INPUT на прием всех соединений ( разрешить все соединения):
# iptables --policy INPUT ACCEPT
Затираем все правила:
# iptables --flush
Давайте сделаем так, чтобы можно было получать уже открытые конекшены:
# iptables -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
Мы же не звери, и по этому, — даем возможность принимать соединения с 127.0.0.1 (локолхоста):
# iptables --append INPUT -i lo -j ACCEPT
Еси есть смысл ( логично разрешить), то разрешим ping на сервер ( для ICMP пакетов):
# iptables -A INPUT --protocol icmp --icmp-type any -j ACCEPT
Т.к на сервер нужно заходить, то пробрасываем 22-й порт ( порт для SSH):
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Если имеются FTP на сервере, то пробросим:
# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
И:
# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
Т.к некоторые ФТП использую порты 30000-50000, то пробросим мы и их:
# iptables -A INPUT -p tcp --match tcp --dport 30000:50000 -j ACCEPT
После чего мы разрешим пользоваться http и https, которые используют 80 (8080) и 443-е порты:
Разрешаем доступ по 80-му порту.
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Разрешаем доступ по 8080-му порту.
# iptables -I INPUT 1 -i eth0 -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT
Разрешаем доступ по 443-му порту:
# iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Или, если нужно пробросить все это дело для определенного интерфейса:
# iptables -I INPUT 1 -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -I INPUT 1 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Проверим что у нас вышло, работает ли у нас, а проверяем вот так:
# iptables -vnL
И напоследок, запретим все остальное:
# iptables --policy INPUT DROP
Сохраняем и перезапускаем IPtables, следующим образом:
# iptables-save > /root/IPTables.rules
ИЛИ:
# service iptables save
ВСЕ! На этом я завершаю свою тему «Настройка IPtables для web сервера на RedHat/CentOS/Fedora», так же Вы можете ознакомится еще и с таким полезным материалом:
21 пример использования iptables для администраторов
Защита от DDoS с iptables, готовый скрипт
Как настроить Iptables в CentOS
Как заблокировать IP адрес с помощью iptables на Linux
Я в этой статье очень хорошо расписал что и как можно настроить, привел реальные примеры использования. По этому, если нужно и хотите реально обезопасить себя. прочитайте все что я Вам даю.
Спасибо за посещение http://linux-notes.org
Прекрасная статья! Наконец-то нашёл, как настроить домашний сервер на Fedora. Именно эта проблема мне не давало возможность запустить сервер. Удалённое управление сервером есть и из Windows, и из Linux, программы устанавливаются, интернет есть. Даже ping проходит и из Windows и из Linux, а сервер просто не виден в сети. Большое спасибо! Буду настраивать.