Iptables小结1

iptables
   
   安全控制低到高策略大致为:
   1)防火墙(又分为包过滤防火墙,代理防火墙)
    包过滤防火墙又分为简单的包过滤防火墙,和基于状态检测的包过滤防火墙
   2)tcp_wrappers(tcp包装器)它工作在OSI七层模型中的四层以上,但它只能够防护连接到这个库上的软件。
     #所有连接到libwrap.so库的服务将被tcp_wrappers代为监听
     #cd  /etc/xinetd.d/切换到此目录下可进行查看被tcp_wrappers代为管理的服务
   3)xinetd(超级守护进程,它本身管理了很多非独立守护进程)
    #在/etc/xinetd.conf中定义了非独立守护进程的控制方式
    #在/etc/xinetd.d/为了方便管理在它中来写服务配置文件
   4)Pluggable Authentication Modules(对用户提供的用户密码做认证的)
   5)Security Enhanced Linux(控制活动范围selinux)
   6)Service  Specific(某个服务特定的安全访问控制)规则)
   7)Application Hardening(对应用程序的加固),它即可基于软件软件来实现,也可给基于硬件来实现
 tcp/ip选择了五个点用来检查数据包,这5个点成为5个链,ipchain用来生成包过滤过规则的。
    这5个链分别如下: INPUT , OUTPUT , FORWARD , PREROUTING , POSTING 
    iptables的规则格式:
    iptables  [-t  table ]  COMMAND  chains  [NUM]  [match condition]  [-j ]
    具体如下
     iptables [-t table] -[AD] chain rule-specification [options]
    iptables [-t table] -I chain [rulenum] rule-specification [options]
    iptables [-t table] -R chain rulenum rule-specification [options]
    iptables [-t table] -D chain rulenum [options]
      iptables [-t table] -[LFZ] [chain] [options]
    iptables [-t table] -N chain
    iptables [-t table] -X [chain]
    iptables [-t table] -P chain target [options]
    iptables [-t table] -E old-chain-name new-chain-name
   其中“-t”用来指定转换类型
    table表有:
  【filter(定义包过滤的)包含的链:INPUT , OUTPUT , FORWARD
  【nat  (那天转换)包含的链:PREROUTING , POSTROUTING , OUTPUT
  【mangle含所有的链
   链中规则操作命令主要对链中规则进行管理的,具体命令如下:
  【-A   在链尾部追加一个新规则
  【-I  [N]   插入一条新规则,也可指定插入第几条
  【-R  N   替换木条规则
  【-D  [N]  删除第几条规则
   对链做管理:
 【-F   清空规则
 【-P   改默认策略
 【-N  用户自定义一条新链
 【-X  用来删除用户自定义的空链
 【-E  重命名用户定义的某条链
 【-Z  清空计数器的
 链查看:
 【-L  查看某条链中的所有规则,“-L 的子命令如下:
      (-n 用ip地址格式来显示源地址目标地址
      (-v显示详细信息
       (-vv显示更的详细
       (-x不做单位换算直接显示其精确值得
      (--line-number显示行号
   [root@station10 ~]# iptables -L --line-number -vxn
Chain INPUT (policy ACCEPT 377808 packets, 121144840 bytes)
n u m  pkts   bytes target   prot opt in   out    source               destination         
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num      pkts      bytes target     prot opt in     out     source               destination         
Chain OUTPUT (policy ACCEPT 505 packets, 41676 bytes)
num      pkts      bytes target     prot opt in     out     source               destination         
 【-S  打印某条链中的规则
 匹配条件分为:
 {通用匹配(作为选项出现的)
     【-p  匹配协议的支持tcp ,udp ,icmp这三种四层协议但icmp是三四层之间的协议
     【-s  用来匹配源地址的
     【-d  用来匹配目标地址的
     【-i  制定通过那个网卡接口进来的
     【-o  指定通过那个网卡出去的
  {扩展匹配又分为:
 ****隐含扩展
     【tcp的扩展(--dprot  目标端口
                (--sport   源端口
                (--tcp-flags标志位
                (--syn相当于建立一个新连接
##例:--tcp-flags  [ ! ]  mask  comp格式
  mask 表示要检查那几各位
  comp指定某个位的值为{0|1}
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST
其中SYN表示发起一个连接请
    ACK表示回应请求的
    FIN表示结束
    RST表示重置
###########################################################
     【udp扩展 (--sport  
                (--dport
     【icmp扩展 (--icmp-type有三种:(8 echo-request是发起ping的
                                    ( 0 echo-reply 拒绝回应
                                   (3 destination unreachable
 ****显式扩展 
     【-m 可指定后面的扩展如下:(-m  state  --state
                               (-m  multiport  --port
                               (-m  limit   --limit对速率扩展的
                               (-m  string   --string包含字符串的
                               (-m  mac   --mac-source
处理动作“-j”具体如下:
【DROP丢弃
【REJECT明确拒绝(考试中用)
【ACCEPT接受
【SNAT源地址转换
【DNAT目标地址转换
【LOG昨日志的
【REDIRECT端口重定向
【MASQUERADE端口伪装,只要用SNAT时都可用到
###########################################################
基于filter表主要是用来过滤的我们可以这样来做
例1: 假设凡是到本机上来访问wed服务客户机都被拒绝以这样做:
(若本机IP:192.168.0.105,在此机子上的准备工作:
  [root@station19 ~]# yum -y install httpd.i386
  [root@station19 ~]# chkconfig httpd on (添加为开机自启动)
 [root@station19 ~]# service httpd start (启动httpd服务)
  [root@station19 ~]# netstat �Ctnlp (查看80端口以开放)
  tcp        0      0 :::80                       :::*                        LISTEN      29843/httpd
 为了测试演示是否成功我们vim  /var/www/html/index.html
  [root@station19 ~]# vim /var/www/html/index.html
  This is 192.168.0.105...
  [root@station19 ~]# elinks 127.0.0.1 (本机访问成功)
  [root@station6 ~]# elinks 192.168.0.105:80 (本机做规则前其它机子访问也成功)
[root@station19 ~]# iptables -t filter -A INPUT -s 0.0.0.0/0.0.0.0 -d 192.168.0.105 -p tcp --dport 80 -i eth0 -j DROP (本机设置规则)
[root@station19 ~]# iptables -L --line-number �Cn (查看)
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            192.168.0.105       tcp dpt:80 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@station6 ~]# elinks 192.168.0.105:80 其他机子再次测试已经不能访问到服务了)
如果我们让出去的也被绝绝该怎么做呢?
很简单,我们应该再写一条出去的过滤规则就行了,如下
[root@station19 ~]# iptables -t filter -A OUTPUT -s 192.168.0.105 -d 0.0.0.0/0.0.0.0 -p tcp --sport 80 -j DROP
[root@station19 ~]# iptables -L --line-number -n
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            192.168.0.105       tcp dpt:80 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  192.168.0.105        0.0.0.0/0           tcp spt:80
用这两条链INPUT和OUTPUT时一定要注意来源“-s”和目标“-d”
例2: 如果我们想让192.168.0.105不能ping其他主机该怎么做呢?
[root@station19 ~]# ping 192.168.106 (做规则前ping其它主机成功)
PING 192.168.106 (192.168.0.106) 56(84) bytes of data.
64 bytes from 192.168.0.106: icmp_seq=1 ttl=64 time=3.45 ms
[root@station19 ~]# iptables -t filter -A OUTPUT -s 192.168.0.105 -p icmp --icmp-type 8 -j DROP
[root@station19 ~]# iptables -L --line-number �Cn
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            192.168.0.105       tcp dpt:80 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  192.168.0.105        0.0.0.0/0           tcp spt:80 
2    DROP       icmp --  192.168.0.105        0.0.0.0/0           icmp type 8
查看已经看到OUTPUT中出现了第二条规则
[root@station19 ~]# ping 192.168.0.106 (看到本机ping其他主机已ping不通了)
PING 192.168.0.106 (192.168.0.106) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
[root@station6 ~]# ping 192.168.0.105 (但是其它客户机仍能ping通192.168.0.105如下)
PING 192.168.0.105 (192.168.0.105) 56(84) bytes of data.
64 bytes from 192.168.0.105: icmp_seq=1 ttl=64 time=1.80 ms
c64 bytes from 192.168.0.105: icmp_seq=2 ttl=64 time=0.444 ms
如果这时我们也不想让其它客户机ping通192.168.0.105该怎么办呢?思考一下:
[root@station19 ~]# iptables -t filter -A INPUT -d 192.168.0.105 -p icmp --icmp-type 8 -j DROP
[root@station19 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  anywhere             server5.example.com tcp dpt:http 
DROP       icmp --  anywhere             server5.example.com icmp echo-request 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  server5.example.com  anywhere            tcp spt:http 
DROP       icmp --  server5.example.com  anywhere            icmp echo-request
[root@station6 ~]# ping 192.168.0.105 (看到其它客户机也不能ping了)
PING 192.168.0.105 (192.168.0.105) 56(84) bytes of data
--- 192.168.0.105 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2855ms
特别注意“--icmp-type 8”永远是发起ping的,“--icmp-type 0”是回应ping的,“--icmp-type 3”表示目标不可达。
[root@station19 ~]# iptables �CF (用来清空所有规则)
[root@station19 ~]# iptables �CL  (看到已经全部清空了)
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination     

你可能感兴趣的:(职场,iptables,休闲)