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:
- Stół Nat
- Stół Mangle
- Tabela filtrów
- 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:
- AKCEPTUJ: Akceptuj pakiety
- KOLEJKA: Pakiet Paas do przestrzeni użytkownika (miejsca, w którym znajdują się aplikacje i sterowniki)
- DROP: upuść pakiety
- 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.