再谈 iptables 防火墙的 指令配置


手机上使用localhost为什么不能访问?

  • 电脑上使用localhost 访问主页的原理是 电脑上有网站资源和服务器相关程序apache等的支持, 同时在 电脑的hosts文件中 有 127.0.0.1 到localhost的映射

. 而手机上的hosts文件中 是没有 这样的映射的,即使有,也不可以使用localhost,因为手机本机上并没有网站资源和apache等. 只有创建 localhost 到 电脑主机对

应的服务器的ip地址 之间的映射, 才有可能访问.

  1. wap和http的区别?
    以前的非智能手机(功能机), 只能访问wap的网站,(这种wap要专门写,跟html的网站不同). 而现在的只能机都能直接访问http协议了.所以, 即使你开发阶段部署在本

地局域网中的服务器上的站点, 也可以用 手机进行测试了.
只要 你的手机和服务器 在 局域网的 同一网段 比如192.168.1.* ,那么在手机中输入http://...地址都是可以访问到的.

为什么手机不能访问局域网中同一网段的linux服务器?

  • 手机访问 win的服务器基本没有问题
  • 如果不能访问linux的话, 通常是因为 selinux和防火墙. 暂时关闭selinux和防火墙firewalld. 一般来说,暂时关闭这两个后 都可以访问.
  • 或者精准设置 iptables (iptables 本身是ip规则过滤系统而已, 相当于 交换机/路由器上的acl)但是可以用它来做防火墙.
iptables (什么链input还是output) (源的限制, -s ... -p) (目标的限制, -dport ...)   (动作 -j accept 还是 deny?)

bs其实也不难, 因为常见的常用的bs/html元素, 标签也就那些, 也就那么几个. 你把那些 常用的用法搞清楚就好了.

整个bs包括四个部分: css优化, bs组件, javascript组件, bs扩展


