linux之firewall,iptables

说明:这俩都是防火墙,有些系统是默认安装了其中一个,另一个要手动安装,有一个够用了,两个也不能共存,共存的话最好关掉一个保留一个

以下说的都是一些基本的防火墙知识,参考的博客

 

安装Firewalld 防火墙默认public规则路径/etc/firewalld/zones/public.xml

yum -y install firewall*

启用Firewalld

systemctl enable firewalld

systemctl start firewalld

firewalld命令行配置

add:创建

get:查看

query:查询

set:设置

change:修改

remove:移除

permanent:永久生效

reload :重新加载防火墙

示例:

firewall-cmd --get-zones:查看当前已存在的区域

firewall-cmd --get-active-zones:查看当前活跃的区域

firewall-cmd --get-default-zone:查看当前防火墙的默认区域

firewall-cmd --list-services --zone=home:查看home区域下的可用服务

firewall-cmd --set-default-zone=home:设置默认区域为home

firewall-cmd --change-zone=work:修改当前连接区域

添加常用端口放行

firewall-cmd --permanent --zone=public --add-port=20/tcp

firewall-cmd --permanent --zone=public --add-port=21/tcp

firewall-cmd --permanent --zone=public --add-port=22/tcp

firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --permanent --zone=public --add-port=888/tcp

firewall-cmd --permanent --zone=public --add-port=30000-40000/tcp

查看端口是否开放:firewall-cmd --query-port=3306/tcp

查看有哪些端口是开启的:firewall-cmd --list-port

重载Firewalld配置:firewall-cmd --reload

systemctl get-default #查看当前系统启动级别

systemctl isolate runlevel3.target #临时切换到第三级运行

systemctl isolate runlevel5.target #临时切换至第五级运行

systemctl set-default multi-user.target #设置默认第三启动级别

systemctl set-default graphical.target #设置默认第五启动级别

systemctl list-units --types=service --all|grep httpd

systemctl is-active httpd #查看httpd服务是否运行

systemctl is-enabled httpd #查看httpd服务是否开机启动

systemctl mask firewalld #服务冲突解决办法,虽然起来了,但是软链接到/dev/null中的,所以相当于什么都没干   屏蔽服务,使之无法手动或自动启动

systemctl unmask firewalld   #去掉屏蔽

systemctl enable httpd #设置开机自启

systemctl disable httpd #关闭开机自启,顺便还可以查看服务对应的server在哪个目录,然后将此服务加入/etc/init.d/里面,加两行注释在文件头

vi /etc/rc.d/init.d/httpd,添加以下注释信息:

# chkconfig: 345 85 15

# description: Activates/Deactivates Apache Web Server

第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关`闭序号(15)。

chkconfig --add httpd #这个时候就成功了

在机器上设置允许或者禁止域机器通过ssh访问,涉及知识点,防火墙的富规则rich-rule

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.24.8.0/24" service name="ssh" accept'

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="172.13.8.0/24" service name="ssh" reject'

在机器上设置允许或者禁止域机器访问

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.2.2" accept'

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="192.168.2.2" reject'

端口转发(两台机器之间)

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="1:2:3:4:6::" forward-port to-addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"'

端口转发(同一台机器一个端口到另一个端口)

#firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="1.1.1.1/24" forward-port to-port="80" protocol="tcp" port="5423"'

 

iptables防火墙:

安装防火墙:yum -y install iptables iptables-services

iptables防火墙配置文件路径:/etc/sysconfig/iptables

规则链一般常见的有:INPUT(进来的数据包用此规则)   

                                  OUTPUT(出去的数据包用此规则)    

                                  FORWARD(转发的数据包用此规则)

防火墙处理数据包的四种方式:ACCEPT(允许数据包通过)

                                               REJECT(拒绝通过,必要时会返回拒绝信息)

                                               DROP(直接丢弃,不响应)

                                               LOG(在/var/log/messages)文件中记录日志信息,然后将数据包传递给下一条规则

--dport 指定目标TCP/IP端口 如 –dport 80

--sport 指定源TCP/IP端口 如 –sport 80

-p tcp 指定协议为tcp

-p icmp 指定协议为ICMP

-p udp 指定协议为UDP

-j DROP 拒绝

-j ACCEPT 允许

-j REJECT 拒绝并向发出消息的计算机发一个消息

-j LOG 在/var/log/messages中登记分组匹配的记录

-m mac –mac 绑定MAC地址

-m limit –limit 1/s 1/m 设置时间策列

-s 10.10.0.0或10.10.0.0/16 指定源地址或地址段

-d 10.10.0.0或10.10.0.0/16 指定目标地址或地址段

-s ! 10.10.0.0 指定源地址以外的

 

iptables -A 将一个规则添加到链末尾

iptables -D 将指定的链中删除规则

iptables -F 将指定的链中删除所有规则

iptables -I 将在指定链的指定编号位置插入一个规则

iptables -L 列出指定链中所有规则

iptables -t nat -L 列出所有NAT链中所有规则

iptables -N 建立用户定义链

iptables -X 删除用户定义链

iptables -P 修改链的默认设置,如将iptables -P INPUT DROP (将INPUT链设置为DROP)

 

查看防火墙规则:iptables -L -n

添加防火墙规则:iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

说明:-I  和  -A都是添加规则,-I表示在指定位置添加    -A表示直接加到尾部,对于整体规则来说影响不大

添加完规则之后执行:iptables save保存规则,此时你的规则可在/etc/sysconfig/iptables里面查看

删除防火墙规则:先查看规则在第几条:iptables -L INPUT --line-numbers -n 再执行 :iptables -D INPUT 序号

删除完规则之后执行:iptables save保存规则,此时/etc/sysconfig/iptables里面的规则也会被清掉一条

禁止22端口:iptables -A INPUT -p tcp --dport 22 -j REJECT

允许某台机器通过22端口链接:iptables -A INPUT -s 192.168.1.1 -p tcp --dport 22 -j REJECT

允许除了某台机器外的其他机器都能通过22端口连接:iptables -A INPUT -s ! 192.168.1.1 -p tcp --dport 22 -j REJECT

允许某个网段的机器通过22端口连接:iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j REJECT

DROP非法链接:iptables -A INPUT -m state --state INVALID -j DROP

                           iptables -A OUTPUT -m state --state INVALID -j DROP 

                           iptables -A FORWARD -m state --state INVALID -j DROP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值