自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SSH的一些安全小技巧

運(yùn)維 系統(tǒng)運(yùn)維
關(guān)于 ssh 的好處, 相信不用我多說(shuō)了吧? 簡(jiǎn)而言之, 之前的 rpc command 與 telnet 都全可用 ssh 代替。

 一前言

  關(guān)于 ssh 的好處相信不用我多說(shuō)了吧?

  簡(jiǎn)而言之之前的 rpc command 與 telnet 都全可用 ssh 代替.

  比方如下的這些常見(jiàn)功能:

  遠(yuǎn)程登錄

  ssh user@remote.machine

  遠(yuǎn)程執(zhí)行

  ssh user@remote.machine 'command ...'

  遠(yuǎn)程復(fù)制

  scp user@remote.machine:/remote/path /local/path

  scp /local/path user@remote.machine:/remote/path

  - X forward

  ssh -X user@remote.machine

  xcommand ...

  - Tunnel / Portforward

  ssh -L 1234:remote.machine:4321 user@remote.machine

  ssh -R 1234:local.machine:4321 user@remote.machine

  ssh -L 1234:other.machine:4321 user@remote.machine

  至于詳細(xì)的用法我這就不說(shuō)了請(qǐng)讀者自行研究吧.

  我這里要說(shuō)的是針對(duì) ssh 服務(wù)為大家介紹一些安全技巧希望大家用得更安心些.

  二實(shí)作

  (實(shí)作以 RedHat 9 為范例)

  1) 禁止 root 登錄

  # vi /etc/ssh/sshd_config

  PermitRootLogin no

  2) 廢除密碼登錄強(qiáng)迫使用 RSA 驗(yàn)證(假設(shè) ssh 賬戶為 user1 )

  # vi /etc/ssh/sshd_config

  RSAAuthentication yes

  PubkeyAuthentication yes

  AuthorizedKeysFile .ssh/authorized_keys

  PasswordAuthentication no

  # service sshd restart

  # su - user1

  $ mkdir ~/.ssh 2>/dev/null

  $ chmod 700 ~/.ssh

  $ touch ~/.ssh/authorized_keys

  $ chmod 644 ~/.ssh/authorized_keys

  --------------------------------------------------

  轉(zhuǎn)往 client :

  $ ssh-keygen -t rsa

  (按三下 enter 完成﹔不需設(shè)密碼,除非您會(huì)用 ssh-agent 。)

  $ scp ~/.ssh/id_rsa.pub user1@server.machine:id_rsa.pub

  (若是 windows client, 可用 puttygen.exe 產(chǎn)生 public key,

  然后復(fù)制到 server 端后修改之使其內(nèi)容成為單一一行.)

  ---------------------------------------------------

  回到 server :

  $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

  $ rm ~/id_rsa.pub

  $ exit

  3) 限制 su / sudo 名單:

  # vi /etc/pam.d/su

  auth required /lib/security/$ISA/pam_wheel.so use_uid

  # visudo

  %wheel ALL=(ALL) ALL

  # gpasswd -a user1 wheel

  4) 限制 ssh 使用者名單

  # vi /etc/pam.d/sshd

  auth required pam_listfile.so item=user sense=allow file=/etc/ssh_users onerr=fail

  # echo user1 >> /etc/ssh_users

 

#p#

 

    5) 封鎖 ssh 聯(lián)機(jī)并改用 web 控管清單

  # iptables -I INPUT -p tcp --dport 22 -j DROP

  # mkdir /var/www/html/ssh_open

  # cat > /var/www/html/ssh_open/.htaccess < 

  AuthName "ssh_open"

  AuthUserFile /var/www/html/ssh_open/.htpasswd

  AuthType basic

  require valid-user

  END

  # htpasswd -c /var/www/html/ssh_open/.htpasswd user1

  (***還將 SSL 設(shè)起來(lái)或只限 https 聯(lián)機(jī)更佳我這里略過(guò) SSL 設(shè)定請(qǐng)讀者自補(bǔ).)

  (如需控制聯(lián)機(jī)來(lái)源那請(qǐng)?jiān)傺a(bǔ) Allow/Deny 項(xiàng)目也請(qǐng)讀者自補(bǔ).)

  # cat > /var/www/html/ssh_open/ssh_open.php < 

   

  //Set dir path for ip list

  $dir_path=".";

  //Set filename for ip list

  $ip_list="ssh_open.txt";

  //Get client ip

  $user_ip=$_SERVER['REMOTE_ADDR'];

  //allow specifying ip if needed

  if (@$_GET['myip']) {

  $user_ip=$_GET['myip'];

  }

  //checking IP format

  if ($user_ip==long2ip(ip2long($user_ip))) {

  //Put client ip to a file

  if(@!($file = fopen("$dir_path/$ip_list","w+")))

  {

  echo "Permission denied!!";

  echo "Pls Check your rights to dir $dir_path or file $ip_list";

  }

  else

  {

  fputs($file,"$user_ip");

  fclose($file);

  echo "client ip($user_ip) has put into $dir_path/$ip_list";

  }

  } else {

  echo "Invalid IP format!!ssh_open.txt was not changed.";

  }

  ?>

  END

  # touch /var/www/html/ssh_open/ssh_open.txt

  # chmod 640 /var/www/html/ssh_open/*

  # chgrp apache /var/www/html/ssh_open/*

  # chmod g+w /var/www/html/ssh_open/ssh_open.txt

  # chmod o+t /var/www/html/ssh_open

  # service httpd restart

  # mkdir /etc/iptables

  # cat > /etc/iptables/sshopen.sh < 

  #!/bin/bash

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  list_dir=/var/www/html/ssh_open

  list_file=$list_dir/ssh_open.txt

  chain_name=ssh_rules

  mail_to=root

  # clear chain if exits, or create chain.

  iptables -L -n | /bin/grep -q "^Chain $chain_name" && {

  iptables -F $chain_name

  true

  } || {

  iptables -N $chain_name

  iptables -I INPUT -p tcp --dport 22 -j $chain_name

  }

  # clear chain when needed

  [ "$1" = clear ] && {

  iptables -F $chain_name

  exit 0

  }

責(zé)任編輯:春曉 來(lái)源: 比特網(wǎng)
相關(guān)推薦

2022-02-17 13:58:38

Linux技巧文件

2024-03-11 15:08:26

Linux操作系統(tǒng)進(jìn)程

2009-11-17 17:15:21

路由器安全設(shè)置

2015-08-17 15:53:58

Linux桌面

2011-07-19 18:11:09

iPhone 開(kāi)發(fā)

2020-09-25 08:28:12

Javascript

2022-08-28 23:51:04

編輯器vim代碼

2012-05-21 10:13:05

XCode調(diào)試技巧

2013-03-29 13:17:53

XCode調(diào)試技巧iOS開(kāi)發(fā)

2011-06-01 16:50:21

JAVA

2021-02-16 09:02:59

Python代碼技巧

2011-05-23 18:06:24

站內(nèi)優(yōu)化SEO

2021-10-12 23:10:58

UnsafeJavaJDK

2011-07-12 09:47:53

WebService

2019-11-22 10:10:46

IT工具技術(shù)

2022-12-02 14:58:27

JavaScript技巧編程

2021-11-01 12:10:56

Python技巧代碼

2017-09-20 15:07:32

數(shù)據(jù)庫(kù)SQL注入技巧分享

2017-05-10 15:30:30

skynet崩潰程序

2018-05-07 08:22:19

LinuxImageMagick查看圖片
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)