Linux-服务管理
防火墙的概述:
软件防火墙,主要限制 ip,过滤 ip 等
硬件防火墙,用来防 dos 攻击等,也兼顾一些软件防火墙的功能
Centos 6 默认使用的防火墙是 iptables, Centos 7 是 firewallD, 但这两者底层都是内核中的 filter 过滤表来进行实际的控制
iptables 的表和链
规则表
规则链(确定规则的方向)
- INPUT,外部请求进入当前主机
- OUTPUT,当前主机发出的数据包
- FORWARD,数据包经过当前主机转给其他主机
- PREROUTING,路由前
- POSTROUTING,路由后
iptables filter 表
- iptales -t filter 命令 规则链 规则
# -v 显示更详细信息
# -n 不进行反向域名解析
# -L 显示iptables信息
# 所以查看防火墙的配置可以使用iptables -t filter -vnL
[root@iz2zeje77jss3tlyqj8p12z ~]# iptables -t filter -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
# 增加iptables规则
# -A 在规则后加入 -I 在规则前加入(靠前的优先级高)
# -s 源地址 -d 目的地址
# -j 指定是ACCEPT还是DROP
[root@iz2zeje77jss3tlyqj8p12z ~]# iptables -t filter -A INPUT -s 10.0.0.1 -j ACCEPT
# 下面默认规则都是ACCEPT,如果没有匹配到我们指定的规则,最后就会匹配默认规则
[root@iz2zeje77jss3tlyqj8p12z ~]# iptables -nvL
Chain INPUT (policy ACCEPT 49 packets, 3361 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 10.0.0.1 0.0.0.0/0
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 31 packets, 8484 bytes)
pkts bytes target prot opt in out source destination
# 修改默认规则,以下为拒绝所有INPUT的ip连接
iptables -P INPUT DROP
# 清空所有自定义规则,不会修改默认规则
iptables -F
# 清空某个规则
iptables -D 序列号
# 多个规则
# -i 指定网络接口(网卡)
# -p 指定协议tcp/udp
# -dport 指定端口
iptables -t filter -A INPUT -i eth0 -s 10.0.0.2 -p tcp --dport 80 -j ACCEPT
iptables nat 表
- iptables -t nat 命令 规则链 规则
# 修改目的地址,转发到10.0.0.1上
iptables -t nat -A PREROUTING -i eth0 -d 114.115.116.117 -p tcp -dport 80 -j DNAT --to-destination 10.0.0.1
# 修改源地址,将内网ip都改为出口IP地址
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to-source 111.112.113.114
iptables 自定义的规则默认是存在内存中的,需要持久化 可以直接在 /etc/sysconfig/iptables 中写数据,也可以下载工具将内存中的数据写到文件中 yum install iptables-services
SSH
ssh 服务配置文件 - sshd_config
- Port 22 默认端口
- PermitRootLogin yes 是否允许 root 登录
- AuthorizedKeysFile .ssh/authorized_keys 秘钥认证文件
### 将公钥拷贝到服务器上
- ssh-copy-id -i /root/.ssh/id_ras.pub root@/xxx
FTP 服务器 vsftpd 介绍与软件包安装
FTP 协议分为两条连接,不同的信息要用不同连接传输
- 命令链路
- 数据链路
# 安装
yum install vsftpd ftp
# 启动
systemctl start vsftpd.service
# 开机自启动
systemctl enable vsftpd.service
# 访问,使用ftp账户,则是匿名模式,默认的目录是宿主机的/var/ftp目录。也可以用系统用户,目录则是用户根目录
[root@VM-0-16-centos ~]# ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||31008|).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Apr 01 2020 pub
226 Directory send OK.
# 要开启ftp服务让别的主机访问,需要开放端口,最简单的用firewall-cmd --add-service ftp
# 下载和上传
➜ ftp 139.155.182.202
Connected to 139.155.182.202.
220 (vsFTPd 3.0.2)
Name (139.155.182.202:qq): xx
331 Please specify the password.
Password:
230 Login successful.
ftp> !ls # !可以执行本机命令
a.txt get_product.py ipv4 main.go utils
aa.txt go.mod ipv6 result.txt writefile.py
bfile go.sum knowledge.py test
ftp> put a.txt # 上传文件,既在远程主机上写入文件
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
7500000 bytes sent in 0.926 seconds (7.72 Mbytes/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 7500000 Nov 02 14:21 a.txt
drwxrwxr-x 2 1000 1000 4096 Nov 02 14:19 test
226 Directory send OK.
ftp> get aaaa.txt # 下载文件,既在本地主机上写入文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for aaaa.txt (7 bytes).
WARNING! 2 bare linefeeds received in ASCII mode
File may not have transferred correctly.
226 Transfer complete.
7 bytes received in 0.000211 seconds (32.4 kbytes/s)
Samba 和 NFS 服务
- samba 服务主要针对于 windows 和 windows 系统
- NFS 主要针对的的是 linux 和 linux 系统
Nginx 基本配置文件
OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
OpenResty® 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。来自 OpenResty® 官网
# 下载
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
yum install openresty
# 配置文件
/usr/local/openresty/nginx/conf/nginx.conf
# 启动
service openresty start|stop|restart|reload