在网站上面开通了一台Linux机器以后,独立ipv4的附加,直接让小鸡面向全世界。这个时候,看着空荡荡的root命令行,需要做什么呢?

1.安全

重中之重的第一件事,就是安全了。要知道,拥有独立ip的机器,不可避免被众多扫描脚本扫来扫去。

apt update
apt upgrade
apt install vim wget curl git

# 新建用户
adduser $USER

# 给新用户 sudo权限
usermod -aG sudo $USER
# ps->!! sudo时 出现 unable to resolve host解决办法
# 修改 /etc/hosts,把主机名添加进去即可

# 在新用户目录下添加key,以后key登录
cd ~
mkdir .ssh
cd .ssh
touch authorized_keys
sudo chmod 600 authorized_keys
vi authorized_keys        # 打开的界面里,将自己的证书pub,插入进来

# 先测试,看能否key登录,后续再进行修改ssh登录端口
# 修改ssh登录端口、在打开的sshd_config中,逐行扫一遍,修改ssh端口、关闭root登录、关闭空密码、开放key登录
sudo vi /etc/ssh/sshd_config
# 重启ssh服务,sshd_config修改的会生效,下次连接的时候,要注意了
sudo systemctl restart sshd.service

2.安装docker

在Linux中部署服务的时候,总会因为不同程序版本,导致失败,使用docker容器,一劳永逸!

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $(whoami)

OK,安装docker,并且将当前用户添加到了docker用户组,这样就不需要每次sudo来执行docker了

3.增加swap缓存

可以先使用free -m 来查看,如果已经存在,也可以不用安装了。

cd /opt
sudo mkdir swap
cd swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=1000000     #1G大小
sudo mkswap /opt/swap/swapfile     # 把文件转换为swap文件
sudo swapon /opt/swap/swapfile     #激活

# 若需要开机自动挂载,需要修改/etc/fstab文件,在最后添加(sudo vi /etc/fstab)
/opt/swap/swapfile swap swap defaults 0 0

# 最后配置Swappiness值---定义使用交换空间的频率,0-100,默认60
cat /proc/sys/vm/swappiness            # 查看当前swap使用频率

sudo vi /etc/sysctl.conf
# 在打开的文件的最后一行加上
vm.swappiness=40                                # 数字越小,用的机会越少

完成,下面再带一些有关swap的删除操作

# 删除交换空间文件
sudo swapoff -v /opt/swap/swapfile

# 从/etc/fstab中去掉增加的自动挂载
# 最后删除实际的交换文件
sudo rm /opt/swap/swapfile

4.开启bbr

国际网络总会因为这样或那样的问题,抽风。所以,开启bbr算法,来优化一下。

# 查看内核
uname -a
# BBR内核要求为4.9,ubuntu18.04直接4.15

# 1.修改系统变量
sudo echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
sudo echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

# 2.保存生效
sysctl -p

# 3.查看内核是否已开启BBR
sysctl net.ipv4.tcp_available_congestion_control
显示如下:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

# 4.查看BBR是否启动
lsmod | grep bbr

5.使用ufw防火墙

方便、但是差点意思,所以,后来,笔者改成了iptables原生。毕竟ufw也是控制iptables的一种。这里仅留作记录,证明曾经拥有这份知识!

# 安装
apt update && apt install ufw

# 查看状态
sudo ufw status

# 启用/禁用
sudo ufw enable
sudo ufw disable

# 查看规则
sudo ufw status numbered

# 添加规则
sudo ufw default deny     #默认进站全禁
sudo ufw allow ssh     # 添加22端口
sudo ufw allow http     # 添加80端口
sudo ufw allow 80/tcp  # 添加80端口 tcp协议
sudo ufw allow 33333/udp     # 添加33333端口 udp协议
sudo ufw allow 8888:9999     # 添加8888到9999之间的接口
sudo ufw deny 11111       # 禁止11111端口

# 删除规则
sudo ufw delete allow 2222/tcp
sudo ufw delete <序号>       # ufw status numbered 查回来的序号

# 禁ping
# 1.编辑配置文件
sudo vim /etc/ufw/before.rules

# 2.允许ping
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

# 3.禁止ping
-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

# 4.让配置生效
sudo ufw reload

# 禁止ip
sudo ufw insert 1 deny from 1.1.1.1/16 to any
# 因为ufw的匹配机制,所以,后面拦截ip的时候,需要使用insert 1,表示插入第一

# 封禁ip
sudo vi /etc/ufw/before.rules
# 在 # End required lines 后面添加
-A ufw-before-input -s 162.243.0.0/16 -j DROP
-A ufw-before-input -s 59.83.0.0/16 -j DROP
# 之后
sudo ufw reload

6.fail2ban使用

占个坑,还没研究过。

7.Debian系统中的一些补充设置

在debian系统中,普通用户,无法输出类似ifconfig之类的命令

在用户的~/.profile文件里增加下面的配置

\# set PATH /usr/sbin
if [ -d "/usr/sbin" ] ; then
  PATH="/usr/sbin:$PATH"
fi

这样,每次ssh上来的时候,就能够自动加载了

在有的debian或ubuntu系统中,apt install 有时候无法补全相关命令

sudo apt install bash-completion

\# 之后在~/.bashrc文件中,添加—已有则不需要添加下面内容

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
 if [ -f /usr/share/bash-completion/bash_completion ]; then
  . /usr/share/bash-completion/bash_completion
 elif [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
 fi
fi

标签: Linux, begin

评论已关闭