Nishita Agarwal分享了她在Linux iptables防火墙上的采访经验

Nishita Agarwal,一个频繁的Howtoing访客想分享她的经验关于一些有趣的Linux防火墙'iptables'(问题和答案)与我们

西田阿加瓦尔 ,经常Howtoing参观者与我们分享了有关面试她刚刚在印度 浦那一家私人拥有的托管公司给予她的经验(答问)。 她被问过很多关于各种主题的问题,但她是在iptables的专家,她想分享这些问题和他们的答案(她给)与iptables来其他人谁可能去给面试不久的将来。

Linux防火墙Iptables面试问题

所有的问题和他们的答案是根据西田阿加瓦尔的记忆重写。

“你好朋友! 我的名字是西田阿加瓦尔 我有追求学士学位的技术。 我的专业领域是UNIX和UNIX的变种(BSD,Linux)从我听到它的时候着迷我。 我有1年多的存储经验。 我正在寻找一个工作变化,结束与在印度浦那的一家托管公司。

这里是我在采访中被问到的集合。 我只记录那些问题和他们的答案,基于我的记忆与iptables有关。 希望这将有助于你打破你的面试。

你听说过Linux中的iptables和防火墙吗? 任何想法,他们是什么和它的用途?
答: 我一直在使用iptables的相当长一段时间,我知道这两个iptables和防火墙。 Iptables是一个大多用C编程语言编写的应用程序,并在GNU通用公共许可证下发布。 写给角度系统管理点,最新的稳定版本,如果iptables的1.4.21。iptables的可以被认为是防火墙的类UNIX操作系统,它可以被称为iptables的 / netfilter的 ,更准确。 管理员通过控制台/ GUI前端工具与iptables交互,在预定义的表中添加和定义防火墙规则。 Netfilter是在内核中构建的一个模块,它完成过滤的工作。

Firewalld是最新实施的RHEL / CentOS 7过滤规则(可在我可能不知道其他分布来实现)。 它已经替换了iptables接口并连接到netfilter。

2.您是否为iptables或Linux命令行使用了一些基于GUI的前端工具?
答: 虽然我既用于象iptables的基于GUI前端工具的shorewall中的共轭Webmin的 ,在图形用户界面,并通过直接访问控制台和iptables我必须承认,通过Linux控制台的直接访问的iptables给出了用户巨大的权力形式的更高程度的灵活性和更好地了解什么是在后台,如果没有什么其他。 GUI是为新手管理员,而控制台是为有经验的。
3. iptables和firewalld之间的基本区别是什么?
:iptables 和firewalld有异曲同工之妙( 包过滤 ),但不同的方法。 iptables每次刷新整个规则集一次改变不像firewalld。 通常iptables配置的位置位于在'/等/ sysconfig中/ iptables的 '而firewalld配置在于在'/等/ firewalld /“,这是一组XML文件。配置相比的iptables结构的基于XML firewalld更容易,但是可以使用分组过滤应用程序ie,iptables和firewalld来实现相同的任务。 Firewalld在其引擎下运行iptables以及它自己的命令行界面和基于XML的配置文件,如上所述。
你会替换iptables的firewalld在所有的服务器,如果给一个机会?
答: 我所熟悉的iptables和它的工作,如果有什么需要firewalld动态方面,似乎没有理由从iptables来firewalld迁移我所有的配置在大多数情况下,到目前为止,我从来没有见过的iptables创建一个问题。 此外,信息技术的一般规则说“如果它不坏了,为什么要解决”。 但是这是我个人的想法,如果组织要用firewalld替换iptables,我不会介意实现firewalld。
你似乎对iptables有信心,加分也是我们在我们的服务器上使用iptables。

iptables中使用的表是什么? 给出iptables中使用的表及其支持的链的简要描述。

谢谢你的认可。 移动到问题部分,在iptables中使用了四个表,即它们是:
  1. Nat表
  2. Mangle表
  3. 过滤表
  4. 原料表

NAT表 :NAT表主要用于网络地址转换。 伪装的数据包根据表中的规则更改其IP地址。 流中的分组仅遍历Nat表一次。 即,如果来自Packets的一个包的包是伪装的,则流中的其余包将不再遍历该表。 建议不要在此表中过滤。 NAT支持的链表是PREROUTING链,POSTROUTING链和OUTPUT链。

裂伤表 :顾名思义,这个表服务于重整的包。 它用于特殊包装更改。 它可以用于更改不同数据包及其头文件的内容。 魔术表不能用于伪装。 支持链是PREROUTING链,OUTPUT链,正向链,INPUT链,POSTROUTING链。

筛选表 :filter表iptables中使用的默认表。 用于过滤报文。 如果未定义任何规则,则将Filter Table视为默认表,并根据此表进行过滤。 支持链是INPUT链,OUTPUT链,FORWARD链。

原始表 :原始表进入操作时,我们要配置,较早免除包。 它支持PREROUTING链和OUTPUT链。

6. iptables中的目标值(可以在目标中指定)是什么,它们做什么,简短!
答: 以下是我们能在iptables的靶指定目标值:
    1. 接受 :接受包
    2. 队列 :PAAS包到用户空间(地方应用和驱动程序驻留)
    3. DROP:丢弃数据包
    4. RETURN:返回控制调用链和停止执行下一组规则链当前的数据包。

7.让我们转向iptables的技术方面,通过技术我意味着实用。

如何检查在CentOS中安装iptables所需的iptables rpm。

:iptables 的RPM都包含在标准安装CentOS的,我们并不需要单独安装。 我们可以检查rpm:
# rpm -qa iptables
iptables-1.4.21-13.el7.x86_64

如果你需要安装它,你可以做yum得到它。

# yum install iptables-services
8.如何检查和确保iptables服务是否正在运行?
答: 要检查的iptables的状态,您可以运行在终端上执行以下命令。
# service status iptables			[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.如何在iptables中向ACCEPT,REJECT,DENY和DROP ssh服务添加规则。
答: 希望能SSH在端口22,这也是SSH的默认端口上运行,我们可以添加规则的iptables为:

接受 SSH服务(22端口)的TCP数据包。

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

拒绝对SSH服务(22端口)的TCP数据包。

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

拒绝为SSH服务(22端口)的TCP数据包。

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

放弃对SSH服务(22端口)的TCP数据包。

 
# iptables -A INPUT -s -p tcp --dport 22 -j DROP
让我给你一个场景。 说有一台机器的本地IP地址是192.168.0.6。 您需要阻止端口21,22,23和80上的连接到您的计算机。 你会怎么做?
答: 嗯,我需要用的就是使用iptables后面的端口号进行封锁,上面的场景可以在单个go作为实现了“ 多端口 ”选项。
# 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轮不难破解,我有机会。

此外,我要感谢Avishek拉维 (其中我一个朋友长期以来)进行拍摄记录我的采访时间。

朋友们!如果你已给予这样的采访,你想分享你的面试经验,以全球数百万Howtoing读者? 然后把你的问题和答案,admin@howtoing.com或者您可以使用以下格式提交您的面试经历。

谢谢! 保持连接。 还让我知道,如果我能回答一个问题比我做的更正确。