Wyszukiwanie w witrynie

13 pytań do rozmowy kwalifikacyjnej na temat zapory ogniowej iptables w systemie Linux


Nishita Agarwal, częsta Odwiedzająca Tecmint, podzieliła się z nami swoimi doświadczeniami (pytania i odpowiedzi) dotyczącymi rozmowy kwalifikacyjnej, którą właśnie przeprowadziła w prywatnej firmie hostingowej w Pune , Indie. Zadano jej wiele pytań na różne tematy, jednak jest ekspertem w dziedzinie iptables i chciała podzielić się tymi pytaniami i odpowiedziami (które udzieliła) związanymi z iptables innym osobom, które mogą mieć zamiar udzielić wywiadu w najbliższej przyszłości.

Wszystkie pytania i odpowiedzi zostały napisane na nowo w oparciu o wspomnienia Nishity Agarwal.

"Cześć przyjaciele! Nazywam się Nishita Agarwal. Zdobyłem tytuł licencjata w dziedzinie technologii. Moją specjalizacją jest UNIX, a warianty UNIX (BSD, Linux) fascynują mnie od chwili, gdy to usłyszałem. Mam ponad 1-letnie doświadczenie w magazynowaniu. Szukałem zmiany pracy i zakończyłem się pracą w firmie hostingowej w Pune w Indiach. ”

Oto zbiór pytań, o które mnie zapytano podczas rozmowy kwalifikacyjnej. O ile pamiętam, udokumentowałem tylko te pytania i odpowiedzi, które były związane z iptables. Mam nadzieję, że pomoże ci to w przełamaniu rozmowy kwalifikacyjnej.

1. Czy słyszałeś o iptables i zaporze sieciowej w systemie Linux? Masz pomysł, czym one są i do czego służą?

Odpowiedź: Używam iptables od dłuższego czasu i znam zarówno iptables, jak i zaporę ogniową. Iptables to aplikacja napisana głównie w języku programowania C i wydawana na licencji GNU General Public License. Napisane z punktu widzenia administratora systemu, najnowsza stabilna wersja iptables 1.4.21.iptables może być uważana za zaporę ogniową dla systemu operacyjnego typu UNIX, który można nazwać iptables/netfilter, dokładniej. Administrator współpracuje z iptables za pośrednictwem narzędzi konsoli/GUI, aby dodawać i definiować reguły zapory ogniowej w predefiniowanych tabelach. Netfilter to moduł wbudowany w jądro, którego zadaniem jest filtrowanie.

Firewalld to najnowsza implementacja reguł filtrowania w RHEL/CentOS 7 (może być zaimplementowana w innych dystrybucjach, o których mogę nie wiedzieć). Zastąpił interfejs iptables i łączy się z netfilter.

2. Czy korzystałeś z jakiegoś narzędzia opartego na graficznym interfejsie użytkownika dla iptables lub wiersza poleceń systemu Linux?

Odpowiedź: Chociaż używałem obu narzędzi front-end opartych na GUI dla iptables, takich jak Shorewall w połączeniu z Webminem w GUI i bezpośredniego dostępu do iptables przez konsolę.I muszę przyznać, że bezpośredni dostęp do iptables poprzez konsolę Linux daje użytkownikowi ogromną moc w postaci większej elastyczności i lepszego zrozumienia tego, co dzieje się w tle, jeśli nie czegokolwiek innego. GUI jest przeznaczone dla początkującego administratora, a konsola dla doświadczonych.

3. Jakie są podstawowe różnice pomiędzy iptables a zaporą ogniową?

Odpowiedź: iptables i firewalld służą temu samemu celowi (Filtrowanie pakietów), ale mają inne podejście. iptables opróżnia cały zestaw reguł za każdym razem, gdy zostanie dokonana zmiana, w przeciwieństwie do firewallda. Zazwyczaj lokalizacja konfiguracji iptables znajduje się w „/etc/sysconfig/iptables”, podczas gdy konfiguracja zapory ogniowej znajduje się w „/etc/firewalld/”, który jest zestawem plików XML .Konfiguracja zapory sieciowej opartej na XML jest łatwiejsza w porównaniu z konfiguracją iptables, jednak to samo zadanie można wykonać zarówno przy użyciu aplikacji do filtrowania pakietów, tj. iptables, jak i zapory ogniowej. Firewalld uruchamia pod swoją maską iptables wraz z własnym interfejsem wiersza poleceń i plikiem konfiguracyjnym opartym na XML, jak wspomniano powyżej.

