diff --git a/Linux/readme.md b/Linux/readme.md index e69de29..f633f80 100644 --- a/Linux/readme.md +++ b/Linux/readme.md @@ -0,0 +1,13 @@ +# Linux +## overview +- Linux basics + - Files and Directory + - Users & Groups + - Privileges +- Linux tools + - SSH + - SSH client + - SSH server + - SH key + - Vim - [Beginer's guide](https://www.linux.com/training-tutorials/vim-101-beginners-guide-vim/ ) + diff --git a/Linux/ssh/ssh.md b/Linux/ssh/ssh.md new file mode 100644 index 0000000..1c44b6e --- /dev/null +++ b/Linux/ssh/ssh.md @@ -0,0 +1,531 @@ +# SSH +## OpenSSH SSH client (remote login program) + +- SSH: (SSH client) is a program for logging into a remote machine and for executing commands on a + remote machine +- SSH Server: server + +## Fist login to remote server +```bash +$ ssh student@172.30.6.99 +The authenticity of host '172.30.6.99 (172.30.6.99)' can't be established. +ECDSA key fingerprint is SHA256:w2XxVfnfPpYCeCjEBzmI0AeuaqiC0Sx1FBwrGmnYh64. +Are you sure you want to continue connecting (yes/no)? yes +Warning: Permanently added '172.30.6.99' (ECDSA) to the list of known hosts. +student@172.30.6.99's password: +Connection closed by 172.30.6.99 port 22 +``` +## Login to remote server +```bash +admin@d3bi4n:~$ ssh student@172.30.6.99 +student@172.30.6.99's password: +Linux debianserver 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 + +The programs included with the Debian GNU/Linux system are free software; +the exact distribution terms for each program are described in the +individual files in /usr/share/doc/*/copyright. + +Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent +permitted by applicable law. +Last login: Thu Apr 8 11:15:57 2021 from 172.30.6.84 + +``` +ECDSA key finger print is used to validate the server identity for future connection. + +## Installing OpenSSH Server on Debian 10 + +First of all, make sure that your packages are up to date by running an update command +```bash +$ sudo apt-get update +``` +Updating apt packages on Debian 10 + +In order to install a SSH server on Debian 10, run the following command +```bash +$ sudo apt-get install openssh-server +``` +The command should run a complete installation process and it should set up all the necessary files for your SSH server. + +If the installation was successful, you should now have a sshd service installed on your host. + +To check your newly installed service, run the following command +```bash +$ sudo systemctl status sshd +user@w3b-73rv3r:~$ sudo systemctl status sshd +[sudo] password for user: +● ssh.service - OpenBSD Secure Shell server + Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) + Active: active (running) since Thu 2021-04-08 05:35:36 EDT; 10min ago + Docs: man:sshd(8) + man:sshd_config(5) + Process: 490 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) + Main PID: 499 (sshd) + Tasks: 1 (limit: 4689) + Memory: 3.8M + CGroup: /system.slice/ssh.service + └─499 /usr/sbin/sshd -D + +Apr 08 05:35:36 w3b-73rv3r systemd[1]: Starting OpenBSD Secure Shell server... +Apr 08 05:35:36 w3b-73rv3r sshd[499]: Server listening on 0.0.0.0 port 22. +Apr 08 05:35:36 w3b-73rv3r sshd[499]: Server listening on :: port 22. +Apr 08 05:35:36 w3b-73rv3r systemd[1]: Started OpenBSD Secure Shell server. +Apr 08 05:45:17 w3b-73rv3r sshd[1663]: Accepted password for user from 172.30.6.99 port 55748 ssh2 +Apr 08 05:45:17 w3b-73rv3r sshd[1663]: pam_unix(sshd:session): session opened for user user by (uid=0) +r4v3n@w3b-73rv3r:~$ + +``` + +This tutorial focuses on setting up and configuring a SSH server on a Debian 10 minimal server + +SSH, for Secure Shell, is a network protocol that is used in order to operate remote logins to distant machines within a local network or over Internet. SSH architectures typically includes a SSH server that is used by SSH clients to connect to the remote machine. + +As a system administrator, it is very likely that you are using SSH on a daily basis to connect to remote machines across your network. + +As a consequence, when new hosts are onboarded to your infrastructure, you may have to configure them to install and enable SSH on them. + +In this tutorial, we are going to see how you can install and enable SSH, via OpenSSH, on a Debian 10 distributions. + +Table of Contents + + Prerequisites + Installing OpenSSH Server on Debian 10 + Enabling SSH traffic on your firewall settings + Enable SSH server on system boot + Configuring your SSH server on Debian + Changing SSH default port + Disabling Root Login on your SSH server + Configuring key-based SSH authentication + Restarting your SSH server to apply changes + Connecting to your SSH server + Exiting your SSH server + Disabling your SSH server + Troubleshooting + Debian : SSH connection refused + Debian : SSH access denied + SSH password access denied + SSH key access denied + Debian : Unable to locate package openssh-server + Conclusion + +Prerequisites + +In order to install a SSH server on Debian 10, you will need to have sudo privileges on your host. + +To check whether you have sudo privileges or not, run the following command + +$ sudo -l + +If you are seeing the following entries on your terminal, it means that you have elevated privileges +Checking sudo privileges on Debian 10 + +By default, the ssh utility should be installed on your host, even on minimal configurations. + +In order to check the version of your SSH utility, you can run the following command + +$ ssh -V + +Checking SSH version on Debian 10 + +As you can see, I am running OpenSSH v7.9 with OpenSSL v1.1.1. + +Note that it does not mean that SSH servers are installed on my host, it just means that I may able to connect to remote machines as a client using the SSH utility. + +It also mean that specific utilities related the SSH protocol (such as scp for example) or related to FTP servers (such as sftp) will be available on my host. +Installing OpenSSH Server on Debian 10 + +First of all, make sure that your packages are up to date by running an update command + +$ sudo apt-get update + +Updating apt packages on Debian 10 + +In order to install a SSH server on Debian 10, run the following command + +$ sudo apt-get install openssh-server + +The command should run a complete installation process and it should set up all the necessary files for your SSH server. + +If the installation was successful, you should now have a sshd service installed on your host. + +To check your newly installed service, run the following command + +$ sudo systemctl status sshd + +Checking ssh server status on Debian 10 + +By default, your SSH server is going to run on port 22. + +This is the default port assigned for SSH communications. You can check if this is the case on your host by running the following netstat command + +$ netstat -tulpn | grep 22 + +Great! Your SSH server is now up and running on your Debian 10 host. +Enabling SSH traffic on your firewall settings + +If you are using UFW as a default firewall on your Debian 10 system, it is likely that you need to allow SSH connections on your host. + +To enable SSH connections on your host, run the following command + +$ sudo ufw allow ssh + +Enabling SSH connections with UFW on Debian 10 +Enable SSH server on system boot + +As you probably saw, your SSH server is now running as a service on your host. + +It is also very likely that it is instructed to start at boot time. + +To check whether your service is enable or not, you can run the following command + +$ sudo systemctl list-unit-files | grep enabled | grep ssh + +If no results are shown on your terminal, enable the service and run the command again + +$ sudo systemctl enable ssh + +Configuring your SSH server on Debian + +Before giving access to users through SSH, it is important to have a set of secure settings to avoid being attacked, especially if your server is running as an online VPS. + +As we already saw in the past, SSH attacks are pretty common but they can be avoided if we change default settings available. + +By default, your SSH configuration files are located at /etc/ssh/ +Listing SSH configuration files in etc + +In this directory, you are going to find many different configuration files, but the most important ones are : + + ssh_config: defines SSH rules for clients. It means that it defines rules that are applied everytime you use SSH to connect to a remote host or to transfer files between hosts; + sshd_config: defines SSH rules for your SSH server. It is used for example to define the reachable SSH port or to deny specific users from communicating with your server. + +We are obviously going to modify the server-wide part of our SSH setup as we are interested in configuring and securing our OpenSSH server. + + +Changing SSH default port + +The first step towards running a secure SSH server is to change the default assigned by the OpenSSH server. + +Edit your sshd_config configuration file and look for the following line. + +#Port 22 + +Make sure to change your port to one that is not reserved for other protocols. I will choose 2222 in this case. +Changing the default SSH port + +When connecting to your host, if it not running on the default port, you are going to specify the SSH port yourself. + +Please refer to the ‘Connecting to your SSH server’ section for further information. +Disabling Root Login on your SSH server + +By default, root login is available on your SSH server. + +It should obviously not be the case as it would be a complete disaster if hackers were to login as root on your server. + +If by chance you disabled the root account in your Debian 10 installation, you can still configure your SSH server to refuse root login, in case you choose to re-enable your root login one day. + +To disable root login on your SSH server, modify the following line + + +#PermitRootLogin + +PermitRootLogin no + +Disabling root login for SSH on Debian +Configuring key-based SSH authentication + +In SSH, there are two ways of connecting to your host : by using password authentication (what we are doing here), or having a set of SSH keys. + +If you are curious about key-based SSH authentication on Debian 10, there is a tutorial available on the subject here. +Restarting your SSH server to apply changes + +In order for the changes to be applied, restart your SSH service and make sure that it is correctly restarted + +$ sudo systemctl restart sshd +$ sudo systemctl status sshd + +SSH server status from systemd + + + +BasicsLinux System Administration +How To Install and Enable SSH Server on Debian 10 +written by schkn +How To Install and Enable SSH Server on Debian 10 + +This tutorial focuses on setting up and configuring a SSH server on a Debian 10 minimal server + +SSH, for Secure Shell, is a network protocol that is used in order to operate remote logins to distant machines within a local network or over Internet. SSH architectures typically includes a SSH server that is used by SSH clients to connect to the remote machine. + +As a system administrator, it is very likely that you are using SSH on a daily basis to connect to remote machines across your network. + +As a consequence, when new hosts are onboarded to your infrastructure, you may have to configure them to install and enable SSH on them. + +In this tutorial, we are going to see how you can install and enable SSH, via OpenSSH, on a Debian 10 distributions. + +Table of Contents + + Prerequisites + Installing OpenSSH Server on Debian 10 + Enabling SSH traffic on your firewall settings + Enable SSH server on system boot + Configuring your SSH server on Debian + Changing SSH default port + Disabling Root Login on your SSH server + Configuring key-based SSH authentication + Restarting your SSH server to apply changes + Connecting to your SSH server + Exiting your SSH server + Disabling your SSH server + Troubleshooting + Debian : SSH connection refused + Debian : SSH access denied + SSH password access denied + SSH key access denied + Debian : Unable to locate package openssh-server + Conclusion + +Prerequisites + +In order to install a SSH server on Debian 10, you will need to have sudo privileges on your host. + +To check whether you have sudo privileges or not, run the following command + +$ sudo -l + +If you are seeing the following entries on your terminal, it means that you have elevated privileges +Checking sudo privileges on Debian 10 + +By default, the ssh utility should be installed on your host, even on minimal configurations. + +In order to check the version of your SSH utility, you can run the following command + +$ ssh -V + +Checking SSH version on Debian 10 + +As you can see, I am running OpenSSH v7.9 with OpenSSL v1.1.1. + +Note that it does not mean that SSH servers are installed on my host, it just means that I may able to connect to remote machines as a client using the SSH utility. + +It also mean that specific utilities related the SSH protocol (such as scp for example) or related to FTP servers (such as sftp) will be available on my host. +Installing OpenSSH Server on Debian 10 + +First of all, make sure that your packages are up to date by running an update command + +$ sudo apt-get update + +Updating apt packages on Debian 10 + +In order to install a SSH server on Debian 10, run the following command + +$ sudo apt-get install openssh-server + +The command should run a complete installation process and it should set up all the necessary files for your SSH server. + +If the installation was successful, you should now have a sshd service installed on your host. + +To check your newly installed service, run the following command + +$ sudo systemctl status sshd + +Checking ssh server status on Debian 10 + +By default, your SSH server is going to run on port 22. + +This is the default port assigned for SSH communications. You can check if this is the case on your host by running the following netstat command + +$ netstat -tulpn | grep 22 + +Great! Your SSH server is now up and running on your Debian 10 host. +Enabling SSH traffic on your firewall settings + +If you are using UFW as a default firewall on your Debian 10 system, it is likely that you need to allow SSH connections on your host. + +To enable SSH connections on your host, run the following command + +$ sudo ufw allow ssh + +Enabling SSH connections with UFW on Debian 10 +Enable SSH server on system boot + +As you probably saw, your SSH server is now running as a service on your host. + +It is also very likely that it is instructed to start at boot time. + +To check whether your service is enable or not, you can run the following command + +$ sudo systemctl list-unit-files | grep enabled | grep ssh + +If no results are shown on your terminal, enable the service and run the command again + +$ sudo systemctl enable ssh + +Enabling the SSH server on boot on Debian 10 +Configuring your SSH server on Debian + +Before giving access to users through SSH, it is important to have a set of secure settings to avoid being attacked, especially if your server is running as an online VPS. + +As we already saw in the past, SSH attacks are pretty common but they can be avoided if we change default settings available. + +By default, your SSH configuration files are located at /etc/ssh/ +Listing SSH configuration files in etc + +In this directory, you are going to find many different configuration files, but the most important ones are : + + ssh_config: defines SSH rules for clients. It means that it defines rules that are applied everytime you use SSH to connect to a remote host or to transfer files between hosts; + sshd_config: defines SSH rules for your SSH server. It is used for example to define the reachable SSH port or to deny specific users from communicating with your server. + +We are obviously going to modify the server-wide part of our SSH setup as we are interested in configuring and securing our OpenSSH server. +Changing SSH default port + +The first step towards running a secure SSH server is to change the default assigned by the OpenSSH server. + +Edit your sshd_config configuration file and look for the following line. + +#Port 22 + +Make sure to change your port to one that is not reserved for other protocols. I will choose 2222 in this case. +Changing the default SSH port + +When connecting to your host, if it not running on the default port, you are going to specify the SSH port yourself. + +Please refer to the ‘Connecting to your SSH server’ section for further information. +Disabling Root Login on your SSH server + +By default, root login is available on your SSH server. + +It should obviously not be the case as it would be a complete disaster if hackers were to login as root on your server. + +If by chance you disabled the root account in your Debian 10 installation, you can still configure your SSH server to refuse root login, in case you choose to re-enable your root login one day. + +To disable root login on your SSH server, modify the following line + +#PermitRootLogin + +PermitRootLogin no + +Disabling root login for SSH on Debian +Configuring key-based SSH authentication + +In SSH, there are two ways of connecting to your host : by using password authentication (what we are doing here), or having a set of SSH keys. + +If you are curious about key-based SSH authentication on Debian 10, there is a tutorial available on the subject here. +Restarting your SSH server to apply changes + +In order for the changes to be applied, restart your SSH service and make sure that it is correctly restarted + +$ sudo systemctl restart sshd +$ sudo systemctl status sshd + +SSH server status from systemd + +Also, if you change the default port, make sure that the changes were correctly applied by running a simple netstat command + +$ netstat -tulpn | grep 2222 + +Checking SSH port on Linux using netstat +Connecting to your SSH server + +In order to connect to your SSH server, you are going to use the ssh command with the following syntax + +$ ssh -p @ + +If you are connecting over a LAN network, make sure to get the local IP address of your machine with the following command + +$ sudo ifconfig + +Checking local IP using ifconfig + +For example, in order to connect to my own instance located at 127.0.0.1, I would run the following command + +$ ssh -p 2222 @127.0.0.1 + +You will be asked to provide your password and to certify that the authenticity of the server is correct. +Connecting to SSH server on Debian 10 Buster +Exiting your SSH server + +In order to exit from your SSH server on Debian 10, you can hit Ctrl + D or type ‘logout’ and your connection will be terminated. +Logout from the SSH server +Disabling your SSH server + +In order to disable your SSH server on Debian 10, run the following command + +$ sudo systemctl stop sshd +$ sudo systemctl status sshd + +From there, your SSH server won’t be accessible anymore. +Connection refused from the SSH server +Troubleshooting + +In some cases, you may run into many error messages when trying to setup a SSH server on Debian 10. + +Here is the list of the common errors you might get during the setup. +Debian : SSH connection refused + +Usually, you are getting this error because your firewall is not properly configured on Debian. + +To solve “SSH connection refused” you have to double check your UFW firewall settings. + +By default, Debian uses UFW as a default firewall, so you might want to check your firewall rules and see if SSH is correctly allowed. + +$ sudo ufw status + +Status: active + +To Action From +-- ------ ---- +22/tcp ALLOW Anywhere + +If you are using iptables, you can also have a check at your current IP rules with the iptables command. + +$ sudo iptables -L -n + +Chain INPUT (policy ACCEPT) +target prot opt source destination +ACCEPT tcp -- anywhere anywhere tcp dpt:ssh + +If the rule is not set for SSH, you can set by running the iptables command again. + +$ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT + +Debian : SSH access denied + +Sometimes, you may be denied the access to your SSH server with this error message “SSH access denied” on Debian. + +To solve this issue, it depends on the authentication method you are using. +SSH password access denied + +If you are using the password method, double check your password and make sure you are entering it correctly. + +Also, it is possible to configure SSH servers to allow only a specific subset of users : if this is the case, make sure you belong to that list. + +Finally, if you want to log-in as root, make sure that you modified the “PermitRootLogin” option in your “sshd_config” file. + +#PermitRootLogin + +PermitRootLogin yes + +SSH key access denied + +If you are using SSH keys for your SSH authentication, you may need to double check that the key is correctly located in the “authorized_keys” file. + +If you are not sure about how to do it, follow our guide about SSH key authentication on Debian 10. + +Debian : Unable to locate package openssh-server + +For this one, you have to make sure that you have set correctly your APT repositories. + +Add the following entry to your sources.list file and update your packages. + +$ sudo nano /etc/apt/sources.list + +deb http://ftp.us.debian.org/debian wheezy main + +$ sudo apt-get update + +Conclusion + +In this tutorial, you learnt how you can install and configure a SSH server on Debian 10 hosts. + +You also learnt about basic configuration options that need to be applied in order to run a secure and robust SSH server over a LAN or over Internet. + +If you are curious about Linux system administration, we have a ton of tutorials on the subject in a dedicated category. diff --git a/Linux/ssh/ssh_server.md b/Linux/ssh/ssh_server.md new file mode 100644 index 0000000..56e82db --- /dev/null +++ b/Linux/ssh/ssh_server.md @@ -0,0 +1,249 @@ +# How To Install and Enable SSH Server on Debian 10 + +SSH, for Secure Shell, is a network protocol that is used in order to operate remote logins to distant machines within a local network or over Internet. SSH architectures typically includes a SSH server that is used by SSH clients to connect to the remote machine. + +As a system administrator, it is very likely that you are using SSH on a daily basis to connect to remote machines across your network. + +As a consequence, when new hosts are onboarded to your infrastructure, you may have to configure them to install and enable SSH on them. + +In this tutorial, we are going to see how you can install and enable SSH, via OpenSSH, on a Debian 10 distributions. + +# Prerequisites + +In order to install a SSH server on Debian 10, you will need to have sudo privileges on your host. + +To check whether you have sudo privileges or not, run the following command + +> $ sudo -l + +By default, the ssh utility should be installed on your host, even on minimal configurations. + +In order to check the version of your SSH utility, you can run the following command + +> $ ssh -V + +# Installing OpenSSH Server on Debian 10 + +First of all, make sure that your packages are up to date by running an update command + +> $ sudo apt-get update + +In order to install a SSH server on Debian 10, run the following command + +> $ sudo apt-get install openssh-server + +The command should run a complete installation process and it should set up all the necessary files for your SSH server. + +If the installation was successful, you should now have a sshd service installed on your host. + +To check your newly installed service, run the following command + +> $ sudo systemctl status sshd + +By default, your SSH server is going to run on port 22. + +This is the default port assigned for SSH communications. You can check if this is the case on your host by running the following netstat command + +> $ netstat -tulpn | grep 22 + +Great! Your SSH server is now up and running on your Debian 10 host. +Enabling SSH traffic on your firewall settings + +If you are using UFW as a default firewall on your Debian 10 system, it is likely that you need to allow SSH connections on your host. + +To enable SSH connections on your host, run the following command + +$ sudo ufw allow ssh + +Enabling SSH connections with UFW on Debian 10 +Enable SSH server on system boot + +As you probably saw, your SSH server is now running as a service on your host. + +It is also very likely that it is instructed to start at boot time. + +To check whether your service is enable or not, you can run the following command + +$ sudo systemctl list-unit-files | grep enabled | grep ssh + +If no results are shown on your terminal, enable the service and run the command again + +$ sudo systemctl enable ssh + +Enabling the SSH server on boot on Debian 10 +Configuring your SSH server on Debian + +Before giving access to users through SSH, it is important to have a set of secure settings to avoid being attacked, especially if your server is running as an online VPS. + +As we already saw in the past, SSH attacks are pretty common but they can be avoided if we change default settings available. + +By default, your SSH configuration files are located at /etc/ssh/ +Listing SSH configuration files in etc + +In this directory, you are going to find many different configuration files, but the most important ones are : + + ssh_config: defines SSH rules for clients. It means that it defines rules that are applied everytime you use SSH to connect to a remote host or to transfer files between hosts; + sshd_config: defines SSH rules for your SSH server. It is used for example to define the reachable SSH port or to deny specific users from communicating with your server. + +We are obviously going to modify the server-wide part of our SSH setup as we are interested in configuring and securing our OpenSSH server. +Changing SSH default port + +The first step towards running a secure SSH server is to change the default assigned by the OpenSSH server. + +Edit your sshd_config configuration file and look for the following line. + +#Port 22 + +Make sure to change your port to one that is not reserved for other protocols. I will choose 2222 in this case. +Changing the default SSH port + +When connecting to your host, if it not running on the default port, you are going to specify the SSH port yourself. + +Please refer to the ‘Connecting to your SSH server’ section for further information. +Disabling Root Login on your SSH server + +By default, root login is available on your SSH server. + +It should obviously not be the case as it would be a complete disaster if hackers were to login as root on your server. + +If by chance you disabled the root account in your Debian 10 installation, you can still configure your SSH server to refuse root login, in case you choose to re-enable your root login one day. + +To disable root login on your SSH server, modify the following line + +#PermitRootLogin + +PermitRootLogin no + +Disabling root login for SSH on Debian +Configuring key-based SSH authentication + +In SSH, there are two ways of connecting to your host : by using password authentication (what we are doing here), or having a set of SSH keys. + +If you are curious about key-based SSH authentication on Debian 10, there is a tutorial available on the subject here. +Restarting your SSH server to apply changes + +In order for the changes to be applied, restart your SSH service and make sure that it is correctly restarted + +$ sudo systemctl restart sshd +$ sudo systemctl status sshd + +SSH server status from systemd + +Also, if you change the default port, make sure that the changes were correctly applied by running a simple netstat command + +$ netstat -tulpn | grep 2222 + +Checking SSH port on Linux using netstat +Connecting to your SSH server + +In order to connect to your SSH server, you are going to use the ssh command with the following syntax + +$ ssh -p @ + +If you are connecting over a LAN network, make sure to get the local IP address of your machine with the following command + +$ sudo ifconfig + +Checking local IP using ifconfig + +For example, in order to connect to my own instance located at 127.0.0.1, I would run the following command + +$ ssh -p 2222 @127.0.0.1 + +You will be asked to provide your password and to certify that the authenticity of the server is correct. +Connecting to SSH server on Debian 10 Buster +Exiting your SSH server + +In order to exit from your SSH server on Debian 10, you can hit Ctrl + D or type ‘logout’ and your connection will be terminated. +Logout from the SSH server +Disabling your SSH server + +In order to disable your SSH server on Debian 10, run the following command + +```bash +$ sudo systemctl stop sshd +$ sudo systemctl status sshd +``` + +# Stopping SSH server on Debian 10 + +From there, your SSH server won’t be accessible anymore. +Connection refused from the SSH server +Troubleshooting + +In some cases, you may run into many error messages when trying to setup a SSH server on Debian 10. + +Here is the list of the common errors you might get during the setup. +# Debian : SSH connection refused + +Usually, you are getting this error because your firewall is not properly configured on Debian. + +To solve “SSH connection refused” you have to double check your UFW firewall settings. + +By default, Debian uses UFW as a default firewall, so you might want to check your firewall rules and see if SSH is correctly allowed. + +```bash +$ sudo ufw status + +Status: active + +To Action From +-- ------ ---- +22/tcp ALLOW Anywhere +``` +If you are using iptables, you can also have a check at your current IP rules with the iptables command. + +$ sudo iptables -L -n + +Chain INPUT (policy ACCEPT) +target prot opt source destination +ACCEPT tcp -- anywhere anywhere tcp dpt:ssh + +If the rule is not set for SSH, you can set by running the iptables command again. + +$ sudo iptables -I INPUT -p tcp -m tcp --dport 22 -j ACCEPT + +Debian : SSH access denied + +Sometimes, you may be denied the access to your SSH server with this error message “SSH access denied” on Debian. + +To solve this issue, it depends on the authentication method you are using. +SSH password access denied + +If you are using the password method, double check your password and make sure you are entering it correctly. + +Also, it is possible to configure SSH servers to allow only a specific subset of users : if this is the case, make sure you belong to that list. + +Finally, if you want to log-in as root, make sure that you modified the “PermitRootLogin” option in your “sshd_config” file. + +```bash +PermitRootLogin + +PermitRootLogin yes +``` +# SSH key access denied + +If you are using SSH keys for your SSH authentication, you may need to double check that the key is correctly located in the “authorized_keys” file. + +If you are not sure about how to do it, follow our guide about SSH key authentication on Debian 10. + +# Debian : Unable to locate package openssh-server + +For this one, you have to make sure that you have set correctly your APT repositories. + +Add the following entry to your sources.list file and update your packages. + +```bash +$ sudo nano /etc/apt/sources.list + +deb http://ftp.us.debian.org/debian wheezy main + +$ sudo apt-get update +``` +Conclusion + +In this tutorial, you learnt how you can install and configure a SSH server on Debian 10 hosts. + +You also learnt about basic configuration options that need to be applied in order to run a secure and robust SSH server over a LAN or over Internet. + +If you are curious about Linux system administration, we have a ton of tutorials on the subject in a dedicated category. diff --git a/Vim/readme.md b/Vim/readme.md index e69de29..8130b27 100644 --- a/Vim/readme.md +++ b/Vim/readme.md @@ -0,0 +1,168 @@ +# VIM +## VIM Tutors notes + +### Cool stuff +- :set nu => ajoute les numeros de lignes +- :set nonu => unset number +### Text editing +- i => Insert +- A => Append text to the end of the line +- diw => delete inner word +- dw => delete a word + +### save and quit +- :wq save and quit +- !:q quit without saving + +# Lesson 1 SUMMARY + + 1. The cursor is moved using either the arrow keys or the hjkl keys. + h (left) j (down) k (up) l (right) + + 2. To start Vim from the shell prompt type: vim FILENAME + + 3. To exit Vim type: :q! to trash all changes. + OR type: :wq to save the changes. + + 4. To delete the character at the cursor type: x + + 5. To insert or append text type: + i type inserted text insert before the cursor + A type appended text append after the line + +NOTE: Pressing will place you in Normal mode or will cancel + an unwanted and partially completed command. + +# Lesson 2 SUMMARY + + 1. To delete from the cursor up to the next word type: dw + 2. To delete from the cursor to the end of a line type: d$ + 3. To delete a whole line type: dd + + 4. To repeat a motion prepend it with a number: 2w + 5. The format for a change command is: + operator [number] motion + where: + operator - is what to do, such as d for delete + [number] - is an optional count to repeat the motion + motion - moves over the text to operate on, such as w (word), + $ (to the end of line), etc. + A short list of motions: + w - until the start of the next word, EXCLUDING its first character. + e - to the end of the current word, INCLUDING the last character. + $ - to the end of the line, INCLUDING the last character. + + 6. To move to the start of the line use a zero: 0 + + 7. To undo previous actions, type: u (lowercase u) + To undo all the changes on a line, type: U (capital U) + To undo the undo's, type: CTRL-R + +## Lesson 3 SUMMARY + + 1. To put back text that has just been deleted, type p . This puts the + deleted text AFTER the cursor (if a line was deleted it will go on the + line below the cursor). + + 2. To replace the character under the cursor, type r and then the + character you want to have there. + + 3. The change operator allows you to change from the cursor to where the + motion takes you. eg. Type ce to change from the cursor to the end of + the word, c$ to change to the end of a line. + + 4. The format for change is: + + c [number] motion + +## Lesson 4 SUMMARY + + 1. CTRL-G displays your location in the file and the file status. + G moves to the end of the file. + number G moves to that line number. + gg moves to the first line. + + 2. Typing / followed by a phrase searches FORWARD for the phrase. + Typing ? followed by a phrase searches BACKWARD for the phrase. + After a search type n to find the next occurrence in the same direction + or N to search in the opposite direction. + CTRL-O takes you back to older positions, CTRL-I to newer positions. + + 3. Typing % while the cursor is on a (,),[,],{, or } goes to its match. + + 4. To substitute new for the first old in a line type :s/old/new + To substitute new for all 'old's on a line type :s/old/new/g + To substitute phrases between two line #'s type :#,#s/old/new/g + To substitute all occurrences in the file type :%s/old/new/g + To ask for confirmation each time add 'c' :%s/old/new/gc + + +To change every occurrence of a character string between two lines, + type :#,#s/old/new/g where #,# are the line numbers of the range + of lines where the substitution is to be done. + Type :%s/old/new/g to change every occurrence in the whole file. + Type :%s/old/new/gc to find every occurrence in the whole file, + + with a prompt whether to substitute or not. + +## Lesson 5 SUMMARY + + + 1. :!command executes an external command. + + Some useful examples are: + (Windows) (Unix) + :!dir :!ls - shows a directory listing. + :!del FILENAME :!rm FILENAME - removes file FILENAME. + + 2. :w FILENAME writes the current Vim file to disk with name FILENAME. + + 3. v motion :w FILENAME saves the Visually selected lines in file + FILENAME. + + 4. :r FILENAME retrieves disk file FILENAME and puts it below the + cursor position. + + 5. :r !dir reads the output of the dir command and puts it below the + cursor position. + +## Lesson 6 SUMMARY + + 1. Type o to open a line BELOW the cursor and start Insert mode. + Type O to open a line ABOVE the cursor. + + 2. Type a to insert text AFTER the cursor. + Type A to insert text after the end of the line. + + 3. The e command moves to the end of a word. + + 4. The y operator yanks (copies) text, p puts (pastes) it. + + 5. Typing a capital R enters Replace mode until is pressed. + + 6. Typing ":set xxx" sets the option "xxx". Some options are: + 'ic' 'ignorecase' ignore upper/lower case when searching + 'is' 'incsearch' show partial matches for a search phrase + 'hls' 'hlsearch' highlight all matching phrases + You can either use the long or the short option name. + + 7. Prepend "no" to switch an option off: :set noic + + +## Lesson 7 SUMMARY + + + 1. Type :help or press or to open a help window. + + 2. Type :help cmd to find help on cmd . + + 3. Type CTRL-W CTRL-W to jump to another window. + + 4. Type :q to close the help window. + + 5. Create a vimrc startup script to keep your preferred settings. + + 6. When typing a : command, press CTRL-D to see possible completions. + Press to use one completion. + + diff --git a/wargames/bandit/.notes.md.swp b/wargames/bandit/.notes.md.swp new file mode 100644 index 0000000..c0e7004 Binary files /dev/null and b/wargames/bandit/.notes.md.swp differ