13 вопросов на собеседовании по Linux iptables Firewall
Нишита Агарвал, частая посетительница Tecmint, поделилась с нами своим опытом (вопросы и ответы) относительно собеседования, которое она только что дала в частной хостинговой компании в Пуне. , Индия. Ей задавали много вопросов на самые разные темы, однако она является экспертом в iptables и хотела поделиться этими вопросами и полученным ответом (она дала), связанным с iptables, с другими, кто, возможно, собирается это сделать. дать интервью в ближайшем будущем.
Все вопросы и ответы на них переписаны на основе воспоминаний о Нишите Агарвале.
"Здравствуйте друзья! Меня зовут Нисита Агарвал. Я получил степень бакалавра в области технологий. Моя специализация — UNIX, и варианты UNIX (BSD, Linux) очаровывают меня с того момента, как я об этом услышал. Имею опыт работы на складе от 1 года. Я искал смену работы, которая закончилась хостинговой компанией в Пуне, Индия. »
Вот подборка того, что меня спросили во время интервью. Я задокументировал только те вопросы и ответы на них, которые были связаны с iptables, основываясь на моей памяти. Надеюсь, это поможет вам пройти собеседование.
1. Слышали ли вы об iptables и брандмауэре в Linux? Есть идеи, что это такое и для чего используется?
Ответ: Я использую iptables довольно давно и знаю как iptables, так и брандмауэр. Iptables — это прикладная программа, написанная в основном на языке программирования C и выпущенная под лицензией GNU General Public License. Написанная для системного администрирования, последняя стабильная версия iptables 1.4.21.iptables может рассматриваться как межсетевой экран для UNIX-подобной операционной системы, которую можно назвать iptables/netfilter, точнее. Администратор взаимодействует с iptables через консоль/инструменты интерфейса с графическим интерфейсом, чтобы добавлять и определять правила брандмауэра в предопределенные таблицы. Netfilter — это модуль, встроенный в ядро, который выполняет работу по фильтрации.
Firewalld — это последняя реализация правил фильтрации в RHEL/CentOS 7 (может быть реализована в других дистрибутивах, о которых я, возможно, не знаю). Он заменил интерфейс iptables и подключается к netfilter.
2. Использовали ли вы какой-нибудь интерфейсный инструмент с графическим интерфейсом для iptables или командную строку Linux?
Ответ: Хотя я использовал как интерфейсные инструменты на основе графического интерфейса для iptables, такие как Shorewall в сочетании с Webmin в графическом интерфейсе, так и прямой доступ к iptables через консоль.И я должен признайте, что прямой доступ к iptables через консоль Linux дает пользователю огромные возможности в виде более высокой степени гибкости и лучшего понимания того, что происходит в фоновом режиме, если не чего-то еще. Графический интерфейс предназначен для начинающих администраторов, а консоль — для опытных.
3. Каковы основные различия между iptables и firewalld?
Ответ: iptables и firewalld служат той же цели (Фильтрация пакетов), но используют другой подход. В отличие от firewalld, iptables очищает весь набор правил каждый раз при внесении изменений. Обычно конфигурация iptables находится в папке «/etc/sysconfig/iptables», тогда как конфигурация firewalld находится в папке «/etc/firewalld/», которая представляет собой набор XML-файлов. .Настроить firewalld на основе XML проще по сравнению с настройкой iptables, однако ту же задачу можно решить, используя оба приложения для фильтрации пакетов, т. е. iptables и firewalld. Firewalld запускает iptables под своим капотом вместе со своим собственным интерфейсом командной строки и файлом конфигурации, основанным на XML, как указано выше.
4. Если бы у вас была такая возможность, вы бы заменили iptables на firewalld на всех своих серверах?
Ответ: Я знаком с iptables, и он работает, и если нет ничего, что требует динамического аспекта firewalld, похоже, нет смысла переносить всю мою конфигурацию с iptables на firewalld.В большинстве случаев я ни разу не видел, чтобы iptables создавал проблемы. Также общее правило информационных технологий гласит: «Зачем чинить, если оно не сломано». Однако это мое личное мнение, и я бы никогда не возражал против внедрения firewalld, если Организация собирается заменить iptables на firewalld.
5. Кажется, вы уверены в использовании iptables, и плюсом является то, что мы используем iptables на нашем сервере.
Какие таблицы используются в iptables? Дайте краткое описание таблиц, используемых в iptables, и цепочек, которые они поддерживают.
Ответ: Спасибо за признание. Переходя к вопросу: в iptables используются четыре таблицы, а именно:
- Таблица Нат
- Мангл Стол
- Таблица фильтров
- Необработанная таблица
Таблица Nat: таблица Nat в основном используется для трансляции сетевых адресов. IP-адрес замаскированных пакетов изменяется в соответствии с правилами, указанными в таблице. Пакеты в потоке пересекают таблицу Nat только один раз. т. е. если пакет из потока пакетов замаскирован, остальные пакеты в потоке не будут снова проходить через эту таблицу. Рекомендуется не фильтровать в этой таблице. Цепочки, поддерживаемые таблицей NAT, — это цепочка PREROUTING, цепочка POSTROUTING и цепочка OUTPUT.
Таблица искажения: как следует из названия, эта таблица служит для искажения пакетов. Он используется для изменения специальной упаковки. Его можно использовать для изменения содержимого различных пакетов и их заголовков. Стол Mangle нельзя использовать для маскировки. Поддерживаемые цепочки: цепочка PREROUTING, цепочка OUTPUT, прямая цепочка, цепочка INPUT, цепочка POSTROUTING.
Таблица фильтров: Таблица фильтров – это таблица по умолчанию, используемая в iptables. Он используется для фильтрации пакетов. Если правила не определены, таблица фильтров принимается в качестве таблицы по умолчанию и фильтрация осуществляется на основе этой таблицы. Поддерживаемые цепочки: INPUT Chain, OUTPUT Chain, FORWARD Chain.
Необработанная таблица: Необработанная таблица вступает в действие, когда мы хотим настроить пакеты, которые были исключены ранее. Он поддерживает цепочки PREROUTING и OUTPUT Chain.
6. Каковы целевые значения (которые можно указать в target) в iptables и что они делают, коротко!
Ответ: Ниже приведены целевые значения, которые мы можем указать в target в iptables:
- ACCEPT: принять пакеты.
- QUEUE: пакет Paas в пространство пользователя (место, где находятся приложение и драйверы).
- DROP: отбросить пакеты.
- RETURN: вернуть управление цепочке вызовов и прекратить выполнение следующего набора правил для текущих пакетов в цепочке.
7. Давайте перейдем к техническим аспектам iptables, под техническими я подразумеваю практические.
Как вы будете проверять iptables rpm, необходимый для установки iptables в CentOS?
Ответ: iptables rpm включены в стандартную установку CentOS, и нам не нужно устанавливать их отдельно. Мы можем проверить частоту вращения следующим образом:
rpm -qa iptables
iptables-1.4.21-13.el7.x86_64
Если вам нужно установить его, вы можете сделать yum, чтобы получить его.
yum install iptables-services
8. Как проверить и убедиться, что служба iptables работает?
Ответ: Чтобы проверить статус iptables, вы можете запустить следующую команду на терминале.
service iptables status [On CentOS 6/5]
systemctl status iptables [On CentOS 7]
Если он не запущен, можно выполнить приведенную ниже команду.
---------------- On CentOS 6/5 ----------------
chkconfig --level 35 iptables on
service iptables start
---------------- On CentOS 7 ----------------
systemctl enable iptables
systemctl start iptables
Мы также можем проверить, загружен ли модуль iptables или нет, например:
lsmod | grep ip_tables
9. Как вы будете просматривать текущие правила, определенные в iptables?
Ответ: Текущие правила в iptables можно просмотреть просто:
iptables -L
Пример вывода
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
10. Как сбросить все правила iptables или конкретную цепочку?
Ответ: Чтобы очистить определенную цепочку iptables, вы можете использовать следующие команды.
iptables --flush OUTPUT
Сбросить все правила iptables.
iptables --flush
11. Добавьте в iptables правило для приема пакетов с доверенного IP-адреса (скажем, 192.168.0.7).
Ответ: Описанный выше сценарий можно реализовать, просто выполнив приведенную ниже команду.
iptables -A INPUT -s 192.168.0.7 -j ACCEPT
Мы можем включить в исходный код стандартную косую черту или маску подсети следующим образом:
iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT
iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
12. Как добавить правила для службы ACCEPT, REJECT, DENY и DROP ssh в iptables.
Ответ: Надеясь, что ssh работает на порту 22, который также является портом по умолчанию для ssh, мы можем добавить правило в iptables следующим образом:
Чтобы ПРИНЯТЬ TCP-пакеты для службы SSH (порт 22).
iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT
Чтобы ОТКЛОНИТЬ TCP-пакеты для службы SSH (порт 22).
iptables -A INPUT -s -p tcp --dport 22 -j REJECT
Чтобы DENY TCP-пакеты для службы ssh (порт 22).
iptables -A INPUT -s -p tcp --dport 22 -j DENY
Чтобы ОТКАЗАТЬ TCP-пакеты для службы SSH (порт 22).
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Позвольте мне представить вам сценарий. Допустим, есть машина, локальный IP-адрес которой — 192.168.0.6. Вам необходимо заблокировать подключения к порту 21, 22, 23 и 80 к вашему компьютеру. Что вы будете делать?
Ответ: Ну, все, что мне нужно использовать, это опция «multiport» с iptables, за которой следуют номера портов, которые нужно заблокировать, и описанный выше сценарий может быть реализован за один раз, как .
iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP
Написанные правила можно проверить с помощью команды ниже.
iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
DROP tcp -- 192.168.0.6 anywhere multiport dports ssh,telnet,http,webcache
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Интервьюер: Это все, что я хотел спросить. Вы ценный сотрудник, которого мы не хотим упустить. Я порекомендую ваше имя HR. Если у вас есть какие-либо вопросы, вы можете задать мне.
Как кандидат, я не хотел прерывать разговор, поэтому продолжаю спрашивать о проектах, которыми я буду заниматься, если меня выберут, и какие еще вакансии есть в компании. Не говоря уже о том, что взломать HR-раунд было несложно, и у меня появилась такая возможность.
Также я хотел бы поблагодарить Авишека и Рави (с которыми я давний друг) за то, что нашли время задокументировать мое интервью.
Друзья! Если бы вы давали такое интервью и хотели бы поделиться своим опытом с миллионами читателей Tecmint по всему миру? затем отправляйте свои вопросы и ответы на адрес [email или вы можете поделиться своим опытом собеседования, используя следующую форму.
Спасибо! Оставайтесь на связи. Также дайте мне знать, мог ли я ответить на вопрос более правильно, чем то, что я сделал.