Apache SSL: Difference between revisions

From Ilianko
Created page with "Конфигуриране на Apache с поддръжка на https (TLS/SSL) == Web сървър == 3. Инсталиране на софтуерни пакети '''''op..."
 
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
Конфигуриране на Apache с поддръжка на https (TLS/SSL)
Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip
Опитна постановка:
Router, Web Server, Web Client.


== Web сървър ==
==Мрежови настройки==


===Router (Attacker)===
Играе ролята на рутер, токча за достъп към Интернет.
Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.


3. Инсталиране на софтуерни пакети '''''openssl''''', '''''apache2''''', '''''ssh'''''
Настройка DNS
  :~$ apt-get update
*nano /etc/resolv.conf
:~$ apt-get install apache2 openssl ssh
  nameserver 8.8.4.4


4. Проверка дали работи web сървърът.


От брaузър на хост машината се зарежда IP адреса на web сървъра.


5. Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.
Настройки на Интерфейси:
nano /etc/network/interfaces
<code><pre>
auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
iface lo inet loopback
 
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.3.45.2XX
netmask 255.255.255.0
gateway 10.3.0.1
 
allow-hotplug eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0
</pre></code>
 
Активиране на NAT
echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/init.d/rc.local
 
=== Web сървър ===
 
*nano /etc/resolv.conf
nameserver 8.8.4.4
 
<code><pre>
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
</code></pre>
 
Инсталация на web сървър
Инсталиране на софтуерни пакети '''''telnet''''', '''''openssl''''', '''''apache2''''', '''''ssh'''''
apt-get update
аpt-get install apache2 openssl ssh
 
 
Проверка дали работи web сървърът.
telnet localhost 80
  GET
 
=== Web client (Victim) ===
windows XP
*IP: 10.3.45.1XX/16
*gateway: 10.3.0.1;
*DNS: 8.8.4.4
*през cmd се добавя път към вътрешна мрежа:
route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX
 
 
==Host машина==
Добавяне на път от host машината към web сървъра
route add -net 172.16.1.0/24 gw 10.3.45.100
 
== Web форма ==
 
Тестване на web сървъра през Web клиента
*В браузъра се отваря:
http://172.16.1.2/index.html
 
Качване на форма form.html
*Подгответе web форма и я качете през ssh на веб сървъра
<code><pre>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <form action="https://172.16.1.2/index.html" method="post">
      <table>
        <tr>
          <td>User: </td>
          <td><input type="text" name="name" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="password" name="pass" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
        </tr>
      </table>
    </form>
  </body>
</html>
</pre></code>
 
 
Свързване от '''''Хост компютъра''''' към виртуалния Web сървър през ssh.


Отваря се терминал на хост машината и се изпълнява
Отваря се терминал на хост машината и се изпълнява
  :-$ ssh student@10.3.45.10X
  :-$ ssh student@172.16.1.1


6. Генериране на ...
===Активиране на https===


Да се създаде директория ~/keys
*Активиране на ssl модул:
  :~$ mkdir ~/keyes
  a2enmod ssl
  :~$ cd ~/keys
 
   
*Настройка на web директория Apache. Ще се модифицира примерната конфигурация
Генериране на само-подписан сертификат и частен ключ
  cd /etc/apache2
  :~$ openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
  cp sites-available/default-ssl sites-enabled/
  nano sites-enabled/default-ssl
service apache2 restart


Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
*добавете към index.html връзка към формата
<a href=https://172.16.1.2/form.html >Forma</a>


Проверете генерираните файлове
=== Генериране на собствен самоподписан сертификат ===


7. Настройка на Apache2
*Да се създаде директория /root/keys
mkdir /root/keyes
cd /root/keys
*Генериране на самоподписан сертификат и частен ключ
openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key
Common Name (e.g. server FQDN or YOUR name) []: '''''tugab.bg'''''
...


Активиране на ssl модул
*Проверете генерираните файлове
:~$ a2enmod ssl


Настройка на web директория Apache. Ще се модифицира примерната конфигурация
:~$ cd /etc/apache2
:~$ cp sites-available/default-ssl sites-enabled/
:~$ nano sites-enabled/default-ssl


Редактирайте пътищата към сертификата и частния ключа
*Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
<code><pre>
<code><pre>
...
  SSLEngine on
  SSLEngine on


Line 51: Line 156:
         SSLCertificateFile    /root/keys/apache.pem
         SSLCertificateFile    /root/keys/apache.pem
         SSLCertificateKeyFile /root/keys/apache.key
         SSLCertificateKeyFile /root/keys/apache.key
...
</pre></code>


