Linux网络服务之防火墙 iptables设定教程,linuxiptables


Linux网络服务之防火墙 iptables设定教程

1.超级火墙管理

查看软件yumsearchiptables

yumlistiptables-services.x86_64

安装软件yuminstalliptables-y

关闭普通火墙systemctlstopfirewalld

systemctlmaskfirewalld

systemctlstartiptables.service

systemctlenableiptables.service

不解析列出火墙设置iptables-nL //n不解析,L列出

配置文件vim/etc/sysconfig/iptables

刷新,临时清空iptables-F

清空>/etc/sysconfig/iptables

方法二,临时清空后serviceiptablessave保存设定

添加火墙策略设置iptables-AINPUT-jACCEPT

策略保存serviceiptablessave

【实验】

[root@server103~]#yumsearchiptables

iptables-services.x86_64

[root@server103~]#yumlistiptables-services.x86_64

[root@server103~]#systemctlstopfirewalld

[root@server103~]#systemctlmaskfirewalld

ln-s'/dev/null''/etc/systemd/system/firewalld.service'

[root@server103~]#systemctlstartiptables.service

[root@server103~]#systemctlenableiptables.service

ln-s'/usr/lib/systemd/system/iptables.service''/etc/systemd/system/basic.target.wants/iptables.service'

[root@server103~]#iptables-nL

 

\

 

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

 

\

 

[root@server103~]#iptables-F

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#iptables-F

[root@server103~]#iptables-nL //此时为临时,重启动后失效

 

\

 

[root@server103~]#systemctlrestartiptables.service

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#>/etc/sysconfig/iptables //清空

[root@server103~]#iptables-F

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#systemctlrestartiptables.service

[root@server103~]#iptables-nL

 

\

 

添加火墙策略设置

[root@server103~]#iptables-AINPUT-jACCEPT

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#serviceiptablessave//策略保存

iptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK]

2.iptables的设定

查看帮助manipitables

-t指定表名filter -s来源sorce -i匹配端口eg:-i lo lo回环接口

-A添加 -d目的地 -o端口

-I插入INPUT -p方式port --dport端口

-D删除 -j动作 ACCEPT|REJECT|DROP

filter所有经过本机内核的数据

nat从本机通过的数据不经过内核

iptables-tfilter-AINPUT-ilo-jACCEPT

iptables-tfilter-AINPUT-s172.25.254.3-jACCEPT

【实验】

查看三个表

[root@server103~]#iptables-tnat-nL

 

\

 

[root@server103~]#iptables-tfilter-nL

 

\

 

[root@server103~]#iptables-tmangle-nL

 

\

 

设置端口设定

[root@server103~]#iptables-tfilter-AINPUT-ilo-jACCEPT

[root@server103~]#iptables-tfilter-AINPUT-s172.25.254.3-jACCEPT

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#iptables-AINPUT-jREJECT

[root@server103~]#iptables-DINPUT1

[root@server103~]#iptables-DINPUT2

[root@desktop203westos]#sshroot@172.25.254.103//此时无法连接

ssh:connecttohost172.25.254.103port22:Connectionrefused

[root@server103~]#iptables-AINPUT-s172.25.254.203-ptcp--dport22-jACCEPT

[root@server103~]#iptables-nL

ACCEPTtcp--172.25.254.2030.0.0.0/0tcpdpt:22

插入

[root@server103~]#iptables-IINPUT1-s172.25.254.20-ptcp--dport22-jACCEPT

[root@server103~]#iptables-nL

ACCEPTtcp--172.25.254.200.0.0.0/0tcpdpt:22

ACCEPTtcp--172.25.254.2030.0.0.0/0tcpdpt:22

[root@server103~]#systemctlstartsmb

[root@desktop203westos]#smbclient-L//172.25.254.103

Enterroot'spassword:

Connectionto172.25.254.103failed(ErrorNT_STATUS_CONNECTION_REFUSED)

此时需要开启139和445端口

[root@server103~]#iptables-IINPUT1-s172.25.254.203-ptcp--dport139-jACCEPT

[root@server103~]#iptables-IINPUT1-s172.25.254.203-ptcp--dport445-jACCEPT

[root@desktop203westos]#smbclient-L//172.25.254.103

Enterroot'spassword:

Domain=[WESTOS_SERVER103]OS=[Unix]Server=[Samba4.1.1]

SharenameTypeComment

--------------------

DATADisklocalsambadir

SYSTEMCTLDATADisk/mnt

IPC$IPCIPCService(helloworld103)

Domain=[WESTOS_SERVER103]OS=[Unix]Server=[Samba4.1.1]

ServerComment

----------------

WorkgroupMaster

----------------

!!!!!!!!!!!!!!!!

iptables-nL中是从上往下依次执行,要注意顺序

7.iptables策略设置二

