zoukankan      html  css  js  c++  java
  • 再谈 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 这个文件来 配置防火墙吗?
  • 相关阅读:
    I.MX6 简单电路模拟USB设备的插入
    I.MX6 查看baudrate确定是否被其他程序占用
    I.MX6 Ethernet MAC (ENET) MAC Address hacking
    I.MX6 MAC Address 导致的系统崩溃
    I.MX6 U-boot编译找不到用户目录
    I.MX6 i2c_data_write_byte ioctl error: I/O error
    I.MX6 Android shutdown shell command
    Where Are You Standing?
    byte[]和InputStream的相互转换
    jsp 获取cookie 的值的方法
  • 原文地址:https://www.cnblogs.com/bkylee/p/9145705.html
Copyright © 2011-2022 走看看