2020年3月31日星期二

找出日志中扫描你服务器的IP


  1. # 获取前 1 分钟内的 secure 记录,统计 ssh 认证失败的 IP 和其 失败次数, 并用Iptables阻止之
  2. SCANNER=$(awk 'BEGIN{ tm=strftime("%b %e %H:%M",systime()-60);} $0 ~ tm && /Failed password/ && /ssh2/ {print $(NF-3)}' /var/log/auth.log |sort|uniq -|awk '{print $1"="$2;}')
awk '/Failed/{print $(NF-3)}' /var/log/auth.log|sort|uniq -c|sort -rn|awk '{if ($1>$num){print $2}}'
num=10
for i in `awk '/Failed/{print $(NF-3)}' /var/log/auth.log|sort|uniq -c|sort -rn|awk '{if ($1>$num){print $2}}'`
do
      iptables -I INPUT -p tcp -s $i --dport 2222 -j DROP
done


/var/log/auth.log|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
#! /bin/bash
cat /var/log/auth.log|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.list
for i in `cat  /usr/local/bin/black.list`
do
  IP=`echo $i |awk -F= '{print $1}'`
  NUM=`echo $i|awk -F= '{print $2}'`
  if [ ${#NUM} -gt 1 ]; then
    grep $IP /etc/hosts.deny > /dev/null
    if [ $? -gt 0 ];then
      echo "sshd:$IP:deny" >> /etc/hosts.deny
    fi
  fi 
done 





2020年3月13日星期五

iptables 在FORWARD默认为 DROP 的情况下做端口转发



/sbin/iptables -t nat -F
/sbin/iptables -F
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.178.1:80
#/sbin/iptables -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT

#/sbin/iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

/sbin/iptables -A FORWARD -d 192.168.178.1 -p tcp --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#/sbin/iptables -A FORWARD -s 192.168.178.1 -p tcp --sport 80 -j ACCEPT

#/sbin/iptables -t nat -A POSTROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -d 192.168.178.1 -p tcp --dport 80 -j SNAT --to 192.168.178.8

Raspbian pdns 安装

aptitude

mysql -updns -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql


sudo chmod g+rw /etc/powerdns/pdns.conf

sudo chown pdns /etc/powerdns/pdns.conf

删除原文的
launch=
加入:

launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=pdns
gmysql-password=《密码》
gmysql-dbname=<数据库>
启动
 sudo systemctl start pdns
sudo apt install dnsutils
dig +short www.example.com A @127.0.0.1

2020年3月12日星期四

全新安装 MariaDB,并初始化密码

设置数据库

在终端中,运行MySQL安全安装命令
sudo mysql_secure_installation
此时系统会询问你:Enter current password for root (enter for none): ,按回车(enter)键,因为第一次登陆是没有密码的。
然后会询问你: Set root password? —— 按 y ,进行root帐号的密码设置
此时,会提示 New password ,在此输入你的MySQL密码,请牢记这个密码,输入完成按回车,会提示re-enter new password此时再重复输入密码,回车即可。
然后,询问你 Remove anonymous users ,按 y 。
然后,询问你 Disallow root login remotely ,按 y 。
然后,询问你 Remove test database and access to it ,按 y 。
然后,询问你 Reload privilege tables now ,按 y 。
最后,您将看到消息 All done! 和 Thanks for using MariaDB! 。表示已经设置完成了。

sudo mysql -uroot -p       ------>一定要用 sudo




Raspbian docker 设置 lsioarmhf/plex

docker create --name=plex --net=host -e PUID=1000 -e PGID=100 -e TZ=Asia/Kolkata -v /data/PcMac:/config -v /data/PcMac:/data/movies -v /data/PcMac:/data/tvshows -v /data/PcMac:/transcode lsioarmhf/plex

上面的应该是完整命令行,下面是我修改后的,启动后可以在页面上添加上面媒体目录
docker create --name=plex --net=host -e PUID=1000 -e PGID=100 -e TZ=Asia/Kolkata lsioarmhf/plex




Pull Plex Docker Image

  • This command will pull the Plex image for Docker.
  1. docker pull lsioarmhf/plex

plex To find PUID PGID type

  • Type ID on the start prompt and you will find UID GID. As shown in the picture below.
id
  1. id
plex Setup Plex
  • Let’s setup the Plex container with following commands.
  1. docker create \
    >--name=plex \
    >--net=host \
    >-e PUID=1000 -e PGID=1000 \
    >-e TZ=Asia/Kolkata \
    >-v /mnt/PcMac:/config \
    >-v /mnt/PcMac:/data/movies \
    >-v /mnt/PcMac:/data/tvshows \
    >-v /mnt/PcMac:/transcode \
    >lsioarmhf/plex
plex Start Plex Container
  • Docker start command will going to start the Plex Container.
  1. docker start "Container Name or ID"
plex Accessing Plex Media Server
  • Here server local IP Address is your Raspberry Pi Address.
    http://server.local.ip.address:32400/web





    create your Raspberry Pi Docker Plex set up. You'll want to specify the folders for your media, which will vary based on your specific configuration:
    docker create \
     --name=plex \
     --net=host \
     -e PUID= -e PGID= \
     -v 
    :/config \
    -v :/data/tvshows \
    -v
    :/data/movies \
    -v :/transcode \
    lsioarmhf/plex
    If you used the aforementioned mount path, use /mnt/Plex media with corresponding movies and TV show folders, your set up will look like:
    docker create \
     --name=plex \
     --net=host \
     -e PUID= -e PGID= \
     -v /mnt/Plex media:/config \
     -v /mnt/Plex media:/data/tvshows \
     -v /mnt/Plex media:/data/movies \
     -v /mnt/Plex media:/transcode \
     lsioarmhf/plex
    Test that everything worked with:
    docker ps -a
    You should see any Docker containers you've got running. If you've got a Plex container, then enter:
    docker start plex
    After that, an output should display which shows your status and uptime for the Docker Plex image. Open a web browser and navigate to [Raspberry Pi IP address]:32400/web. You should see the Plex Media Server configuration screen, where you'll walk through some set up for adding folders, naming your server, and more. 


    docker容器和镜像常用操作命令

    列出所有的容器 ID


    1
    docker ps -aq

    停止所有的容器


    1
    docker stop $(docker ps -aq)

    删除所有的容器


    1
    docker rm $(docker ps -aq)

    删除所有的镜像


    1
    docker rmi $(docker images -q)

    复制文件


    1
    2
    docker cp mycontainer:/opt/file.txt /opt/local/
    docker cp /opt/local/file.txt mycontainer:/opt/

    更新: @snakeliwei 的提醒, 现在的docker有了专门清理资源(container、image、网络)的命令。 docker 1.13 中增加了 docker system prune的命令,针对container、image可以使用docker container prunedocker image prune命令。
    • docker image prune --force --all或者docker image prune -f -a` : 删除所有不使用的镜像
    • docker container prune -f: 删除所有停止的容器










    查看运行容器
    docker ps

    查看所有容器
    docker ps -a

    进入容器
    其中字符串为容器ID:

    docker exec -it d27bd3008ad9 /bin/bash

    1.停用全部运行中的容器:
    docker stop $(docker ps -q)

    2.删除全部容器:
    docker rm $(docker ps -aq)

    3.一条命令实现停用并删除容器:
    docker stop $(docker ps -q) & docker rm $(docker ps -aq)
    ————————————————
    版权声明:本文为CSDN博主「jeikerxiao」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/jeikerxiao/article/details/78476925

    2020年3月11日星期三

    Raspbian systemd-resolve DNS配置

    修改方法
    sudo vim /etc/systemd/resolved.conf

    然后修改DNS,例如:

    [Resolve]
    DNS=114.114.114.114
    DNS=8.8.8.8
    #FallbackDNS=
    #Domains=
    #LLMNR=no
    #MulticastDNS=no
    #DNSSEC=no
    #Cache=yes
    #DNSStubListener=yes
    然后

    systemctl restart systemd-resolved.service
    查看结果:

    $ systemd-resolve --status
    Global
             DNS Servers: 114.114.114.114
                          8.8.8.8
              DNSSEC NTA: 10.in-addr.arpa
                          16.172.in-addr.arpa
                          168.192.in-addr.arpa
                          17.172.in-addr.arpa
                          18.172.in-addr.arpa
                          19.172.in-addr.arpa

    ————————————————
    版权声明:本文为CSDN博主「魍酃」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_43640082/article/details/83859885



    安装并使用add-apt-repository命令

    apt-get install software-properties-common

    The package cache file is corrupted

    错误消息:“E: The package cache file is corrupted, it has the wrong hash”。这是我在终端运行的命令以及输出:
    $ sudo apt update
    复制代码
    示例输出:
    Hit:1 http://it-mirrors.evowise.com/ubuntu bionic InRelease
    Hit:2 http://it-mirrors.evowise.com/ubuntu bionic-updates InRelease
    Hit:3 http://it-mirrors.evowise.com/ubuntu bionic-backports InRelease
    Hit:4 http://it-mirrors.evowise.com/ubuntu bionic-security InRelease
    Hit:5 http://ppa.launchpad.net/alessandro-strada/ppa/ubuntu bionic InRelease
    Hit:7 http://ppa.launchpad.net/leaeasy/dde/ubuntu bionic InRelease
    Hit:8 http://ppa.launchpad.net/rvm/smplayer/ubuntu bionic InRelease
    Ign:6 https://dl.bintray.com/etcher/debian stable InRelease
    Get:9 https://dl.bintray.com/etcher/debian stable Release [3,674 B]
    Fetched 3,674 B in 3s (1,196 B/s)
    Reading package lists... Done
    E: The package cache file is corrupted, it has the wrong hash
    复制代码


    Ubuntu 中的 “The package cache file is corrupted, it has the wrong hash” 错误
    经过一番谷歌搜索,我找到了解决此错误的方法。
    如果你遇到过这个错误,不要惊慌。只需运行下面的命令修复。
    在运行命令之前,请再次确认你在最后加入了 *。在命令最后加上 * 很重要。如果你没有添加,它会删除 /var/lib/apt/lists/*目录,而且无法恢复。我提醒过你了!
    $ sudo rm -rf /var/lib/apt/lists/*
    复制代码
    现在我再次使用下面的命令更新系统:
    $ sudo apt update
    复制代码


    现在好了!希望它有帮助。

    作者:Linux中国
    链接:https://juejin.im/post/5d5d596c6fb9a06b1f1434fc
    来源:掘金
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    在 Raspberry Pi 上安装 Docker


    在 Raspberry Pi 上安装 Docker 只需要运行一些命令。
    首先,使用以下 curl 命令下载 Docker 安装脚本:
    curl -fsSL https://get.docker.com -o get-docker.sh
    下载完成后,键入以下命令执行脚本:
    sh get-docker.sh


    安装方法二(apt 安装)

    由于 Raspbian 基于 Debian,我们还可以使用 apt 来安装 Docker,首先需要更新一下软件包的索引。
    1
    sudo apt-get update

    安装 HTTPS 所依赖的包

    1
    2
    3
    sudo apt-get install apt-transport-https \
                           ca-certificates \
                           software-properties-common

    添加 Docker 的 GPG key

    1
    curl -fsSL https://yum.dockerproject.org/gpg | sudo apt-key add -
    验证 key id:
    1
    apt-key fingerprint 58118E89F3A912897C070ADBF76221572C52609D
    设置稳定的 repository:
    1
    2
    3
    4
    sudo add-apt-repository \
           "deb https://apt.dockerproject.org/repo/ \
           raspbian-$(lsb_release -cs) \
           main"
    注意:如果 add-apt-repository 命令遇到问题,可以尝试将下面这行添加到树莓派软件源 sources.list,操作如下:
    1
    sudo nano /etc/apt/sources.list
    添加一行:
    deb https://apt.dockerproject.org/repo/ raspbian-RELEASE main
    根据自己系统版本调整上面的 RELEASE。通过下面的命令可以查看发行版。
    1
    lsb_release -cs

    安装 Docker

    1
    2
    sudo apt-get update
    sudo apt-get -y install docker-engine

    测试 Docker

    运行 hello-world 镜像来做一个测试。
    1
    sudo docker run armhf/hello-world((((注意这个位置,根据 cpu 选
    如果 Docker 安装成功,你会看到一条消息:“Hello from Docker!”。

    常用配置和工具命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #查看 Docker 版本
    docker -v
    sudo docker pull 仓库/镜像:版本(留空的话默认为 latest)
    sudo docker run 加参数,用来创建容器
    #查看运行容器
    sudo docker ps
    #查看所有下载的镜像
    sudo docker images
    #进入容器终端
    sudo docker exec -i -t ha /bin/bash
    #实时查看10行的 ha 日志
    sudo docker logs -f -t --tail 10 ha
    #重启 systemctl 守护进程
    sudo systemctl daemon-reload
    #设置 Docker 开机启动
    sudo systemctl enable docker
    #开启 Docker 服务
    sudo systemctl start docker
    #下载 Docker 图形化界面 portainer
    sudo docker pull portainer/portainer
    #创建 portainer 容器
    sudo docker volume create portainer_data
    #运行 portainer
    sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer


    在图形化界面中操作更加便利。运行之后在浏览器中输入树莓派IP:9000 进入界面。

    首次访问需要设定登录密码。

    对于树莓派上的应用,选择 Local 就好。

    在控制台可以看到 Docker 的各种资源信息。



    在PVE使用虚拟 USB 存储设备 + ARPL 引导 DSM

      部分内容来自: https://blog.myds.cloud/archives/synoboot-usb-image-in-pve-virtual-machine.html 虚拟机建好之后,打开配置文件 nano /etc/pve/qemu-server/100.conf ...