к настроить брандмауэр или брандмауэр в Linux, мы можем использовать iptables, мощный инструмент, о котором многие пользователи, кажется, забывают. Хотя существуют и другие методы, такие как ebtables и arptables для фильтрации трафика на уровне ссылок или Squid на уровне приложений, iptables может быть очень полезен в большинстве случаев, обеспечивая хорошую безопасность в нашей системе на уровне трафика и транспорта сети. .
Ядро Linux реализует iptables, часть, которая заботится о фильтрации пакетов и что в этой статье мы научим вас настраивать простым способом. Проще говоря, iptables определяет, какую информацию можно и нельзя вводить, изолируя вашу команду от потенциальных угроз. И хотя есть другие проекты, такие как Firehol, Firestarter и т. Д., Многие из этих программ межсетевого экрана используют iptables ...
Ну, Приступим к работе, на примерах вы все лучше поймете (в этих случаях необходимо иметь привилегии, поэтому используйте sudo перед командой или станьте пользователем root):
Общий способ использования iptables для создания политики фильтрации:
IPTABLES - АРГУМЕНТЫ ВВОД / ВЫВОД ДЕЙСТВИЕ
Где -ARGUMENT аргумент, который мы будем использовать, обычно -P для установки политики по умолчанию, хотя есть и другие, например -L для просмотра политик, которые мы настроили, -F для удаления созданной политики, -Z для сброса счетчиков байтов и пакетов и т. д. Другой вариант - -A для добавления политики (не по умолчанию), -I для вставки правила в определенное место и -D для удаления данного правила. Также будут другие аргументы, указывающие на протоколы -p, –sport порт источника, –dport для порта назначения, -i входящий интерфейс, -o исходящий интерфейс, -s исходный IP-адрес и -d IP-адрес назначения.
Кроме того, ввод-вывод будет представлять, если политика Он применяется ко входу INPUT, к выходу OUTPUT или является перенаправлением FORWARD трафика (есть и другие, такие как PREROUTING, POSTROUTING, но мы не будем их использовать). Наконец, то, что я назвал ACTION, может принимать значение ACCEPT, если мы принимаем, REJECT, если мы отклоняем, или DROP, если мы исключаем. Разница между DROP и REJECT заключается в том, что, когда пакет отклоняется с помощью REJECT, машина, которая его отправила, будет знать, что он был отклонен, но с DROP он действует молча, и злоумышленник или источник не будут знать, что произошло, и не будет знать, есть ли у нас брандмауэр или соединение просто не удалось. Есть также другие, такие как LOG, которые отправляют продолжение системного журнала ...
Чтобы изменить правила, мы можем редактировать файл iptables с помощью нашего предпочтительного текстового редактора, nano, gedit, ... или создавать сценарии с правилами (если вы хотите их переопределить, вы можете сделать это, поставив # перед строкой, чтобы он был игнорируется как комментарий) через консоль с командами, как мы объясним здесь. В Debian и производных вы также можете использовать инструменты iptables-save и iptables-restore ...
Самая крайняя политика - блокировать все, абсолютно весь трафик, но это оставит нас в изоляции, с:
iptables -P INPUT DROP
Принять все это:
iptables -P INPUT ACCEPT
Если мы хотим этого весь исходящий трафик от нашей команды принимается:
iptables -P OUTPUT ACEPT
La еще одним радикальным действием было бы стереть все политики из iptables с помощью:
iptables -F
Перейдем к более конкретным правиламПредставьте, что у вас есть веб-сервер, и поэтому трафик через порт 80 должен быть разрешен:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
И если помимо предыдущего правила нам нужна команда с iptables видны только компьютерам в нашей подсети и это остается незамеченным внешней сетью:
iptables -A INPUT -p tcp -s 192.168.30.0/24 --dport 80 -j ACCEPT
В предыдущей строке мы говорим iptables, чтобы добавить правило -A, чтобы входные данные INPUT и протокол TCP через порт 80 были приняты. А теперь представьте, что вы хотите, чтобы я просмотр веб-страниц отклонен для локальных машин, проходящих через машину, на которой запущены iptables:
iptables -t filter -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 DROP
Я думаю, что использование простое, учитывая, для чего предназначен каждый параметр iptables, мы можем добавить простые правила. Вы можете делать все комбинации и правила, которые мы себе представляем ... Чтобы больше не растягивать себя, просто добавьте еще одну вещь, а именно, что при перезапуске машины созданные политики будут удалены. Таблицы перезапускаются и останутся прежними, поэтому, как только вы правильно определите правила, если вы хотите сделать их постоянными, вы должны заставить их запускаться из /etc/rc.local или, если у вас есть Debian или производные, используйте предоставленные нам инструменты (iptables-save, iptables-restore и iptables-apply).
Это первая статья, которую я вижу в IPTABLES, которая, хотя и насыщенна (требует среднего уровня знаний), ПРОДОЛЖАЕТСЯ НА ЗЕРНО.
Я рекомендую всем использовать его как «краткое справочное руководство», так как он очень хорошо сжат и объяснен. 8-)
Я хотел бы, чтобы вы поговорили в будущей статье о том, влияет ли изменение на systemd в большинстве дистрибутивов Linux каким-либо образом на безопасность Linux в целом, и является ли это изменение к лучшему или худшему для будущего и дистрибутивов Linux. Я также хотел бы знать, что известно о будущем devuan (debian без systemd).
Большое спасибо, что вы делаете очень хорошие статьи.
Не могли бы вы сделать статью, объясняющую таблицу mangle?
Заблокировать только Facebook?