</pre></code>
*Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.1XX'''''
service apache2 restart
 
== Атака на връзката ==
 
Инсталиране sslstrip
 
apt-get install sslstrip
 
пренасочване на порт
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
 
стартиране на sslstrip
sslstrip -L 10000
 
 
Да се тества премахването на https връзките.


9. Рестатирайте apache и Тествайте връзката към '''''https://10.3.45.10X'''''
:~$ /etc/init.d/apache2 restart


   
   

Latest revision as of 10:04, 22 October 2015

Конфигуриране на Apache с поддръжка на https (TLS/SSL) и атака с SSLStrip Опитна постановка: Router, Web Server, Web Client.

Мрежови настройки

Router (Attacker)

Играе ролята на рутер, токча за достъп към Интернет. Linux Debian, с два активирани интерфейса. Първият е свързан в режим Bridge Adapter, а вторият във internal.

Настройка DNS

  • nano /etc/resolv.conf
nameserver 8.8.4.4


Настройки на Интерфейси: nano /etc/network/interfaces

auto lohttps://www.google.bg/search?q=innodb&gws_rd=cr,ssl&ei=JjAnVrkBwuhqoeSMmAs
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.3.45.2XX
netmask 255.255.255.0
gateway 10.3.0.1

allow-hotplug eth1
iface eth1 inet static
address 172.16.1.1
netmask 255.255.255.0

Активиране на NAT

echo "iptables -A POSTROUTING -t nat -j MASQUERADE" >> /etc/init.d/rc.local
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/init.d/rc.local

Web сървър

  • nano /etc/resolv.conf
nameserver 8.8.4.4
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.16.1.2
netmask 255.255.255.0
gateway 172.16.1.1
</code>

Инсталация на web сървър Инсталиране на софтуерни пакети telnet, openssl, apache2, ssh

apt-get update
аpt-get install apache2 openssl ssh


Проверка дали работи web сървърът.

telnet localhost 80
  GET

Web client (Victim)

windows XP

  • IP: 10.3.45.1XX/16
  • gateway: 10.3.0.1;
  • DNS: 8.8.4.4
  • през cmd се добавя път към вътрешна мрежа:
route add 172.16.1.0 MASK 255.255.255.0 10.3.45.2XX


Host машина

Добавяне на път от host машината към web сървъра

route add -net 172.16.1.0/24 gw 10.3.45.100

Web форма

Тестване на web сървъра през Web клиента

  • В браузъра се отваря:
http://172.16.1.2/index.html

Качване на форма form.html

  • Подгответе web форма и я качете през ssh на веб сървъра
<html>
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
  </head>
  <body>
    <form action="https://172.16.1.2/index.html" method="post">
      <table>
        <tr>
          <td>User: </td>
          <td><input type="text" name="name" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td>Password</td>
          <td><input type="password" name="pass" value="" maxlength="100" /></td>
        </tr>
        <tr>
          <td colspan="2"><input name="submit" type="submit" value="Submit" /></td>
        </tr>
      </table>
    </form>
  </body>
</html>


Свързване от Хост компютъра към виртуалния Web сървър през ssh.

Отваря се терминал на хост машината и се изпълнява

:-$ ssh student@172.16.1.1

Активиране на https

  • Активиране на ssl модул:
a2enmod ssl
  • Настройка на web директория Apache. Ще се модифицира примерната конфигурация
cd /etc/apache2
cp sites-available/default-ssl sites-enabled/
nano sites-enabled/default-ssl
service apache2 restart
  • добавете към index.html връзка към формата
<a href=https://172.16.1.2/form.html >Forma</a>

Генериране на собствен самоподписан сертификат

  • Да се създаде директория /root/keys
mkdir /root/keyes
cd /root/keys 

  • Генериране на самоподписан сертификат и частен ключ
openssl req -new -x509 -days 365 -nodes -out apache.pem -keyout apache.key

Common Name (e.g. server FQDN or YOUR name) []: tugab.bg
...
  • Проверете генерираните файлове


  • Редактирайте пътищата към сертификата и частния ключа. Редактирайте файла /etc/apache2/sites-enabled/default-ssh
...
 SSLEngine on

        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile    /root/keys/apache.pem
        SSLCertificateKeyFile /root/keys/apache.key
...
  • Рестатирайте apache и Тествайте връзката към https://10.3.45.1XX
service apache2 restart

Атака на връзката

Инсталиране sslstrip

apt-get install sslstrip

пренасочване на порт

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000

стартиране на sslstrip

sslstrip -L 10000


Да се тества премахването на https връзките.



https://wiki.debian.org/Self-Signed_Certificate http://blog.donovan-jimenez.com/2011/03/adding-new-trusted-certificate-on.html http://httpd.apache.org/docs/2.2/ssl/ssl_faq.html http://www.thegeekstuff.com/2011/03/install-apache2-ssl/ http://onlamp.com/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html