-R修改策略信息

-P(大写)更改默认设定Policy,默认只能用ACCEPT和DROP

-N添加

-E更名

-X删除

【实验】

[root@server103~]#iptables-RINPUT2-s172.25.254.203-ptcp--dport53-jACCEPT

[root@server103~]#iptables-nL

ACCEPTtcp--172.25.254.2030.0.0.0/0tcpdpt:53

[root@server103~]#iptables-PINPUTDROP

[root@server103~]#iptables-nL

ChainINPUT(policyDROP)

[root@server103~]#iptables-PINPUTACCEPT

[root@server103~]#iptables-tfilter-Nwestos

[root@server103~]#iptables-nL

Chainwestos(0references)

targetprotoptsourcedestination

[root@server103~]#iptables-tfilter-EwestosWESTOS

[root@server103~]#iptables-nL

ChainWESTOS(0references)

[root@server103~]#iptables-tfilter-XWESTOS

[root@server103~]#iptables-nL

此时的WESTOS消失

8.超级火墙的优化

iptables-F

netstat-antlupe

-m

iptables-AINPUT-mstate--stateNEW-ilo-jACCEPT //允许回环接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport22-jACCEPT //允许ssh接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport53-jACCEPT //允许dns接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport139-jACCEPT //允许smb接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport445-jACCEPT //允许smb接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport80-jACCEPT //允许http接口接入

iptables-AINPUT-mstate--stateNEW-ptcp--dport443-jACCEPT //允许https接口接入

iptables-AINPUT!-s172.25.254.3-jACCEPT //不允许不是3的机器接入,满足3或者满足以上所有才可接入

iptables-nL

serviceiptablessave //保存

//RELATED 以前来过的端口,历史记录存在过的

//ESTABLISHED 正在进行的端口

【实验】

[root@server103~]#iptables-F

[root@server103~]#iptables-nL

 

\

 

[root@server103~]#netstat-antlupe

tcp00172.25.254.103:22172.25.254.3:40876ESTABLISHED0989205720/sshd:root@pts

[root@server103~]#iptables-AINPUT-mstate--stateNEW-ilo-jACCEPT[root@server103~]#iptables-AINPUT-mstate--stateNEW-ptcp--dport22-jACCEPT

[root@server103~]#iptables-AINPUT-mstate--stateNEW-ptcp--dport53-jACCEPT

[root@server103~]#iptables-AINPUT-mstate--stateNEW-ptcp--dport80-jACCEPT

[root@server103~]#iptables-AINPUT-mstate--stateNEW-ptcp--dport443-jACCEPT

[root@server103~]#iptables-AINPUT!-s172.25.254.3-jACCEPT

[root@server103~]#iptables-nL

 

\

 

//RELATED 以前来过的端口,历史记录存在过的

//ESTABLISHED 正在进行的端口

[root@server103~]#serviceiptablessave

iptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK]

10.NAT的设置源地址转换

【准备】

virt-manager虚拟机管理器

server加一个网卡,设置为192.168.0.103

desktop单网卡设置为192.168.0.203

检测desktop ping方法

route-n检测网关设置

ifconfig检测ip设置

iptables-tnat-APOSTROUTING-oeth0-jSNAT--to-source172.25.254.103

把192.168.0.203发送来的数据包来源转换为172.25.254.103

在desktop加入网关192.168.0.103,重启网络route-n查看

 

\

 

【实验】

[root@server103~]#iptables-tnat-nL //查看

ChainPOSTROUTING(policyACCEPT) //表示在路由后

[root@server103~]#iptables-tnat-APOSTROUTING-oeth0-jSNAT--to-source172.25.254.103 //SNAT源地址转换

[root@server103~]#iptables-tnat-nL

ChainPOSTROUTING(policyACCEPT)

targetprotoptsourcedestination

SNATall--0.0.0.0/00.0.0.0/0to:172.25.254.103

在desktop加入网关192.168.0.103,重启网络route-n查看ping172.25.254.103检测(可通)

 

\

 

ping172.25.254.3不通

------------>原因:内核功能未开启(路由)

[root@server103~]#sysctl-a|grepip_forward

net.ipv4.ip_forward=0

[root@server103~]#vim/etc/sysctl.conf

5net.ipv4.ip_forward=1

[root@server103~]#sysctl-p

net.ipv4.ip_forward=1

此时用desktop客户机ping172.25.254.3可通

检测:

用192.168.0.203sshroot@172.25.254.3

后用w查看访问的数据来源

 

\

 

 

\

 

[root@server103~]#iptables-tnat-APREROUTING-ieth0-jDNAT--to-dest192.168.0.203 //-iinput数据入口数据入口eth1看不到,不能用eth1

[root@server103~]#iptables-nL

[root@server103~]#iptables-nL-tnat

 

\

 

相关内容