暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAMのタイトル

暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAM

唯一172.16.0 2つのIPアドレスは、sshdのとのホストに加えて、ネットワーク172.16.0.0/16 172.16.0.0/24ネットワーク上のすべてのホストにvsftpdのサービスにバインドされているネイティブのアドレスにまず、オープンXは、学校の数である。しかし、ことができます172.16.0.200アクセス、各ユーザーのアクセスは、ログファイル、ノートに記録しなければなりません

/etc/hosts.allow:
    sshd,vsftpd: 172.16.0.0/16 EXCEPT 172.16.0.0/24 EXCEPT 172.16.0.200 :spawn echo `date` login >> /var/log/ssh.log
/etc/hosts.deny:
    sshd,vsftpd:ALL

2、スクリプト/root/bin/checkip.sh、SSHログインの失敗によって10倍以上を発見した場合は、この禁止抗に、自動リモートIPを5分ごとにチェックするには、TCPラッパーのブラックリストを尋ねました

[root@localhost ~]# echo '*/5 * * * * /data/checkip.awk /var/log/secure' >> /var/spool/cron/root
[root@localhost ~]# cat /data/checkip.awk
#!/bin/awk -f
/sshd.*Failed password/{ip=$(NF-3); ips[ip]++}
END{
    for (i in ips){
        if(ips[i]>10){
            cmd="echo sshd:"i">>/etc/hosts.deny"; system(cmd)
        }
    }
}

3、GPGの暗号化と復号化:

インタラクティブ暗号化:ボックスがポップアップ表示されます

[root@localhost ~]# gpg -c virtual_machine_reset_5.sh 

インタラクティブ解読:

gpg -d virtual_machine_reset_5.sh.gpg

非対話型:

[root@localhost tmp]# echo "cX0BCoWt1+qq9ZeKYCXTtxMQeiI" | gpg -c --no-tty  --batch --passphrase-fd 0 virtual_machine_reset_5.sh
[root@localhost tmp]# gpg --batch --passphrase cX0BCoWt1+qq9ZeKYCXTtxMQeiI virtual_machine_reset_5.sh.gpg 

ビューのバージョンのgpg:GPG -h

GPG CentOS7は2.0.22で、GPG Ubuntu18.04は2.2.4です

図4に示すように、非対話型キー生成

[root@localhost tmp]# ssh-keygen -f ~/.ssh/id_rsa -P '' -C 'admin'

5、はssh_config

1、改端口号
Port  22
2、加主机
[root@localhost tmp]# tail -5 /etc/ssh/ssh_config
Host testbox
    HostName 192.168.38.146
    User root
    Port 2222
    IdentityFile ~/.ssh/id_rsa
就可以直接连了,默认是22端口

6、sshコマンドのオプション

ProxyCommand

    -q      静默模式。大多数警告信息将不输出。

    -W host:port  请求客户端上的标准输入和输出通过安全隧道转发到host:port上,该选项隐含了"-N","-T",ExitOnForwardFailure和ClearAllForwardings选项

    -T      禁止为ssh分配伪终端。
    -N      明确表示不执行远程命令。仅作端口转发时比较有用。

# ProxyCommand ssh -q -W %h:%p gateway.example.com 当跳板机用

sshの飛び石:

7、ローカルポート転送:

ssh -L [local_bind_addr:]local_port:remote:remote_port middle_host
root@host3:~# ssh -L 2222:192.168.38.154:80   192.168.10.134 -fNg

この魔法のようなコマンドを使用して、あなたが今192.168.10.135:2222訪問してアクセスすることができます192.168.38.154:80

「-L」オプションは、それが作品として、そのローカルポート転送を示す場合:2222ポートをリスニングhost3のホスト、HOST3ローカルマップ意志192.168.38.154:80 2222;誰かが192.168.10.135:2222を訪れたとき、ローカルポートのsshを、この192.168.10.134にパケットを転送; 192.168.10.134は192.168.38.154:80にパケットを転送します

暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAMのタイトル

アンコールます。ssh -L 2222:127.0.0.1:80 127.0.0.1 -fNg

このコマンドが実行された後、ローカルポート80へのトラフィック2222インターフェイスのネイティブを提唱

コマンドが実行されたか、ローカルIPアクセスがとてもローカルフォワーディングと呼ばれるポートであり、後にそれを見つけることができます

図8に示すように、リモートポートフォワーディング

リモートポートフォワーディングは、ローカルにデータを転送するリモートポートを表します。

このNiubi!私は、サーバー上のリモートポートに接続しないでローカルにリモートポートフォワーディングは、ローカルに接続することができます!

、下記の-Rを使用して、リモートポート転送を参照してください、GatewayPortsのを開くには、パブリックネットワークサーバに注意を払います

[root@hk-server ~]# sed -i '$a GatewayPorts yes' /etc/ssh/sshd_config && systemctl restart sshd #这个必须得开,不然端口监听在127.0.0.1上
[root@192-168-38-140 ~]# ssh -R 2222:192.168.38.154:22 47.75.136.95 -fNg

それが動作する方法は次のとおりです。 192.168.38.140要求のssh 47.75.136.95、47.75.136.95にリスニングソケットのポート2222に基づいて、ポートが192.168.38.154:22マッピングされている、ホスト接続47.75.136.95:2222があるときデータ接続は192.168.38.154:22を通して安全なトンネルを介してこのすべてに転送されるとき

暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAMのタイトル

この方法により、我々はアウトマッピングされたブログサイトのネットワークを構築し、その後、あなたは、パブリックネットワークを介してアクセスすることができます

アンコールます。ssh -R 12345:127.0.0.1:22 47.75.136.95 -fNg

[root@192-168-38-140 ~]# ssh -R 12345:127.0.0.1:22 47.75.136.95 -fNg

コマンドが実行された後に転送する独自の要求が、それは47.75.136.95:12345ローカル192.168.38.140によってアクセスすることができます

図9に示すように、動的ポートフォワーディング(SOCKSプロキシ)

SSH -D [のbind_addr:]ポートリモート

開始要求SSHでSSHサポート動的ポート転送は、プロトコルを判定判定結果に応じて、どのようなツールアプリケーション層プロトコル、および宛先ポートを決定します

それはすることができます:ネットワークがインターネットサーバーにアクセスすることはできませんします。

[root@192-168-38-140 ~]# ssh -D 1080 127.0.0.1 -fNg

機械意志ソケットプロキシに続い192.168.10.135のFirefoxブラウザのプロキシ設定:192.168.10.134 1080

:configがtrueに設定さnetwork.proxy.socks_remote_dnsは、リモートDNSをオンにします

仕事は: I 192.168.38.140、私は1080ポートにデータを転送することができ、すべて、ローカルで1080を聞いて、私は、SSHトンネルのダイナミックを介してデータを転送しました

暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAMのタイトル

10、ssh_configの頻繁にオプションを変更し、最適化

UseDNS no       #禁用DNS,解决连接慢
GSSAPIAuthentication no     #不开启GSSAPI认证,解决连接慢
Port 9527       #修改默认端口号
PermitRootLogin yes     #不允许root登陆
PermitEmptyPasswords no  #禁止空密码登陆

一般的に使用されるホスト書き込みはssh_configや内部の〜/ .ssh / configに、例えばのssh_configの使用

Host testbox
    HostName 192.168.38.146
    User root
    Port 2222
    IdentityFile ~/.ssh/id_rsa
ssh-agentの鍵管理

多くの場合、本番環境キー暗号化は、それぞれの接続は、パスワード、トラブルの多くが、よりプライベートを必要とする場合、また、すべてを管理するためのssh-agentを指定する必要はありません

ssh-agentの開始

ssh-agentの

添加私钥交给ssh-agent管理

ssh-add ~/.ssh/id_rsa

列出ssh-agent管理的密钥

ssh-add -L

注意

​ 使用ssh-add失败,提示Could not open a connection to your authentication agent.
执行:ssh-agent bash 再试
​ 还有一种情况下比如,主机A需要通过主机B才能访问主机C的情况下,我们可能需要在B上保存私钥才可以,但是如果使用ssh-agent的agent forwarding功能后,就可以使用主机A登陆B和C了,而不用在B上保存私钥

11、pam模块-google验证器

比如google身份验证就是通过pam模块实现的

如何使用:epel源安装google-authenticator

apk:https://www.lanzous.com/i5yl8ad 密码:6666

家目录那个隐藏文件里面放着几个临时密码,防止手机丢了,可以自行在里面加几个密码,一次有效,

参考:http://dwz.win/j5v

12、pam模块学习

以pam_limits模块为例

先man看帮助

NAME
       pam_limits - PAM module to limit resources
SYNOPSIS
       pam_limits.so [conf=/path/to/limits.conf] [debug] [set_all] [utmp_early] [noaudit]
DESCRIPTION
       The pam_limits PAM module sets limits on the system resources that can be obtained in a
       user-session. Users of uid=0 are affected by this limits, too.
       By default limits are taken from the /etc/security/limits.conf config file. Then individual
       *.conf files from the /etc/security/limits.d/ directory are read. The files are parsed one
       after another in the order of "C" locale. The effect of the individual files is the same as
       if all the files were concatenated together in the order of parsing. If a config file is
       explicitly specified with a module option then the files in the above directory are not
       parsed.

​ *可以看到,不管哪个用户,哪怕root都受到此限制的影响,且默认情况下,限制文件未/etc/security/limits.conf及/etc/security/limits.conf.d/.conf**

使用limit -a查看当前所有资源限制情况

[root@192-168-38-140 pam.d]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1779
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1779
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

默认文件打开数太小,不够,生产中必须修改,ubuntu18.04现在默认都改大了,如下:

*   soft nofile 128000
*   hard nofile 256000

root soft nofile 128000
root hard nofile 256000

暗号化、GPG暗号化、sshの3フォワーディング、opensslの、PAMのタイトル

关于fork弹的避免措施其一就是显示每个用户的进程数,比如

*   soft    nproc   1024
*   hard    nproc   1024

ulimit -n 2000只会临时生效,建议写文件

13、自签证书和CA生成

查看证书到期时间:

[root@192-168-38-140 ~]# openssl x509 -in /etc/pki/tls/cert.pem -noout -dates | sed -nr 's/notAfter=//p'
Dec 31 09:37:37 2030 GMT
[root@192-168-38-140 ~]# openssl s_client -host www.taobao.com -port 443 -showcerts </dev/null 2>/dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p' -n | openssl x509 -noout -text | sed -n 's/ *Not After : *//p'
Nov 13 07:36:08 2019 GMT

おすすめ

転載: blog.51cto.com/14012942/2435965