linux学习之防火墙iptables

来源:互联网 发布:淘宝展现量是什么意思 编辑:程序博客网 时间:2024/05/17 08:42
####iptables####

1.基本概念
是与2.4.x和2.6.x系统版本linux内核集成的ip信息包过滤系统。
2.使用规则
规则其实就是管理员预设定的的条件,规则存储在内核空间的信息过滤表中,这些规则分别指定了源地址,目的地址,传输协议及服务类型等所有待检查数据包的特征和目标。当数据包与规则不匹配时,将该数据包送往该链中下一条规则检查;当数据包与规则匹配时,iptables就根据规则所定义的方法处理数据包,如通过(ACCEPT),丢弃(DROP),拒绝(REJECT),排队(QUEUE)或者返回(RETURN)等。
链——————链是数据包传播的路径, 每个链其实就是众多规则中的一个检查清单,每条链中可以有一条或者数条规则。
表——————表是包含仅处理特定类型信息包的规则和链的信息包过滤表。iptables内置了三种表:filter,nat和mangle,分别用于实现包过滤,网络地址和包重构功能。
Filter-----过滤表
Nat--------网络地址转换表
mangle-----数据包处理表
INPUT链----处理输入包的规则链
OUTPUT链---处理输出包的规则链
FORWORD----处理转发包的规则链
PREROUTING-对到达且未经路由判断之前的包进行处理的规则链
    filter表是iptables的默认表,如果没有指定使用那个表,iptables默认使用filter表执行所有的命令。filter表包含了INPUT链(处理进入的数据包),FORWORD链(处理转发的数据包)和OUTPUT链(处理本地生成的数据包)。
    nat表主要用于进行网络地址转换。nat表有OUTPUT、PREROUTING、POSTROUTING三种链形式
    *DNAT操作主要出现这样一种情况,即假设一个合法ip地址,要把对防火墙的访问重定向到其他机器上,改变的是目的地址,以使包能重路由到某台主机。
    *SNAT改变包的源地址,这在极大程度上可以隐藏本地网络



iptables
    -t    ##指定表名称
    -n    ##不做解析
    -L    ##列出指定表中的策略
    -A    ##增加策略
    -p    ##网络协议
    --dport ##端口
    -s    ##数据来源
    -j    ##动作
    ACCEPT    ##允许数据包通过
    REJECT    ##拒绝
    DROP    ##丢弃
    -N    ##增加链
    -E    ##修改链名称
    -X    ##删除链
    -D    ##删除指定策略
    -I    ##插入指定策略
    -R    ##修改策略
    -P    ##修改默认策略
[root@desktop ~]# systemctl stop firewalld        ##关闭firewalld火墙服务
[root@desktop ~]# systemctl disable firewalld

[root@desktop ~]# systemctl start iptables        ##启动iptables火墙服务


[root@desktop ~]# iptables -t filter  -nL        ##查看filter表中的策略
[root@desktop ~]# iptables -F                ##刷新filter表中的策略,当没有用-t指定表名称时默认filter表

[root@desktop ~]# iptables -t filter  -nL


[root@desktop ~]# service iptables save            ##保存当前策略

iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]##存放位置


[root@desktop ~]# vim /etc/sysconfig/iptables


[root@desktop ~]# iptables -A INPUT -i lo -j ACCEPT        ##允许lo
[root@desktop ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##允许访问22端口
[root@desktop ~]# iptables -A INPUT -s 172.25.254.66 -j ACCEPT  ##允许66主及访问本机所有端口

[root@desktop ~]# iptables -A INPUP -j REJECT            ##拒绝所有主机的数据来源

测试

66主机可以访问,其他主机不能



[root@desktop ~]# iptables -N lee                ##增加链lee

       


[root@desktop ~]# iptables -E lee eel                ##改变链名称



[root@desktop ~]# iptables -X eel                ##删除eel链



[root@desktop ~]# iptables -D INPUT 2                ##删除INPUT链中的第二条策略




[root@desktop ~]# iptables -I INPUT -p tcp --dport 80 -j REJECT ##插入策略到INPUT中的第一条



[root@desktop ~]# iptables -R INPUT 1  -p tcp --dport 80 -j ACCEPT##修改第一条策略



[root@desktop ~]# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@desktop ~]# iptables -A INPUT -i lo -m  state --state NEW -j ACCEPT
[root@desktop ~]# iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
[root@desktop ~]# iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
[root@desktop ~]# iptables -A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
[root@desktop ~]# iptables -A INPUT -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT

[root@desktop ~]# iptables -A INPUT -j REJECT


[root@desktop ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
 




[root@desktop ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@desktop ~]# sysctl -p
[root@desktop ~]# iptables -t nat -A PREROUTING -i eth1 -j DNAT --to-dest 172.25.34.234
[root@desktop ~]# iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.134
[root@desktop ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       all  --  0.0.0.0/0            0.0.0.0/0            to:172.25.34.234

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

SNAT       all  --  0.0.0.0/0            0.0.0.0/0            to:172.25.254.134




[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.34.234
PREFIX=24
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=1
GATEWAY=172.25.34.134


root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.25.34.134   0.0.0.0         UG    1024   0        0 eth0
172.25.34.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
[root@localhost ~]# ping 172.25.254.134
PING 172.25.254.134 (172.25.254.134) 56(84) bytes of data.
64 bytes from 172.25.254.134: icmp_seq=1 ttl=64 time=0.123 ms

64 bytes from 172.25.254.134: icmp_seq=2 ttl=64 time=0.326 ms






原创粉丝点击