Поиск по сайту:

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 используются четыре таблицы, а именно:

  1. Таблица Нат
  2. Мангл Стол
  3. Таблица фильтров
  4. Необработанная таблица

Таблица 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:

    1. ACCEPT: принять пакеты.
    2. QUEUE: пакет Paas в пространство пользователя (место, где находятся приложение и драйверы).
    3. DROP: отбросить пакеты.
    4. 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  или вы можете поделиться своим опытом собеседования, используя следующую форму.

Спасибо! Оставайтесь на связи. Также дайте мне знать, мог ли я ответить на вопрос более правильно, чем то, что я сделал.