4. Czy gdybyś miał szansę, zamieniłbyś iptables na zaporę ogniową na wszystkich swoich serwerach?

Odpowiedź: Znam iptables i działa, a jeśli nie ma niczego, co wymagałoby dynamicznego aspektu zapory ogniowej, nie wydaje się powodu, aby migrować całą moją konfigurację z iptables do zapory ogniowej.W większości przypadków jak dotąd nigdy nie widziałem, żeby iptables powodowało problemy. Również ogólna zasada technologii informatycznych mówi: „po co naprawiać, jeśli nie jest zepsute”. Jednakże jest to moja osobista myśl i nie miałbym nic przeciwko zaimplementowaniu zapory ogniowej, jeśli Organizacja zamierza zastąpić iptables zaporą ogniową.

5. Wydaje się, że znasz iptables, a plusem jest to, że używamy iptables na naszym serwerze.

Jakich tabel używa się w iptables? Podaj krótki opis tabel używanych w iptables i obsługiwanych przez nie łańcuchów.

Odpowiedź: Dziękujemy za uznanie. Przechodząc do części z pytaniami, w iptables używane są cztery tabele, a mianowicie:

  1. Stół Nat
  2. Stół Mangle
  3. Tabela filtrów
  4. Surowy stół

Tabela Nat: tabela Nat jest używana głównie do translacji adresów sieciowych. Pakiety zamaskowane otrzymują adres IP zmieniany zgodnie z zasadami podanymi w tabeli. Pakiety w strumieniu przechodzą przez tabelę Nat tylko raz. tj. jeśli pakiet ze strumienia Pakietów zostanie zamaskowany, pozostałe pakiety w strumieniu nie będą ponownie przechodzić przez tę tabelę. Zaleca się, aby nie filtrować w tej tabeli. Łańcuchy obsługiwane przez tabelę NAT to łańcuch PREROUTING, łańcuch POSTROUTING i łańcuch OUTPUT.

Tabela Mangle: Jak sama nazwa wskazuje, ta tabela służy do manipulowania pakietami. Służy do zmiany pakietu specjalnego. Można go używać do zmiany zawartości różnych pakietów i ich nagłówków. Stół Mangle nie może być używany do Maskarady. Obsługiwane łańcuchy to Łańcuch PREROUTING, Łańcuch OUTPUT, Łańcuch Forward, Łańcuch INPUT, Łańcuch POSTROUTING.

Filtruj tabelę: Filtruj tabelę to domyślna tabela używana w iptables. Służy do filtrowania pakietów. Jeśli nie zdefiniowano żadnych reguł, Tabela filtrów jest traktowana jako tabela domyślna i na podstawie tej tabeli odbywa się filtrowanie. Obsługiwane łańcuchy to łańcuch INPUT, łańcuch OUTPUT i łańcuch FORWARD.

Tabela surowa: Tabela surowa zaczyna działać, gdy chcemy skonfigurować pakiety, które wcześniej zostały wyłączone. Obsługuje łańcuch PREROUTING i łańcuch OUTPUT.

6. Jakie są wartości docelowe (które można określić w target) w iptables i co one robią, napisz krótko!

Odpowiedź: Poniżej znajdują się wartości docelowe, które możemy określić w target w iptables:

    1. AKCEPTUJ: Akceptuj pakiety
    2. KOLEJKA: Pakiet Paas do przestrzeni użytkownika (miejsca, w którym znajdują się aplikacje i sterowniki)
    3. DROP: upuść pakiety
    4. POWRÓT: Przywróć kontrolę do łańcucha wywołującego i zaprzestań wykonywania następnego zestawu reguł dla bieżących pakietów w łańcuchu.
7. Przejdźmy do technicznych aspektów iptables, przez techniczne mam na myśli praktyczne.

Jak sprawdzić obroty iptables wymagane do zainstalowania iptables w CentOS?.

Odpowiedź: iptablesrpm są zawarte w standardowej instalacji CentOS i nie musimy instalować ich osobno. Obroty możemy sprawdzić w następujący sposób:

rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Jeśli chcesz go zainstalować, możesz zrobić mniam, aby go zdobyć.

yum install iptables-services
8. Jak sprawdzić i upewnić się, że usługa iptables jest uruchomiona?

Odpowiedź: Aby sprawdzić stan iptables, możesz uruchomić na terminalu następujące polecenie.

service iptables status			[On CentOS 6/5]
systemctl status iptables			[On CentOS 7]

Jeśli nie jest uruchomiony, można wykonać poniższe polecenie.

---------------- On CentOS 6/5 ---------------- 
chkconfig --level 35 iptables on
service iptables start

---------------- On CentOS 7 ---------------- 
systemctl enable iptables 
systemctl start iptables 

Możemy również sprawdzić, czy moduł iptables jest załadowany, czy nie, jako:

lsmod | grep ip_tables
9. Jak przejrzysz aktualne Reguły zdefiniowane w iptables?

Odpowiedź: Bieżące reguły w iptables można sprawdzić w prosty sposób:

iptables -L

Przykładowy wynik

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. Jak opróżnisz wszystkie reguły iptables lub konkretny łańcuch?

Odpowiedź: Aby opróżnić konkretny łańcuch iptables, możesz użyć następujących poleceń.

 
iptables --flush OUTPUT

Aby opróżnić wszystkie reguły iptables.

iptables --flush
11. Dodaj regułę w iptables, aby akceptować pakiety z zaufanego adresu IP (powiedzmy 192.168.0.7)

Odpowiedź: Powyższy scenariusz można osiągnąć po prostu uruchamiając poniższe polecenie.

iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Możemy dołączyć standardowy ukośnik lub maskę podsieci w źródle jako:

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. Jak dodać reguły do usługi AKCEPTUJ, ODRZUCAJ, ODMÓW i USUŃ ssh w iptables.

Odpowiedź: Mając nadzieję, że ssh działa na porcie 22, który jest także domyślnym portem dla ssh, możemy dodać regułę do iptables jako:

Aby AKCEPTOWAĆ pakiety TCP dla usługi ssh (port 22).

iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 

Aby ODRZUT pakiety TCP dla usługi ssh (port 22).

iptables -A INPUT -s -p tcp --dport 22 -j REJECT

Aby ODMÓW pakietom TCP dla usługi ssh (port 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DENY

Aby URZUĆ pakiety TCP dla usługi ssh (port 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Pozwól, że przedstawię ci scenariusz. Załóżmy, że istnieje komputer, którego lokalny adres IP to 192.168.0.6. Musisz zablokować połączenia na portach 21, 22, 23 i 80 ze swoją maszyną. Co zrobisz?

Odpowiedź: Wszystko, czego potrzebuję, to opcja „multiport” z iptables i numerami portów, które mają zostać zablokowane, a powyższy scenariusz można osiągnąć za jednym razem, ponieważ .

iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP

Spisane reguły można sprawdzić za pomocą poniższego polecenia.

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

Prowadzący wywiad: Tylko o to chciałem zapytać. Jesteś cennym pracownikiem, za którym nie będziemy tęsknić. Polecę Twoje nazwisko działowi HR. Jeśli masz jakieś pytanie, możesz je zadać.

Jako kandydat nie chciałem przerywać rozmowy, dlatego ciągle pytam o projekty, którymi będę się zajmował, jeśli zostanę wybrany, i jakie są inne wolne stanowiska w firmie. Nie wspominając, że runda HR nie była trudna do przejścia, a ja dostałem szansę.

Chciałbym także podziękować Avishekowi i Raviemu (którego jestem przyjacielem od dawna) za poświęcenie czasu na udokumentowanie mojego wywiadu.

Przyjaciele! Jeśli udzieliłeś takiego wywiadu i chciałbyś podzielić się wrażeniami z wywiadu z milionami czytelników Tecminta na całym świecie? następnie wyślij swoje pytania i odpowiedzi na adres [email  lub możesz przesłać swoje wrażenia z rozmowy kwalifikacyjnej, korzystając z poniższego formularza.

Dziękuję! Bądź w kontakcie. Daj mi również znać, czy mogłem odpowiedzieć na pytanie lepiej niż to, co zrobiłem.