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
http://www.dengb.com/Linuxjc/1307794.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/1307794.htmlTechArticleLinux网络服务之防火墙 iptables设定教程,linuxiptables Linux网络服务之防火墙 iptables设定教程 1.超级火墙管理 查看软件yumsearchiptables yumlistipta...