查看哪些端口被打开 netstat -ntlp
查看监听(Listen)的端口 netstat -lntp
检查端口被哪个进程占用 netstat -lnp|grep 8080
查看进程PID: ps -ef | grep httpd
查看本机IP地址: ifconfig -a
重启网络服务: sudo service network restart
查看centos版本: cat /etc/redhat-release
centos查询上网公网IP输入: curl ifconfig.me 命令即可查看
apache
查看apache版本:httpd -v
systemctl start httpd.service #启动apache
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
mysql
查看MYSQL版本:rpm -qa | grep mysql*
启动mysql
systemctl start mariadb.service 或者 systemctl start mysqld.service
结束
systemctl stop mariadb.service 或者 systemctl stop mysqld.service
重启
systemctl restart mariadb.service 或者 systemctl restart mysqld.service
开机自启
systemctl enable mariadb.service 或者 systemctl enable mysqld.service
PHP
php -i |less 查看配置文件在哪里,编译参数
php -m |less 查看php加载的模块扩展
php --ini 找到实际加载的ini文件路径
防火墙
查看iptables规则:iptables -L -n -v
查看iptables状态:service iptables status
iptables服务重启:service iptables restart
iptables服务禁用:service iptables stop
添加端口号:8080
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
service iptables save #保存iptables规则
systemctl enable iptables.service #设置防火墙开机启动
接下来我们将由简入难介绍 25 条 Linux 管理员最常会用到的 IPTables 规则。
1、启动、停止和重启IPTables
虽然 IPTables 并不是一项服务,但在 Linux 中还是可以像服务一样对其状态进行管理。
基于SystemD的系统
systemctl start iptablessystemctl stop iptablessystemctl restart iptables
基于SysVinit的系统
/etc/init.d/iptables start/etc/init.d/iptables stop/etc/init.d/iptables restart
2、查看IPtables防火墙策略
你可以使用如下命令来查看 IPtables 防火墙策略:
iptables -L -n -v
以上命令应该返回数据下图的输出:
以上命令是查看默认的 FILTER 表,如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。例如只查看 NAT 表中的规则,可以使用如下命令:
iptables -t nat -L -v –n
3、屏蔽某个IP地址
如果你发布有某个 IP 向服务器导入攻击或非正常流量,可以使用如下规则屏蔽其 IP 地址:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
注意需要将上述的 XXX 改成要屏蔽的实际 IP 地址,其中的 -A 参数表示在 INPUT 链的最后追加本条规则。(IPTables 中的规则是从上到下匹配的,一旦匹配成功就不再继续往下匹配)
如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议,例如:
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
4、解封某个IP地址
要解封对 IP 地址的屏蔽,可以使用如下命令进行删除:
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
其中 -D 参数表示从链中删除一条或多条规则。
5、使用IPtables关闭特定端口
很多时候,我们需要阻止某个特定端口的网络连接,可以使用 IPtables 关闭特定端口。
阻止特定的传出连接:
iptables -A OUTPUT -p tcp --dport xxx -j DROP
阻止特定的传入连接:
iptables -A INPUT -p tcp --dport xxx -j ACCEPT
6、使用Multiport控制多端口
使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:
iptables -A INPUT -p tcp -m multiport --dports 22,80,443 -j ACCEPTiptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
7、在规则中使用 IP 地址范围
在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:
iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
8、配置端口转发
有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。
9、屏蔽HTTP服务Flood攻击
有时会有用户在某个服务,例如 HTTP 80 上发起大量连接请求,此时我们可以启用如下规则:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
上述命令会将连接限制到每分钟 100 个,上限设定为 200。
10、禁止PING
对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:
iptables -A INPUT -p icmp -i eth0 -j DROP
11、允许访问回环网卡
环回访问(127.0.0.1)是比较重要的,建议大家都开放:
iptables -A INPUT -i lo -j ACCEPTiptables -A OUTPUT -o lo -j ACCEPT
12、屏蔽指定MAC地址
使用如下规则可以屏蔽指定的 MAC 地址:
iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
13、限制并发连接数
如果你不希望来自特定端口的过多并发连接,可以使用如下规则:
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
以上规则限制每客户端不超过 3 个连接。
14、清空IPtables规则
要清空 IPtables 链可以使用如下命令:
iptables -F
要清空特定的表可以使用 -t 参数进行指定,例如:
iptables -t nat –F
15、保存IPtables规则
默认情况下,管理员对 IPtables 规则的操作会立即生效。但由于规则都是保存在内存当中的,所以重启系统会造成配置丢失,要永久保存 IPtables 规则可以使用 iptables-save 命令:
iptables-save > ~/iptables.rules
保存的名称大家可以自己改。
16、还原IPtables规则
有保存自然就对应有还原,大家可以使用 iptables-restore 命令还原已保存的规则:
iptables-restore < ~/iptables.rules
17、允许建立相关连接
随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允许建立传出相关连接的规则:
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
18、丢弃无效数据包
很多网络攻击都会尝试用黑客自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
19、IPtables屏蔽邮件发送规则
如果你的系统不会用于邮件发送,我们可以在规则中屏蔽 SMTP 传出端口:
iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
20、阻止连接到某块网卡
如果你的系统有多块网卡,我们可以限制 IP 范围访问某块网卡:
iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
源地址可以是 IP 或 CIDR。
保存设置的规则到配置文件
service iptables save
iptables –F
#删除已经存在的规则
iptables -P INPUT DROP
#配置默认的拒绝规则。基本规则是:先拒绝所有的服务,然后根据需要再添加新的规则。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#打开WEB服务端口的tcp协议
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
#打开POP3服务端口的tcp协议
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#打开SMTP服务端口的tcp协议
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#打开FTP服务端口的tcp协议
iptables -A INPUT -p tcp -s 202.106.12.130 --dport 22 -j ACCEPT
#允许IP地址为202.106.12.130这台主机连接本地的SSH服务端口
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
#允许DNS服务端口的tcp数据包流入
iptables -A INPUT -p udp --dport 53 -j ACCEPT
#允许DNS服务端口的udp数据包流入
iptables -A INPUT -p icmp -icmp-type echo-request -i eth1 -j DROP
#防止死亡之ping,从接口eth1进入的icmp协议的请求全部丢弃。
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
#防止SYN Flood (拒绝服务攻击)
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.226 -j MASQUERADE
#允许 192.168.0.226通过eth1 IP伪装出外网
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.4 -p tcp --dport 25 -j MASQUERADE
#允许 192.168.0.4通过eth0 伪装访问外网的 25端口
iptables命令不生效,证明没安装,安装如下:
关闭firewall
service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动
安装iptables规则:
yum install iptables-services #安装