要区别三种形式的表单: 普通表单, inline内联表单(.form-inline, 所有的表单组件都在同一行显示), 水平表单(这个是相对于垂直的普通表单而言的,即每一

个.form-group中的 label和对应的input等控件放在同一行, 但是不同的组是放在不同行的, 水平表单 要结合 .form-horizontal 和布局.col-md-? 来使用.

表单的checkbox和radio跟其他input控件有所不同, bs的选择按钮, 相应的类不是放在input上,而是放在 div,或 label上.
而且选择按钮 都是 input在前, 提示文字在后.
普通的选择按钮的类是放在 div上, 而内联的选择按钮的类是放在 label上:
label中的for, 可以是对于后面的input控件的 name, 也可以是控件的id.

<div class="checkbox">
    <label for="some-check">
    <input type="checkbox" id="some-check" value="1">选项1
    </label>
</div>


内联选择按钮
<div>
    <label class="col-md-2 checkbox-inline" for="some-check">
    <input type="checkbox" id="some-check" value="1">选项1
    </label>
</div>

要区分选择框的单项和多选框的区别?

  • 单选是一个 倒三角形和下拉列表
  • 而多选是所有选项 直接 全部显示出来的

bootstrap 使用哪一个版本: v3.3.?(可能是 v3.3.5, 还是 v3.3.7)


关于iptables的使用?

  1. 在实际工作中 配置iptables, 往往并不是一个命令一个命令的输入, 而是写成一个script的sh脚本, 在脚本的最后 用 /etc/init.d/iptables-save 写入到

iptables的配置文件(/etc/sysconfig/iptables)中.
利用脚本, 可以将复杂的/ 大量内容的脚本, 分成几个独立的 小文件, 有诸多好处, 最后主脚本可以 (调用/呼叫/引用)其他脚本文件:

if [ -f  other-foo-related.sh ]; then
    sh other-foo-related.sh
fi
  1. iptables中的一些选项 字母的意思
  • 通常来说都有对应的单词(首字母), 当然也不actually/absolutely. 有时候有些快捷字母/快捷键, 是出于 一些习惯/ 便于操作 / 与历史兼容等原因
  • -j是 --jump 后面的 ACCEPT|DROP|REJECT|LOG 是target(是目标, (所谓目标就是一些 规则的集合 规则序列, 规则的盒子, 是系统预先定义好了的) 可以理解为

是 相应的控制列表 , 比如有 Accept的控制列表, 或者说有 Accept的过滤规则集合 规则序列. 所以 jump 到这些target 就是把这条规则 "放到" 相应的规则序列的

最后/或开头.

  • A 是 Append追加, 将新的规则放在 规则target的最后, 而I则是insert 是插入, 是将新的规则放在目标的最前面
    -s 表示源地址机器, 可以单个的ip也可以是一个网域, 网域的表示可以用 子网掩码的数字,也可以用255.来表示, 比如: 192.168.1.0/24 和

192.168.1.0/255.255.255.0 都是可以的. 都要在中间加斜杠.

  • --sport 是表示源机器的 端口. --dport 表示目的机器的端口. 端口号 可以用数字和 服务名称表示,比如: --dport 21 和 --dport ftp都是可以的 要注意使

用端口的时候, 一定要指明 前面使用的协议 ,比如 -p tcp
端口号可以使用 连续的范围表示, 比如: 一般客户端访问外部的端口号都是在 1024以上, 所以如果端口号是1:1023的包都可以拒绝. `iptables -A INPUT -p tcp

--sport 1:1023 -j DROP `
但是一条命令中, 只能规定一个 单独的端口号, 几个分散的端口号不能写在一条命令中, 要写多条命令来实现.

  • --syn 表示的主动联机的 标志. 如果是外部客户端机器 的 小于1024的端口号 主动联机的 话, 则要拒绝: `iptables -A INPUT -p tcp --sport 1:1023 --syn

-j DROP `

  • iptables 中, 可以使用的在第三层的封包的协议 有tcp udp icmp 或者all. 对tcp udp 的过滤, 主要是基于端口, 而icmp的过滤是基于 icmp

的封包类型, icmp中的封包类型较多, 其中 类型 8 表示的是 "echo request" 即对外部来的ping命令给予回应. 所以如果要保护服务器, 不让外部机器知道有这样的

服务器, (屏蔽ping) 就是 对 INPUT链的 -p icmp --icmp-type 8 -j DROP.

-m 表示的是module ,iptables的外挂模块, 主要有 state状态模块,和 mac 硬件地址模块. 可以简化iptables的配置. 提供了另外一种配置思路, 比如不必一个一个

地配置 外部/远程服务器到 本地机器的 包允许, 那样的话工作量太大, 也不大现实. 所以就可以用 state模块来处理: --state 有 INVALID NEW RELATED

ESTABLISHED 四种, 后面两种表示 如果一个进来的包 (他的状态) 是 本地机器 发起到远程服务器的请求的 响应包, 那么就应该放行, 所以要accept. 如果是无效

的包 invalid, 就要drop. `iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state INVALID -j DROP

`
而mac 外挂模块 则可以基于 机器的mac地址 进行过滤, 阻止(这个可以针对 使用 软件进行 伪造 ip地址的包 绕过防火墙 的行为 进行阻截).

-i eth0 或 -o eth0 表示 数据从从哪个接口 进入或从哪个接口出去. i表示input, o表示 output出去.

总之,iptables的内容很多,也很复杂, 但是你掌握最常用的 最主要的内容就好了. 比如对input链的配置过滤. 其实就相当于 一个ACL. 也不是太难. 因此, 也就

没有必要将防火墙 一关了之. 可以对他进行配置的.

iptables 的内容 大的方面来说,主要有三个表 filter, nat, mangle表. 而对访问控制的主要就是 filter(这个过滤表,也是默认的表, 即不指定-t TABLENAME的时候

).
filter表有三个链 (即三个进出方向), INPUT OUTPUT FORWARD. 通常 output和forward链都是accept的, 因为这两个链对本地机器通常没有伤害. 主要是 配置指定

input链.


具体对iptables 的配置步骤

  1. 首先是查看, iptables -nv -L (-n表示不翻译/不解析成hostname. -v表示详情verbos)
    也可以用 iptables-save查看?

  2. 清除原有的内容:
    iptables -F (清除默认的政策policy)
    iptalbes -X(清除用户自定义的规则)
    iptables -Z( 将数据清零)

  3. 建立默认的/总的 原则(政策) , 用 -P选项(这里的P表示 Policy政策, 即当封包 没有自定义规则匹配的时候, 就按这里的 "政策" 执行)
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT // 所以 通常只是配置input莲, 你所看到的大多是input莲的过滤.

  4. 默认 的格式: iptables [-AI] INPUT [-io eth0] [-p 协议tcp udp icmp all] [-s !source] [-d !destionation 感叹号表示否定 非] [--sport / --dport

/--icmp-type ...] -j ACCEPT|DROP|REJECT|LOG

log是记录在系统的核心消息文件 /var/log/messages 中.

  1. 信任装置?
    就是在iptables命令中, 凡是没有设置的内容/项目, 表示 "全都接受" , 这就是所谓的 信任装置.

可以用来修改ip地址或mac地址的黑客软件是什么?

iptables也是一个服务吗?

  • 可以用systemctl status iptables 来查看吗?
  • 可以用chkconfig --list iptables 来查看?
    可以直接修改 /etc/sysconfig/iptables 这个文件来 配置防火墙吗?
优质内容筛选与推荐>>
1、redis的安装和使用
2、disable copy/paste
3、Android 滑动效果入门篇(一)—— ViewFlipper
4、ArcGIS二次开发之读取遥感图像像素值的做法
5、普通文件操作


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号